

 **このページの改善にご協力ください** 

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「**GitHub でこのページを編集する**」リンクを選択してください。

# AWS Outposts で Amazon EKS クラスターの VPC とサブネットを作成する
<a name="eks-outposts-vpc-subnet-requirements"></a>

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

## VPC の要件と考慮事項
<a name="outposts-vpc-requirements"></a>

ローカルクラスターを作成する際には、指定する VPC が次の要件と考慮事項を満たす必要があります。
+ VPC には、作成するローカルクラスター、任意のノード、およびその他の Kubernetes リソースで利用できるだけの十分な数の IP アドレスが必要です。使用する VPC に十分な IP アドレスがない場合は、使用可能な IP アドレスの数を増やしてください。この操作を行うには、VPC への[追加の Classless Inter-Domain Routing (CIDR) ブロックの関連付け](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#add-ipv4-cidr)が必要になります。クラスターの作成前または作成後に、プライベート (RFC 1918) とパブリック (非 RFC 1918) の CIDR ブロックを VPC に関連付けることができます。クラスターで VPC に関連付けた CIDR ブロックが認識されるまでに、最大 5 時間かかることがあります。
+ VPC に IP プレフィックスを割り当てたり、IPv6 CIDR ブロックを持たせることはできません。これらの制約があるため、 [プレフィックスを使用して Amazon EKS ノードに割り当てる IP アドレスを増やす](cni-increase-ip-addresses.md) および [クラスター、Pod、サービスに対する IPv6 アドレスの説明](cni-ipv6.md) でカバーされた情報は VPC には適用されません。
+ VPC では DNS ホスト名と DNS 解決が有効になっています。これらの機能がないと、ローカルクラスターの作成は失敗し、機能を有効にしてクラスターを再作成する必要があります。詳細については、「Amazon VPC ユーザーガイド」の「[DNS attributes for your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)」(VPC の DNS 属性) を参照してください。
+ ローカルネットワーク経由でローカルクラスターにアクセスするには、VPC が Outpost のローカルゲートウェイルートテーブルに関連付けられている必要があります。詳細については、「AWS Outposts ユーザーガイド」の「[VPC アソシエーション](https://docs.aws.amazon.com/outposts/latest/userguide/outposts-local-gateways.html#vpc-associations)」を参照してください。

## サブネットの要件と考慮事項
<a name="outposts-subnet-requirements"></a>

クラスターを作成する際には、少なくとも 1 つのプライベートサブネットを指定します。複数のサブネットを指定すると、Kubernetes コントロールプレーンインスタンスはサブネット全体に均等に分散されます。1 つ以上のサブネットを指定する場合、サブネットは同じ Outpost 上に存在する必要があります。また、相互に通信するために、サブネットには適切なルートとセキュリティグループ権限も必要です。ローカルクラスターの作成時に、指定するサブネットは次の要件を満たす必要があります。
+ サブネットはすべて、同じロジカル Outpost 上に存在すること。
+ サブネットには、Kubernetes コントロールプレーンインスタンスに対して、合計で 3 つ以上の使用可能な IP アドレスを用意してください。3 つのサブネットを指定する場合、各サブネットには少なくても 1 つ以上の使用可能な IP アドレスが必要です。2 つのサブネットを指定する場合、各サブネットには少なくても 2 つ以上の利用可能な IP アドレスが必要です。1 つのサブネットを指定する場合、サブネットには少なくても 3 つ以上の利用可能な IP アドレスが必要です。
+ ローカルネットワーク経由で Kubernetes API サーバーにアクセスするため、サブネットには Outpost ラックの[ローカルゲートウェイ](https://docs.aws.amazon.com/outposts/latest/userguide/outposts-local-gateways.html)へのルートがあります。サブネットに Outpost ラックのローカルゲートウェイへのルートがない場合は、VPC 内から Kubernetes API サーバーと通信する必要があります。
+ サブネットでは IP アドレスベースの命名を使用する必要があります。Amazon EC2 の[リソースベースの命名](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html#instance-naming-rbn)は、Amazon EKS でサポートされていません。

## AWS サービスへのサブネットアクセス
<a name="subnet-access-to-services"></a>

Outposts 上のローカルクラスターのプライベートサブネットは、リージョンレベルの AWS サービスと通信できる必要があります。アウトバウンドインターネットアクセスに [NAT ゲートウェイ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)を使用するか、VPC 内ですべてのトラフィックをプライベートに保ちたい場合は、[インターフェイス VPC エンドポイント](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)を使用することによって、これを実現できます。

### NAT ゲートウェイの使用
<a name="subnet-access-nat-gateway"></a>

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

### インターフェイス VPC エンドポイントの使用
<a name="vpc-subnet-requirements-vpc-endpoints"></a>

Outposts のローカルクラスターのプライベートサブネットにアウトバウンドインターネット接続がない場合、または VPC 内ですべてのトラフィックをプライベートに保ちたい場合は、クラスターを作成する前に、リージョンレベルのサブネットで次のインターフェイス VPC エンドポイントと[ゲートウェイエンドポイント](https://docs.aws.amazon.com/vpc/latest/privatelink/gateway-endpoints.html)を作成する必要があります。


| エンドポイント | エンドポイントタイプ | 
| --- | --- | 
|  `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 プライベートリンク の料金](https://aws.amazon.com/privatelink/pricing/)」を参照してください。Pod が他の AWS サービスにアクセスする必要がある場合は、追加のエンドポイントを作成する必要があります。エンドポイントの包括的なリストについては、「[AWS PrivateLink と統合する AWS のサービス](https://docs.aws.amazon.com/vpc/latest/privatelink/aws-services-privatelink-support.html)」を参照してください。

## 「VPC を作成する」
<a name="outposts-create-vpc"></a>

以下の AWS CloudFormation テンプレートのいずれかを使用して、前の要件を満たす VPC を作成できます。
+  **[テンプレート 1](https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2022-09-20/amazon-eks-local-outposts-vpc-subnet.yaml)** — このテンプレートは、Outpost に 1 つのプライベートサブネット、また AWS リージョンに 1 つのパブリックサブネットを持つ VPC を作成します。プライベートサブネットには、AWS リージョンのパブリックサブネットにある NAT Gateway 経由でのインターネットへのルートがあります。このテンプレートを使用して、出力インターネットアクセスを持つサブネットにローカルクラスターを作成できます。
+  **[テンプレート 2](https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2023-03-20/amazon-eks-local-outposts-fully-private-vpc-subnet.yaml)** — このテンプレートは、Outpost に 1 つのプライベートサブネットと、入力または出力のインターネットアクセスがないサブネット (プライベートサブネットとも呼ばれる) にローカルクラスターを作成するために必要な最小限の VPC エンドポイントセットを含む VPC を作成します。