仮想プライベートクラウド (VPC) は、AWS内の独立したネットワーク環境です。

AWS VPCは、以下を含むネットワーク構成を完全に制御します。

  • IPアドレス範囲
  • サブネット
  • ルーティングテーブル
  • ネットワークゲートウェイ

SystemLink Enterpriseのデプロイメントでは、セキュリティ、拡張性、およびネットワーク分離のために、適切に構成されたVPCが不可欠です。

VPCを構成して、コンピューティングおよびストレージインフラストラクチャをインターネットに接続されたゲートウェイやロードバランサから分離します。この構成は、クラウドセキュリティのベストプラクティスに従い、機密性の高いワークロードにインターネットから直接アクセスできないようにします。

アーキテクチャの一般的なリファレンスについては、「AWS SystemLink Enterprise Kubernetesのアーキテクチャ図」を参照してください。

サブネットアーキテクチャ

パブリックサブネットとプライベートサブネットの両方でVPCを構成し、インターネットに接続するコンポーネントを内部インフラストラクチャから分離します。

以下のコンポーネントは、インターネットに直接アクセスできないプライベートサブネットにデプロイします。

  • EKSクラスタノード: Webサービス、Webアプリケーション、およびサポートインフラストラクチャを含む、SystemLink Enterpriseポッドをホストするワーカノード。
  • データベース: PostgreSQL用のAmazon RDSインスタンス、または自己管理データベースインスタンス。
  • S3用VPCエンドポイント: VPCゲートウェイエンドポイントを使用して、プライベートサブネットがインターネット経由でトラフィックを送信せずにAmazon S3に直接アクセスできるようにします。

インターネットゲートウェイアクセスのあるパブリックサブネットに以下のコンポーネントをデプロイします。

  • Application Load Balancer (ALB): SystemLink WebアプリケーションおよびAPIへのHTTPSトラフィック用のインターネット接続型ロードバランサ
  • Network Load Balancer (NLB): Salt Masterトラフィック用TCPロードバランサ (ポート4505および4506)
  • NATゲートウェイ: プライベートサブネットのリソースに対してアウトバウンドインターネットアクセスを有効にする

CIDRブロック計画

VPC CIDRブロックを計画して、SystemLink Enterpriseおよび将来の拡張のために十分なIPアドレスを確保します。

  • 推奨VPCサイズ: /16 CIDRブロック (65,536 IPアドレス) により、柔軟なスケーリングが可能
  • 最小VPCサイズ: /20 CIDRブロック (4,096 IPアドレス) (小規模から中規模のデプロイメントの場合)

サブネットは、次の考慮事項に基づいて割り当てます。

  • EKSノードのプライベートサブネット: 予想される最大ノード数に基づくサイズ。各EKSノードには、サブネットCIDRから1つのIPアドレスが必要です。
  • ポッドのプライベートサブネット: カスタムネットワークまたはVPC CNIカスタムモードを使用している場合は、ポッドIPアドレスに追加のサブネットを割り当てます。各ポッドには独自のIPアドレスが必要です。
    • ポッドレベルのネットワーク分離に特別な要件がない限り、ポッドがノードサブネットを共有するデフォルトのVPC CNI構成から開始します。
    • IP使用率を注意深く監視します。各ノードは、EC2インスタンスタイプに応じて10~100個以上のIPアドレスを消費できます。
    • 拡張の計画。サブネットのサイズ設定がワークロードの大幅なスケーリングをサポートできることを確認してください。
  • パブリックサブネット: ロードバランサおよびNATゲートウェイには、/24などの小さな割り当てで十分です。
  • マルチAZデプロイメント: 高可用性のために、少なくとも2つの可用性ゾーンにサブネットペア (パブリック/プライベート) を作成します。
表 60. CIDR割り当ての例(10.0.0.0/16を使用するVPC)
サブネットタイプ 可用性ゾーン CIDRブロック 使用可能なIP
プライベート (EKSノード) us-east-1a 10.0.0.0/19 8,192
プライベート (EKSノード) us-east-1b 10.0.32.0/19 8,192
プライベート (データベース) us-east-1a 10.0.64.0/24 256
プライベート (データベース) us-east-1b 10.0.65.0/24 256
パブリック us-east-1a 10.0.128.0/24 256
パブリック us-east-1b 10.0.129.0/24 256
メモ AWSは、最初の4つのIPアドレスと最後のIPアドレスを各サブネットに予約します。使用可能なアドレスを計算する際は、適宜計画してください。

セキュリティのベストプラクティス

VPC for SystemLink Enterpriseを構成する際は、以下のセキュリティのベストプラクティスに従ってください。

  • コンピューティングおよびストレージに直接インターネットアクセスできない: すべてのEKSノード、データベース、および内部サービスは、インターネットゲートウェイ経路のないプライベートサブネットに存在する必要があります。
  • トラフィックフローの分離:インターネットトラフィックは、インターネット、パブリックALB/NLB、プライベートKubernetesイングレスコントローラ (プライベートサブネット)、プライベートSystemLinkサービスを通過します。
  • NATによるアウトバウンドインターネット: パブリックサブネットでNATゲートウェイを使用して、プライベートサブネットリソースにアウトバウンドインターネットアクセスを提供します。高可用性のために、可用性ゾーンごとに1つのNATゲートウェイを配置します。
  • VPCエンドポイント: AWSサービス (S3) のVPCエンドポイントを使用して、インターネット経路設定を回避し、データ転送コストを削減します。
  • セキュリティグループ: コンポーネント間で必要なトラフィックのみを許可するようにセキュリティグループを構成します。最小権限の原則を使用します。

可用性ゾーンに関する注意事項

高可用性とフォールトトレランスのために、複数の可用性ゾーンにSystemLink Enterpriseをデプロイします。

  • 最小デプロイメント: 各ゾーンでサブネットペアを持つ2つ以上の可用性ゾーンを使用します。
  • EKSノードグループ: ワーカノードを可用性ゾーン全体に分散します。
  • データベースMulti-AZ: RDS PostgreSQLおよびDocumentDBのMulti-AZデプロイメントを有効にします。
  • ロードバランサ分散: 複数の可用性ゾーンのサブネット間でトラフィックを分散するようにALBとNLBを構成します。