Amazon Elastic Kubernetes Service (Amazon EKS) クラスターと連携するようにサブネットを設定したいと考えています。
簡単な説明
次の設定オプションのいずれかを選択します。
- ワーカーノードからアウトバウンドおよびインバウンドのインターネットアクセスを取得するには、パブリックサブネットを設定するのセクションの手順を完了します。
- ワーカーノードからアウトバウンドインターネットアクセスのみを取得するには、アウトバウンドインターネットアクセスを備えたプライベートサブネットを設定するのセクションの手順を完了します。
- ワーカーノードからアウトバウンドおよびインバウンドのインターネットアクセスの両方を制限するには、インターネットにアクセスできないプライベートサブネットを設定するのセクションの手順を完了します。例えば、プライベート Amazon EKS クラスターのためにこの解決方法を選択します。
解決方法
パブリックサブネットを設定する
Amazon EKS クラスターのサブネットを作成するときは、以下の点を考慮してください。
1. インターネットゲートウェイを介して送信先 0.0.0.0/0 にトラフィックをルーティングするように設定されたルートテーブルにサブネットを関連付けます。例: igw-xxxxxxxx
2. サブネットのために自動割り当てパブリック IPV4 アドレス属性をアクティブ化します。
3. サブネットのタグ付けを使用して、ロードバランサーのデプロイを制限するのセクションの手順を完了します。
アウトバウンドインターネットアクセスを備えたプライベートサブネットを設定する
Amazon EKS クラスターのサブネットを作成するときは、以下の点を考慮してください。
1. NAT ゲートウェイにトラフィックをルーティングするように設定されたルートテーブルにサブネットを関連付けて、インターネットへのアウトバウンド接続のみを許可します。
2. サブネットのために自動割り当てパブリック IPv4 アドレスがアクティブ化されていないことを確認します。
3. サブネットのタグ付けを使用して、ロードバランサーのデプロイを制限するのセクションの手順を完了します。
インターネットにアクセスできないプライベートサブネットを設定する
1. NAT ゲートウェイまたはインターネットゲートウェイにトラフィックをルーティングするように設定されているルートテーブルにサブネットが関連付けられていないことを確認します。これにより、ワーカーノードからのインターネットアクセスが確実にブロックされます。
2. 自動割り当てパブリック IPv4 アドレスがアクティブ化されていないことを確認します。
3. VPC 用に Amazon Virtual Private Cloud (Amazon VPC) エンドポイントを作成します。ワーカーノードが Amazon EKS クラスターに参加するには、次の VPC エンドポイントが必要です。
com.amazonaws.your_region.ec2
com.amazonaws.your_region.ecr.api
com.amazonaws.your_region.ecr.dkr
com.amazonaws.your_region.s3
注: your-region をご利用の AWS リージョンに置き換えてください。
4. (必要な場合) アプリケーションの要件に基づいて、追加の VPC エンドポイントを作成します。以下の例をご覧ください。
Amazon CloudWatch Logs の場合:
com.amazonaws.your_region.logs
Kubernetes Cluster Autoscaler またはサービスアカウントの AWS Identity and Access Management (IAM) ロールの場合:
com.amazonaws.your_region.sts
Application Load Balancer の場合:
com.amazonaws.your_region.elasticloadbalancing
Kubernetes Cluster Autoscaler の場合:
com.amazonaws.your_region.autoscaling
AWS App Mesh の場合:
com.amazonaws.your_region.appmesh-envoy-management
AWS X-Ray の場合:
com.amazonaws.your_region.xray
注: your-region をご利用の AWS リージョンに置き換えてください。
5. サブネットのタグ付けを使用して、ロードバランサーのデプロイを制限するのセクションの手順を完了します。
サブネットのタグ付けを使用して、ロードバランサーのデプロイを制限する
サブネットのタグ付けは、外部または内部のロードバランサーを作成するためにどのサブネットを使用できるかを AWS Load Balancer Controller に知らせます。
パブリックサブネットの場合:
VPC の特定のパブリックサブネットで AWS Load Balancer Controller を使用して外部ロードバランサーのデプロイを制限するには、そのサブネットに次のようにタグ付けします。
Key - kubernetes.io/role/elb
Value - 1
プライベートサブネットの場合:
特定のプライベートサブネットで AWS Load Balancer Controller を使用して内部ロードバランサーのデプロイを制限するには、そのサブネットに次のようにタグ付けします。
Key - kubernetes.io/role/internal-elb
Value - 1
注: ノードと Kubernetes リソースは、クラスターの作成時に指定したのと同じサブネットにデプロイできます。クラスターを作成したときに指定しなかったサブネットにノードと Kubernetes リソースをデプロイすることもできます。ノードと Kubernetes リソースをデプロイするサブネットはすべて、関連する要件を満たす必要があります。詳細については、「サブネットの要件と考慮事項」を参照してください。
関連情報
Amazon EKS VPC とサブネットの要件と考慮事項
AWS PrivateLink concepts (AWS PrivateLink のコンセプト)
プライベートクラスターの要件
Amazon EKS でのアプリケーション負荷分散