AWS VPC (1)Amazon Virtual Private Cloud とは

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までを指定できる。生成後にサイズを変更することはできない。指定する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は有効である。

サブネット

サブネットは、アベイラビリティゾーン単位で指定できる。サブネットは生成する際にサイズを指定することが可能で、/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まで自動的に拡張される。

VPCピアリング

異なるVPC間でルーティングを行うサービス。MTUは1500
同一リージョン内のVPCのみ接続可能で、重複したCIDRブロックのサブネットは接続できない

ネットワークインタフェース

ネットワークインタフェースは、インスタンスにアタッチ、デタッチしても属性情報は変わらない。1つのインスタンスに複数のネットワークインタフェースをアタッチすることで、管理用ネットワークを別に作成することなどが可能となる。一方で、複数のネットワークインタフェースが存在すると、パブリックIPアドレスの自動割り当ては利用不可となる。

プライマリプライベートIPアドレスは、一度設定すると変更することはできない。セカンダリプライベートIPアドレスは、異なるインタフェースに割り当て直すことが可能である。EC2インスタンスは、プライベートIPアドレスのみを認識し、割り当てられたパブリックIPアドレスは、インターネットゲートウェイでNATされる。パブリックIPアドレスを有効化している場合、Elastic IPを指定しない限りアドレスは、起動時に自動的に割り当てられる

パブリックIP

ネットワーク帯域

同一リージョン内通信の場合、最大25Gbpsが利用可能となる。

通信方式 同一プレイスメントグループ 同一リージョン S3 リージョン外
シングルフロー 最大10Gbps 最大5Gbps 最大25Gbps 最大5Gbps
マルチフロー 最大25Gbps 最大25Gbps 最大25Gbps 最大5Gbps

セキュリティ

ネットワークアクセスリスト(NACL)

サブネットごとに設定するフィルタ。ステートレス。デフォルトは全て許可

セキュリティグループ

EC2の仮想インタフェースとして機能。ステートフル。デフォルトは全ての通信を禁止。拒否ルールは記述できない。また、デフォルトのセキュリティグループは削除できない

VPCのセキュリティ

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

インタフェースエンドポイント