AWSのVPCとは?7つの特徴と設定例を解説!
「AWSでEC2やデータベースを作成するときにVPCを作るけど、そもそもVPCってなんだろう?特徴は?」今回はこんな疑問にお答えします。
VPC(Virtual Private Cloud)とは一言でいうと「クラウド上に作成することが出来る、作成者が自由にアクセスをコントロールすることが可能な空間」です。
この記事ではVPCで設定出来る主要な項目、料金、どういう風に使用するか、設定方法を分かりやすく解説していきます。
1.AWS VPCとは?の7つの主な機能
先ほどVPCのことを「クラウド上に作成することが出来る、作成者が自由にアクセスをコントロールすることが可能な空間」と表現しました。具体例を出すと、「セキュリティ上の問題でデータペースサーバーをインターネットに接続したくない・・・」といった要件があったとします。
その場合はAWS RDS(データベース)をVPCの『プライベートサブネット』に設置することによってこの要件をクリアできます。このようにアプリやリソースとのネットワーク設定を設定出来るのがAWS VPCなのです。まずはそんなVPCで設定出来る7つの主な機能を解説します。
1-1.サブネット
サブネット(Subnet)とは、VPCで設定したIPアドレスを分割して作成するネットワーク空間です。例えば、ある会社に「IT部」という部署があったとします。このIT部の中にはさらに細かく「開発部門」「インフラ部門」「セキュリティ部門」といった感じで部門が分かれてます。この時、開発部門・インフラ部門といったIT部の中でさらに分けれたのがサブネットにあたります。
- VPC=IT部といった大きなくくり
- サブネット=IT部(VPC)をさらに区切った小さなくくり
という感じです。
また、サブネットはインターネットに接続が出来る・出来ないかで呼び名が変わります。
- パブリックサブネット=インターネットに接続できるサブネット
- プライベートサブネット=インターネットに接続できないサブネット
この二つの呼び方はVPCを学ぶ上で良く出てくるので、覚えておくと便利です。
1-2.ネットワーク ACL
ネットワークACL(ネットワークアクセスコントロールリスト)は一言でいうとファイアウォールです。サブネット単位で設定し、サブネットへのアクセスとサブネットから外部へのアクセスをコントロールすることが出来ます。
1-3.セキュリティグループ
セキュリティグループもファイアウォールの一種です。
ネットワークACLはサブネット単位で設定するのに対し、セキュリティグループはEC2やRDSなどインスタンス単位で設定します。また、新規のセキュリティグループにはインバウンドルールが設定されていませんので、通信を許可するには新しくインバウンドルールを設定してあげる必要があります。なお、アウトバウンドルールにはすべてのアウトバウンドを許可するルールがデフォルトで設定されているため、セキュリティグループの中から外への通信は問題なくできます。
1-4.インターネットゲートウェイ
インターネットゲートウェイを使用することでVPCからインターネットへアクセスすることが出来ます。
1-5.NAT ゲートウェイ
インターネットから接続されたくないが、VPC内からインターネットに接続したい時に使用します。
例えば、RDS(データベース)で顧客データなど高いセキュリティが要求されるようなデータを保存している時、インターネットと接続出来ないようにプライベートサブネットにRDSを設定することが良くあります。
しかし、データベースのバージョンアップでどうしてもインターネットに接続したいといった要件の時にインターネットゲートウェイを使用します。
1-6.エンドポイント
サブネット内のインスタンスから他のAWSサービスに接続したいときに使用します。例えば、プライベートサブネット内のEC2からS3やDynamoDBに接続したい時にエンドポイントを使用します。外部のインターネットを経由しなくても接続出来るため、高いセキュリティで接続することが可能です。
1-7.料金
AWS VPC自体には料金は発生しません。しかし、オプションの中には使用時間、転送容量によって課金が発生する場合があります。
課金が発生するオプション
・NAT ゲートウェイ(東京リージョン)
一時間あたり:0.062USD
1 GBの処理データあたり:0.062USD
使用するリージョンによっても料金が変わりますので、詳細が知りたい方は以下のAWS公式サイトをご覧ください。
https://aws.amazon.com/jp/vpc/pricing/
2.VPCの設定例
用語の説明だけだとイメージがつきにくいので、構成図を用いて分かりやすく解説していきます。今回解説するパターンは以下の二つです。
- NAT ゲートウェイを用いてDBからインターネットに接続する
- 踏み台サーバを経由してプライベートサブネットに接続する
2-1.NAT ゲートウェイを用いてDBからインターネットに接続する
1-5.NAT ゲートウェイで紹介した使用例を構成図で書いてみました。使用例をおさらいすると、要件は以下の二つになります。
- データベースはセキュリティ観点でインターネットから接続してはいけない。
- しかし、データベースのアップデートがあるためデータベースからインターネットへのアクセスは必要
この要件を満たすためには上記のようにデータベースとインターネットをNAT ゲートウェイで仲介してあげる必要があります。このように構築すればインターネットからはデータベースにアクセス出来ず、データベースからインターネットにアクセスしようとした時のみ、インターネット通信をする事が出来ます。
2-2.踏み台サーバを経由してプライベートサブネットに接続する
2-1では、RDSからインターネットに接続する方法を解説しました。今度は逆にインターネットからRDSに接続する方法を解説します。以下のようにVPCを構築していきます。
- 0.0.0.0/0(フルオープン)のインターネットゲートウェイを設置し、インターネットとの接続を可能にする。
- パブリックサブネットにHTTPS(443)ポートのインバウンドルールを許可したセキュリティグループを設定し、その中に踏み台用のEC2インスタンスを設置します。
- プライベートサブネットにMySQL(3306)ポートのインバウンドルールを許可したセキュリティーグループを設定し、その中にデータベースを設置します。
こうすることでインターネットから直接データベースへ接続することを防ぐことが出来ます。なお、この構成はAWSアソシエイトレベルのソリューションアーキテクトという資格試験で高確率で出題される構成です。
3.VPCの設定方法
今回は試しにVPCウィザードというVPCの初期設定を簡単に設定出来る機能を使って、上記のようにパブリックサブネットとプライベートサブネットを作成していきます。
3-1.VPC設定画面へ移動
AWSコンソールにログインしたら、左上の検索窓を選択。
3-2.VPCを選択
検索窓にVPCと入力したら、候補に出て来た「VPC」をクリック。
3-3.VPCウィザードを起動
VPCダッシュボードに移動したら、左上の「VPCウィザードを起動」をクリック。
3-4.VPCウィザードでの設定その1
以下のように設定していきます。
- 今回はパブリックサブネットとプライベートサブネットを作成するので、「VPC、サブネットなど」を選択
- 任意の名前を入力
3-5.VPCウィザードでの設定その2
アベイラビリティゾーンとサブネットを以下のように設定していきます。
- マルチAZ配置にするかどうかを設定
- 任意のアベイラビリティゾーンを選択
- 任意のパブリックサブネットの数を選択
- 任意のCIDRブロックを設定
- 任意のプライベートサブネット数を選択
- 任意のCIDRブロックを設定
3-6.VPCウィザードでの設定その3
NATゲートウェイとVPCエンドポイントを以下のように設定していきます。
- NATゲートウェイを設置する際はここで設定します。今回はなしを選択
- VPCエンドポイントを設置する際はここでS3ゲートウェイを設定します。今回はなしを選択
- 各設定が完了したら、VPCを作成をクリック
3-7.VPCウィザードでの設定完了
すべて成功になれば作成完了です!
4.まとめ
今回はEC2やRDSを作成する際に避けては通れないAWS VPCについて解説しました。VPCはインターネットとの接続を管理する事が出来るとても大事なAWSサービスです。言葉だけで覚えようとしてもなかなか理解するのは難しいので、簡単な構成で良いので実際にVPCを構築してみるのがおすすめです。
コメント