AWS Outposts で Amazon EKS クラスターの VPC とサブネットを作成する - Amazon EKS

AWS Outposts で Amazon EKS クラスターの VPC とサブネットを作成する

ローカルクラスターを作成する際には、VPC と、Outposts で実行されるプライベートサブネットを少なくとも 1 つ指定します。このトピックでは、ローカルクラスターの VPC およびサブネットの要件と考慮事項について概要を説明します。

VPC の要件と考慮事項

ローカルクラスターを作成する際には、指定する VPC が次の要件と考慮事項を満たす必要があります。

  • VPC には、作成するローカルクラスター、すべてのノード、および作成するその他の Kubernetes リソースで利用できるだけの十分な数の IP アドレスが必要です。使用する VPC に十分な IP アドレスがない場合は、使用可能な IP アドレスの数を増やしてください。この操作を行うには、VPC への追加の Classless Inter-Domain Routing (CIDR) ブロックの関連付けが必要になります。クラスターの作成前または作成後に、プライベート (RFC 1918) とパブリック (非 RFC 1918) の CIDR ブロックを VPC に関連付けることができます。クラスターで VPC に関連付けた CIDR ブロックが認識されるまでに、最大 5 時間かかることがあります。

  • VPC に IP プレフィックスを割り当てたり、IPv6 CIDR ブロックを持たせることはできません。これらの制約があるため、 プレフィックスを使用して Amazon EKS ノードに割り当てる IP アドレスを増やす および クラスター、pods、サービスに対する IPv6 アドレスの説明 でカバーされた情報は VPC には適用されません。

  • VPC では DNS ホスト名と DNS 解決が有効になっています。これらの機能がないと、ローカルクラスターの作成は失敗し、機能を有効にしてクラスターを再作成する必要があります。詳細については、「Amazon VPC ユーザーガイド」の「DNS attributes for your VPC」(VPC の DNS 属性) を参照してください。

  • ローカルネットワーク経由でローカルクラスターにアクセスするには、VPC が Outpost のローカルゲートウェイルートテーブルに関連付けられている必要があります。詳細については、「AWS Outposts ユーザーガイド」の「VPC アソシエーション」を参照してください。

サブネットの要件と考慮事項

クラスターを作成する際には、少なくとも 1 つのプライベートサブネットを指定します。複数のサブネットを指定すると、Kubernetes コントロールプレーンインスタンスはサブネット全体に均等に分散されます。1 つ以上のサブネットを指定する場合、サブネットは同じ Outpost 上に存在する必要があります。また、相互に通信するために、サブネットには適切なルートとセキュリティグループ権限も必要です。ローカルクラスターの作成時に、指定するサブネットは次の要件を満たす必要があります。

  • サブネットはすべて、同じロジカル Outpost 上に存在すること。

  • Kubernetes コントロールプレーンインスタンスに対して、合計で少なくても 3 つ以上の使用可能な IP アドレスを用意してください。3 つのサブネットを指定する場合、各サブネットには少なくても 1 つ以上の使用可能な IP アドレスが必要です。2 つのサブネットを指定する場合、各サブネットには少なくても 2 つ以上の利用可能な IP アドレスが必要です。1 つのサブネットを指定する場合、サブネットには少なくても 3 つ以上の利用可能な IP アドレスが必要です。

  • ローカルネットワーク経由で Kubernetes API サーバーにアクセスするため、サブネットに Outpost ラックのローカルゲートウェイへのルートがあります。サブネットに Outpost ラックのローカルゲートウェイへのルートがない場合は、VPC 内から Kubernetes API サーバーと通信する必要があります。

  • サブネットでは IP アドレスベースの命名を使用する必要があります。Amazon EC2 のリソースベースの命名は、Amazon EKS でサポートされていません。

AWS サービスへのサブネットアクセス

Outposts 上のローカルクラスターのプライベートサブネットは、リージョンレベルの AWS サービスと通信できる必要があります。アウトバウンドインターネットアクセスに NAT ゲートウェイを使用するか、VPC 内ですべてのトラフィックをプライベートに保ちたい場合は、インターフェイス VPC エンドポイントを使用することによって、これを実現できます。

NAT ゲートウェイの使用

Outposts 上のローカルクラスターのプライベートサブネットには、Outposts の親アベイラビリティーゾーンにあるパブリックサブネット内の NAT ゲートウェイへのルートを持つ、関連付けられたルートテーブルが必要です。パブリックサブネットには、インターネットゲートウェイへのルートが必要です。NAT ゲートウェイはアウトバウンドのインターネットアクセスを可能にし、インターネットから Outpost のインスタンスへの未承諾なインバウンド接続を防ぎます。

インターフェイス VPC エンドポイントの使用

Outposts のローカルクラスターのプライベートサブネットにアウトバウンドインターネット接続がない場合、または VPC 内ですべてのトラフィックをプライベートに保ちたい場合は、クラスターを作成する前に、リージョンレベルのサブネットで次のインターフェイス VPC エンドポイントとゲートウェイエンドポイントを作成する必要があります。

エンドポイント エンドポイントタイプ

com.amazonaws.region-code.ssm

インターフェイス

com.amazonaws.region-code.ssmmessages

インターフェイス

com.amazonaws.region-code.ec2messages

インターフェイス

com.amazonaws.region-code.ec2

インターフェイス

com.amazonaws.region-code.secretsmanager

インターフェイス

com.amazonaws.region-code.logs

インターフェイス

com.amazonaws.region-code.sts

インターフェイス

com.amazonaws.region-code.ecr.api

インターフェイス

com.amazonaws.region-code.ecr.dkr

インターフェイス

com.amazonaws.region-code.s3

ゲートウェイ

エンドポイントは次の要件を満たしている必要があります。

  • Outpost の親アベイラビリティーゾーンにあるプライベートサブネットに作成されている

  • プライベートDNS 名が有効になっている

  • プライベート Outpost サブネットの CIDR 範囲からのインバウンド HTTPS トラフィックを許可するセキュリティグループがアタッチされている

エンドポイントを作成すると料金が発生します。詳細については、「AWS PrivateLink の料金」を参照してください。Pods が他の AWS サービスにアクセスする必要がある場合は、追加のエンドポイントを作成する必要があります。エンドポイントの包括的なリストについては、「AWS PrivateLink と統合する AWS のサービス」を参照してください。

「VPC を作成する」

以下の AWS CloudFormation テンプレートのいずれかを使用して、前の要件を満たす VPC を作成できます。

  • テンプレート 1 — このテンプレートは、Outpost に 1 つのプライベートサブネット、また AWS リージョンに 1 つのパブリックサブネットを持つ VPC を作成します。プライベートサブネットには、AWS リージョンのパブリックサブネットにある NAT Gateway 経由でのインターネットへのルートがあります。このテンプレートを使用して、出力インターネットアクセスを持つサブネットにローカルクラスターを作成できます。

  • テンプレート 2 — このテンプレートは、Outpost に 1 つのプライベートサブネットと、入力または出力のインターネットアクセスがないサブネット (プライベートサブネットとも呼ばれる) にローカルクラスターを作成するために必要な最小限の VPC エンドポイントセットを含む VPC を作成します。