VPC
各アベイラビリティゾーンのデフォルトサブネットを持つデフォルトVPCが標準で作成され、インスタンス起動時にサブネットを指定しなかった場合は、このデフォルトVPCが指定される。これに加えて、ユーザ独自にデフォルト外VPCを作成することが可能である。VPCは、ルータを通じて他のVPCと接続(ピアリング接続)したり、S3などの他のAWSサービスのエンドポイントと接続したり、VPN経由で自社のネットワークと接続したりすることが可能である。VPCを利用するAWSサービスの例としては、AWS Data Pipeline, Elastic Beanstalk, Elastic Load Balancing, Amazon ElastiCache, Amazon EMR, AWS OpsWorks, Amazon RDS, Amazon Redshift, Route 53などがある。
VPCは生成する際にサイズを指定することが可能で、/16から/28までを指定できる。生成後にサイズを変更することはできないが、セカンダリ IPv4 CIDR ブロックを関連付けることができる。指定するCIDR ブロックは、プライベートIPアドレスの範囲から指定することが望ましい。
デフォルトVPC
デフォルトVPCには、ルータとインターネットゲートウェイが含まれており、各サブネットは、インスタンスに対してパブリックIPの割り当てが実行される、インターネットに接続可能なパブリックサブネットである。サブネットを指定せずにEC2を起動した場合は、デフォルトVPCで起動される。デフォルトVPCでは、サイズ /16 の IPv4 CIDR ブロック (172.31.0.0/16) の作成と、インターネットゲートウェイとの接続を行う。新しいアベイラビリティーゾーンが追加された場合は、数日以内に、このアベイラビリティーゾーン内でデフォルト VPC の新しいデフォルトサブネットが自動的に作成される。
デフォルト外VPC
デフォルト外VPCには、ルータやインターネットゲートウェイが含まれておらず、自分で設定に加える必要がある。また、サブネットも標準では、パブリックIPの割り当てが行われず、プライベートサブネットに設定されている。
デフォルト外VPCでインターネット接続を可能にするためには、インターネットゲートウェイのアタッチや、ルーティングテーブルの追加、各インスタンスへのElastic IPの割り当てが必要である。プライベートサブネットの場合、サブネット内のインスタンスが直接インターネットに接続することができないため、別のパブリックサブネット内にNAT gatewayを生成し、このNAT gateway経由でインターネットと接続を行う。Elastic IPの数には限りがあるので、静的なIPアドレスを多く使用するようなネットワーク構成の場合にも、NAT gatewayは有効である。なお、NAT gatewayはIPv6には非対応である。
サブネット
サブネットは、アベイラビリティゾーン単位で指定できる。サブネットは生成する際にサイズを指定することが可能で、/16から/28までを指定できる。指定したCIDR ブロックの先頭4アドレスと最後の1アドレスは使用することができない。なお、先頭アドレスは、ルータに接続されるIPアドレスとなっている。また、CIDRブロックのサイズを後から増減することはできない。
インターネットに接続する必要のあるリーソースの場合は、パブリックサブネットを、インターネットに接続しないリソースの場合は、プライベートサブネットに接続する。
ルーティング
各VPCには暗黙的なルータ(implied router)が存在し、標準ではVPC内の各サブネット間の通信のみ許可されている。また、ルートテーブルは、標準で生成されるメインルートテーブルと、各サブネットにそれぞれ割り当てることが可能なカスタムルートテーブルが存在する。明示的にルートテーブルの関連付けを行わない場合は、メインルートテーブルにアタッチされる。インターネットゲートウェイを通じて、インターネットに接続する場合は、ルートテーブルにインターネットゲートウェイへの経路を明示的に追加する必要がある。また、VPN、Direct Connect、VPC Peeringでは、2hop以上先のネットワークとは通信できない。
インターネットゲートウェイ(IGW)
EC2へインターネットへの接続を提供する。サブネット単位でルーティングを指定でき、インターネットゲートウェイを指定したサブネットをパブリックサブネットと呼ぶ。インターネットとの間で通信が必要なインスタンスには、パブリックIPの付与が必要となる。冗長性と高い可用性を有しており、水平スケーリングが可能である。
バーチャルプライベートゲートウェイ(VGW)
VPN接続やDirect Connect接続のエンドポイントを提供する。1つのVPCあたり1つのVGWを接続することができる。
カスタマーゲートウェイ(CGW)
オンプレミス側のVPNエンドポイント。
NATゲートウェイ
NATゲートウェイには、1つElastic IPを付与することができ、プライベートサブネットのインスタンスからインターネットへの接続を可能とする。インターネット側からのサブネットへのアクセスは許可されない。NATゲートウェイは、パブリックサブネットに配置する必要がある。また、NATゲートウェイは、5Gbpsの帯域をサポートし、最大45bpsまで自動的に拡張される。タイムアウト時、NAT GatewayはRSTパケットを送信するが、NATインスタンスの場合はFINパケットを送信する。
VPCピアリング
異なるVPC間でルーティングを行うサービス。MTUは1500。
同一リージョン内のVPCのみ接続可能で、重複したCIDRブロックのサブネットは接続できない。
ネットワークインタフェース
ネットワークインタフェースは、インスタンスにアタッチ、デタッチしても属性情報は変わらない。1つのインスタンスに複数のネットワークインタフェースをアタッチすることで、管理用ネットワークを別に作成することなどが可能となる。一方で、複数のネットワークインタフェースが存在すると、パブリックIPアドレスの自動割り当ては利用不可となる。
プライマリプライベートIPアドレスは、一度設定すると変更することはできない。セカンダリプライベートIPアドレスは、異なるインタフェースに割り当て直すことが可能である。EC2インスタンスは、プライベートIPアドレスのみを認識し、割り当てられたパブリックIPアドレスは、インターネットゲートウェイでNATされる。パブリックIPアドレスを有効化している場合、Elastic IPを指定しない限りアドレスは、起動時に自動的に割り当てられる。
ネットワーク帯域
同一リージョン内通信の場合、最大25Gbpsが利用可能となる。
通信方式 | 同一プレイスメントグループ | 同一リージョン | S3 | リージョン外 |
---|---|---|---|---|
シングルフロー | 最大10Gbps | 最大5Gbps | 最大25Gbps | 最大5Gbps |
マルチフロー | 最大25Gbps | 最大25Gbps | 最大25Gbps | 最大5Gbps |
セキュリティ
ネットワークアクセスリスト(NACL)
サブネットごとに設定するフィルタ。ステートレス。デフォルトは全て許可。
セキュリティグループ
EC2の仮想インタフェースとして機能。ステートフル。デフォルトは全ての通信を禁止。拒否ルールは記述できない。また、デフォルトのセキュリティグループは削除できない。
DNS
各VPCにはDNSが用意されており、VPCのネットワーク範囲(CIDR)のアドレスに+2したIPで参照が可能。参照が可能なのはVPC内のEC2のみで、Direct Connect等で接続したオンプレミス環境からは参照することができない。
フローログ
VPC のネットワークインターフェイスとの間で行き来する IP トラフィックに関する情報をキャプチャできるようにする機能。データは、CloudWatch Logs と Amazon S3 に出力することができる。
VPCエンドポイント
VPCエンドポイントを用いることで、AWSサービスやVPCエンドポイントサービスをプライベートに接続することができる。VPCエンドポイントを用いることでインターネットに出ることなく各種AWSサービスと通信を行うことができる。冗長性と高可用性を持ち、帯域幅の制約は存在しない。対応しているAWSのサービスは以下の通り。
インタフェースエンドポイント
プライベートIPアドレスを持つエンドポイント。プライベート DNSオプションを有効化しておくことで、通常のエンドポイントが、プライベートIPアドレスに置換される。
- Amazon API Gateway
- Amazon CloudWatch
- Amazon CloudWatch Events
- Amazon CloudWatch Logs
- AWS CodeBuild
- Amazon EC2 API
- Elastic Load Balancing API
- AWS Key Management Service
- Amazon Kinesis Data Streams
- Amazon SageMaker ランタイム
- AWS Secrets Manager
- AWS Service Catalog
- Amazon SNS
- AWS Systems Manager
ゲートウェイエンドポイント
ルートテーブルに指定されたルートのターゲットとなるエンドポイント。VPC ルートテーブルを指定する必要がある。
- Amazon S3
- DynamoDB