Amazon VPC - kin-kin/memo GitHub Wiki

AWS

Amazon VPC

  • VPC
    • リージョン単位で作成
      • 1アカウントあたり最大5個/リージョン
    • マルチVPCパターン(1アカウントに複数のVPC)とマルチアカウントパターン(複数アカウントに1つずつのVPC)では後者を推奨
      • ユーザ数が多い場合にユーザ管理がしやすいため
    • 用途(開発/テスト/本番)、部門、システム・サブシステム、等で分ける
  • パブリックサブネット
    • アタッチされたルートテーブルにインターネットゲートウェイへのルーティングが含まれるサブネット
    • サブネットはアベイラビリティーゾーン単位で作成
    • サブネットマスクは±1でIPアドレス数が2倍・1/2になる
    • いくつかのIPアドレスは利用できない
      • .0:ネットワークアドレス
      • .1:VPCの仮想ルーター
      • .2:VPC上のDNSサービス
      • .3:予約
      • .255:ブロードキャストアドレス
    • IPアドレス範囲は後から変更できないため、大きいものを使う(/24以上)
  • プライベートサブネット
    • アタッチされたルートテーブルにインターネットゲートウェイへのルーティングが含まれないサブネット
  • インターネットゲートウェイ
  • ルートテーブル
    • VPC内の通信を可能にするターゲットlocalのルートは削除できない
    • インターネットゲートウェイへのルーティングは送信先を0.0.0.0/0、ターゲットをインターネットゲートウェイIDに設定する
    • NATゲートウェイへのルーティングは送信先を0.0.0.0/0、ターゲットをNATゲートウェイIDに設定する
    • サブネットにはカスタムルートテーブルを使用することがベストプラクティス
  • NACL
    • デフォルトではインバウンド・アウトバウンドをすべて許可
    • 許可・拒否を設定
    • 通信をステートレスに処理する
    • DoS遮断等の用途で使用
  • NATゲートウェイ
    • プライベートサブネットからインターネットにアクセスするために使用する
    • パブリックサブネットに作成し、Elastic IPを割り当てる
  • NATインスタンス
    • NATゲートウェイよりも安く、使わないときは停止できるが、可用性は自身で担保する
  • VPCエンドポイント
    • インターネットを介さずにVPC内とAWSサービスを接続する
      • サポートされていないサービスはインターネット経由でのみ接続
    • インターフェースエンドポイント
      • サブネット内に配置し、セキュリティグループを関連付ける
    • ゲートウェイエンドポイント
      • Amazon S3とDynamoDBのみサポート
      • VPCのエッジに配置し、ルートテーブルやIAMで制御する
  • VPCピアリング接続
    • VPCを1対1で接続する
      • 複数VPCを接続する場合はAWS Transit Gatewayの利用を推奨
    • 異なるAWSアカウント間のVPC、異なるリージョン間のVPCでも接続可能
    • 接続するVPCは異なるIP空間とする
  • VPN接続
  • VGW
    • AWS側のエンドポイントは物理的に二重化されている

References