こんにちは、ちゃりおです。
VPCはAWS使用する際にほぼ必須のサービスです。
しかし、「VPCとは何ですか」という質問を受けうまく答えられませんでした。
「普段なんとなく使っている」という状態であることを痛感したのでまとめてみます。
VPCってなに?
Virtual Private Cloud (VPC) は、AWS アカウント専用の仮想ネットワークです。
利用者が自由にカスタマイズできるネットワーク空間です。
AWSがパブリッククラウドであることは、正解でもあり間違いでもあります。
AWSにVPCがなかったころは、リソースへのアクセスは全てインターネット経由(パブリック)でアクセスする必要があったようです。
VPCが登場したことで、AWS上に仮想的にプライベートネットワークを作成することができるようになりました。
結果、クローズドなデータセンターのようにAWSを使用することも可能になりました。
VPC関連用語
VPCを理解するために、最低限押さえておきたい用語です。
リージョン
AWSの各サービスが提供されている地域のことです。
東京リージョンやオレゴンリージョンのように国や地域ごとにリージョンがあります。
リージョンごとに料金が違ったり、サービスによっては提供されていなかったりします。
国内で使用するサービスならレイテンシーを考慮して、東京リージョンを使うのが一般的です。
アベイラビリティゾーン
データセンターの集まりです。
リージョン内に最低、2つのアベイラビリティゾーンが存在します。
耐障害性のためのものです。
1つのアベイラビリティゾーンが災害等で利用不可能な状態になった場合も
他のアベイラビリティゾーンではシステムが稼働できるような設計になっています。
VPC
前述の通り、利用者が自由にカスタマイズできるネットワーク空間です。
VPC内には、リージョンのすべてのアベイラビリティゾーンが含まれます。
VPCは作成の際に、ネットワークアドレス空間を指定する必要があります。
例) 10.0.0.0/16
サブネット
VPC内は、サブネットという形にさらにわけることができます。
「10.0.0.0/16」でVPCを作った場合、「10.0.0.0/24」などVPCのネットワーク内に
おさまるネットワークアドレス空間を指定します。
サブネットはアベイラビリティゾーンをまたぐことができません。
そのため、同一用途のサブネットをアベイラビリティゾーンを分けて2つ作っておきましょう。
例)
private-subnet-1(az-a)
private-subnet-2(az-c)
ルートテーブルのデフォルトルートがインターネットゲートウェイの場合、
パブリックサブネットと呼びます。
デフォルトルートがVPC内の場合、プライベートサブネットと呼びます。
ルートテーブルとインターネットゲートウェイについては、後述します。
インターネットゲートウェイ
インターネットへの玄関のようなものです。
VPCにインターネットゲートウェイをアタッチすることで、インターネットへのアクセスが可能になります。
ルートテーブル
サブネットのルーティングをコントロールします。
サブネットごとに設定します。
ネットワークACL
サブネットに備わるパケットフィルタリング機能です。
セキュリティグループ
EC2やRDSなどリソースに対して紐付けられる仮想ファイアウォールのようなものです。
ネットワークACLと大きく違うところは、ネットワークACLがサブネットに適用するもので
セキュリティグループはインスタンスなどリソースごとに適用します。
ネットワークACLとセキュリティグループの違いは、詳しく説明すると長くなるので割愛します。
参考 AWS セキュリティグループとネットワークACLの違い
VPCを使うことでできること
現状VPCを使わずインスタンスを立てることできません。
そのため、普段意識することはないですが、VPCによってできることを上げてみました。
- インターネットから接続できるサブネットと、インターネットから接続できないサブネットをわけることができる(パブリック・プライベート)
- セキュリティグループによって、インスタンス単位のアクセス制御ができる
- ネットワークACLによって、サブネット単位のアクセス制御ができる
- インターネットVPNやDirectoConnectを使って、オンプレ環境とセキュアな通信ができる
おまけ デフォルトVPCとは?
AWSアカウントを作った際、作成した覚えがないVPCが存在すると思います。
「デフォルトVPC」とよばれるもので、「すぐに、インターネットに接続できるようにする」ことを目的に作られた特別なVPCです。
検証の際に使うのはありだと思います。
しかし、VPC領域を作ったデフォルトの状態というわけではないので、業務で使う環境は新しくVPCを作りましょう。
参考書籍