Amazon EKS クラスター VPC の作成 - Amazon EKS

Amazon EKS クラスター VPC の作成

Amazon Virtual Private Cloud (Amazon VPC) を使用すると、定義した仮想ネットワーク内で AWS リソースを起動できます。仮想ネットワークは、お客様自身のデータセンターで運用されていた従来のネットワークによく似ていますが、 のスケーラブルなインフラストラクチャを使用できるというメリットがありますAWS 詳細については、「Amazon VPC ユーザーガイド」および「Amazon EKS ノードのクラスターネットワーキングの解明」を参照してください。

既存の VPC を使用する場合は、Amazon EKS で使用するための特定の要件を満たしている必要があります。詳細については、「クラスター VPC に関する考慮事項」を参照してください。このトピックでは、次のいずれかの設定を使用して、クラスターの VPC を作成する手順について説明します。

  • パブリックサブネットとプライベートサブネット - この VPC には、2 つのパブリックサブネットと 2 つのプライベート サブネットがあります。1 つのパブリックサブネットと 1 つのプライベートサブネットが同じアベイラビリティーゾーンにデプロイされます。他のパブリックサブネットとプライベートサブネットは、同じリージョン内の 2 番目のアベイラビリティーゾーンにデプロイされます。このオプションは、すべての実稼働デプロイに推奨されます。このオプションでは、ノードをプライベートサブネットにデプロイし、Kubernetes がパブリックサブネットにロードバランサーをデプロイできるようにします。これにより、プライベートサブネットのノードで実行されているポッドへのトラフィックの負荷を分散できます。

    パブリック IP アドレスは、パブリックサブネットの 1 つにデプロイされたリソースに自動的に割り当てられますが、プライベートサブネットにデプロイされたリソースにはパブリック IP アドレスが割り当てられません。プライベートサブネット内のノードは、クラスターおよび他の AWS サービスと通信でき、ポッドは各アベイラビリティーゾーンにデプロイされた NAT ゲートウェイを介してインターネットへのアウトバウンド通信ができます。すべてのインバウンドトラフィックを拒否し、すべてのアウトバウンドトラフィックを許可するセキュリティグループがデプロイされます。サブネットには、Kubernetes がロードバランサーをデプロイできるようにタグが付けられています。サブネットのタグ付けの詳細については、「サブネットのタグ付け」を参照してください。このタイプの VPC の詳細については、「パブリックサブネットとプライベートサブネット (NAT) を持つ VPC」を参照してください。

  • パブリックサブネットのみ - この VPC には、リージョン内の異なるアベイラビリティゾーンにデプロイされる 3 つのパブリックサブネットがあります。すべてのノードには自動的にパブリック IP アドレスが割り当てられ、インターネットゲートウェイを介してインターネットトラフィックを送受信できます。すべてのインバウンドトラフィックを拒否し、すべてのアウトバウンドトラフィックを許可するセキュリティグループがデプロイされます。サブネットには、Kubernetes がロードバランサーをデプロイできるようにタグが付けられています。サブネットのタグ付けの詳細については、「サブネットのタグ付け」を参照してください。このタイプの VPC の詳細については、「単一パブリックサブネットを持つ VPC」を参照してください。

  • プライベートサブネットのみ - この VPC には、リージョン内の異なるアベイラビリティゾーンにデプロイされる 3 つのプライベートサブネットがあります。すべてのノードは、オプションで、NAT インスタンスまたは NAT ゲートウェイを介してインターネットトラフィックを送受信できます。すべてのインバウンドトラフィックを拒否し、すべてのアウトバウンドトラフィックを許可するセキュリティグループがデプロイされます。サブネットには、Kubernetes が内部ロードバランサーをデプロイできるようにタグが付けられています。サブネットのタグ付けの詳細については、「サブネットのタグ付け」を参照してください。このタイプの VPC の詳細については、「プライベートサブネットのみを含む VPC と AWS Site-to-Site VPN アクセス」を参照してください。

    重要

    VPC に NAT インスタンス、NAT ゲートウェイ、VPN、Direct Connect などを介するアウトバウンドインターネットアクセスがない場合は、追加の要件を満たす必要があります。クラスター認証機関とクラスター API エンドポイントをノードに提供することで、EKS クラスターのイントロスペクションを回避する必要があります。場合によって、「クラスターエンドポイントのアクセスの変更」に一覧表示されている VPC エンドポイントを設定する必要もあります。

重要

VPC をデプロイするために、eksctl を使用するか、Amazon EKS AWS CloudFormation VPC テンプレートのいずれかを使用した場合:

  • 2020 年 3 月 26 日以降 - パブリック IPv4 アドレスは、パブリックサブネットにデプロイした新しいノードに、パブリックサブネットにより自動的に割り当てられます。

  • 2020 年 3 月 26 日より前 - パブリック IPv4 アドレスは、パブリックサブネットにデプロイした新しいノードに、パブリックサブネットが自動的に割り当てません。

この変更は、パブリックサブネットにデプロイした新しいノードグループに、次のような影響を与えます。

Amazon EKS クラスター VPC の作成

パブリックサブネットとプライベートサブネット、パブリックサブネットのみ、またはプライベートサブネットのみで、VPC を作成できます。作成する VPC タイプの詳細が記されているタブを選択します。

Public and private subnets

パブリックサブネットとプライベートサブネットを持つクラスター VPC を作成するには

  1. https://console.aws.amazon.com/cloudformation で AWS CloudFormation コンソール を開きます。

  2. ナビゲーションバーで、Amazon EKS をサポートするリージョンを選択します。

  3. [スタックの作成] を選択し、[With new resources (standard) (新しいリソースの使用 (標準))] を選択します。

  4. [テンプレートの選択] で、[Amazon S3 テンプレート URL の指定] を選択します。

  5. 以下の URL をテキストエリアに貼り付けて、[次へ] を選択します。

    https://amazon-eks.s3.us-west-2.amazonaws.com/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yaml
  6. [詳細の指定] ページで、必要に応じてパラメータを指定し、[次へ] を選択します。

    • Stack name: AWS CloudFormation スタックのスタック名を選択します。例えば、[eks-vpc] に呼び出します。

    • VpcBlock: VPC の CIDR 範囲を選択します。デプロイする各ワーカーノード、ポッド、およびロードバランサーには、このブロックの IP アドレスが割り当てられます。デフォルト値は、ほとんどの実装で十分な IP アドレスを提供しますが、そうでない場合は、変更することができます。詳細については、「Amazon VPC ユーザーガイド」の「VPC とサブネットのサイズ設定」を参照してください。VPC を作成したら、追加の CIDR ブロックを VPC に追加することもできます。

    • PublicSubnet01Block: パブリックサブネット 1 の CIDR ブロックを指定します。デフォルト値は、ほとんどの実装で十分な IP アドレスを提供しますが、そうでない場合は、変更することができます。

    • PublicSubnet02Block: パブリックサブネット 2 の CIDR ブロックを指定します。デフォルト値は、ほとんどの実装で十分な IP アドレスを提供しますが、そうでない場合は、変更することができます。

    • PrivateSubnet01Block: プライベートサブネット 1 の CIDR ブロックを指定します。デフォルト値は、ほとんどの実装で十分な IP アドレスを提供しますが、そうでない場合は、変更することができます。

    • PrivateSubnet02Block: プライベートサブネット 2 の CIDR ブロックを指定します。デフォルト値は、ほとんどの実装で十分な IP アドレスを提供しますが、そうでない場合は、変更することができます。

  7. (オプション) [オプション] ページで、スタックリソースをタグ付けします。[Next] を選択します。

  8. [Review] ページで、[Create ] を選択します。

  9. スタックが作成されたら、コンソールで選択し、[出力] を選択します。

  10. 作成されたセキュリティグループの [SecurityGroups] 値を記録します。ノードをクラスターに追加する場合は、セキュリティグループの ID を指定する必要があります。セキュリティグループは、 コントロールプレーンがノードと通信できるように、サブネットに Amazon EKS が作成したエラスティックネットワークインターフェイスに適用されます。これらのネットワークインターフェイスは、説明に Amazon EKS <cluster name> があります。

  11. 作成された VPC の [VpcId] を記録します。これは、ノードグループテンプレートの起動時に必要です。

  12. 作成されたサブネットの SubnetIds と、それらをパブリックサブネットとプライベートサブネットのどちらとして作成したかを記録します。ノードをクラスターに追加する場合は、ノードを起動するサブネットの ID を指定する必要があります。

Only public subnets

パブリックサブネットのみを持つクラスター VPC を作成するには

  1. https://console.aws.amazon.com/cloudformation で AWS CloudFormation コンソール を開きます。

  2. ナビゲーションバーで、Amazon EKS をサポートするリージョンを選択します。

  3. [スタックの作成] を選択し、[With new resources (standard) (新しいリソースの使用 (標準))] を選択します。

  4. [テンプレートの選択] で、[Amazon S3 テンプレート URL の指定] を選択します。

  5. 以下の URL をテキストエリアに貼り付けて、[次へ] を選択します。

    https://amazon-eks.s3.us-west-2.amazonaws.com/cloudformation/2020-10-29/amazon-eks-vpc-sample.yaml
  6. [詳細の指定] ページで、必要に応じてパラメータを指定し、[次へ] を選択します。

    • Stack name: AWS CloudFormation スタックのスタック名を選択します。例えば、[eks-vpc] に呼び出します。

    • VpcBlock: VPC の CIDR ブロックを選択します。デプロイする各ワーカーノード、ポッド、およびロードバランサーには、このブロックの IP アドレスが割り当てられます。デフォルト値は、ほとんどの実装で十分な IP アドレスを提供しますが、そうでない場合は、変更することができます。詳細については、「Amazon VPC ユーザーガイド」の「VPC とサブネットのサイズ設定」を参照してください。VPC を作成したら、追加の CIDR ブロックを VPC に追加することもできます。

    • Subnet01Block: サブネット 1 の CIDR ブロックを指定します。デフォルト値は、ほとんどの実装で十分な IP アドレスを提供しますが、そうでない場合は、変更することができます。

    • Subnet02Block: サブネット 2 の CIDR ブロックを指定します。デフォルト値は、ほとんどの実装で十分な IP アドレスを提供しますが、そうでない場合は、変更することができます。

    • Subnet03Block: サブネット 3 の CIDR ブロックを指定します。デフォルト値は、ほとんどの実装で十分な IP アドレスを提供しますが、そうでない場合は、変更することができます。

  7. (オプション) [オプション] ページで、スタックリソースをタグ付けします。[Next] を選択します。

  8. [Review] ページで、[Create ] を選択します。

  9. スタックが作成されたら、コンソールで選択し、[出力] を選択します。

  10. 作成されたセキュリティグループの [SecurityGroups] 値を記録します。ノードをクラスターに追加する場合は、セキュリティグループの ID を指定する必要があります。セキュリティグループは、 コントロールプレーンがノードと通信できるように、サブネットに Amazon EKS が作成したエラスティックネットワークインターフェイスに適用されます。これらのネットワークインターフェイスは、説明に Amazon EKS <cluster name> があります。

  11. 作成された VPC の [VpcId] を記録します。これは、ワーカーノードグループテンプレートの起動時に必要です。

  12. 作成されたサブネットの [SubnetIds] を記録します。ノードをクラスターに追加する場合は、ノードを起動するサブネットの ID を指定する必要があります。

Only private subnets

パブリックサブネットのみを含むクラスター VPC を作成するには

  1. https://console.aws.amazon.com/cloudformation で AWS CloudFormation コンソール を開きます。

  2. ナビゲーションバーで、Amazon EKS をサポートするリージョンを選択します。

  3. [スタックの作成] を選択し、[With new resources (standard) (新しいリソースの使用 (標準))] を選択します。

  4. [テンプレートの選択] で、[Amazon S3 テンプレート URL の指定] を選択します。

  5. 以下の URL をテキストエリアに貼り付けて、[次へ] を選択します。

    https://amazon-eks.s3.us-west-2.amazonaws.com/cloudformation/2020-10-29/amazon-eks-fully-private-vpc.yaml
  6. [詳細の指定] ページで、必要に応じてパラメータを指定し、[次へ] を選択します。

    • Stack name: AWS CloudFormation スタックのスタック名を選択します。例えば、[eks-vpc] に呼び出します。

    • VpcBlock: VPC の CIDR ブロックを選択します。デプロイする各ワーカーノード、ポッド、およびロードバランサーには、このブロックの IP アドレスが割り当てられます。デフォルト値は、ほとんどの実装で十分な IP アドレスを提供しますが、そうでない場合は、変更することができます。詳細については、「Amazon VPC ユーザーガイド」の「VPC とサブネットのサイズ設定」を参照してください。VPC を作成したら、追加の CIDR ブロックを VPC に追加することもできます。

    • PrivateSubnet01Block: サブネット 1 の CIDR ブロックを指定します。デフォルト値は、ほとんどの実装で十分な IP アドレスを提供しますが、そうでない場合は、変更することができます。

    • PrivateSubnet02Block: サブネット 2 の CIDR ブロックを指定します。デフォルト値は、ほとんどの実装で十分な IP アドレスを提供しますが、そうでない場合は、変更することができます。

    • PrivateSubnet03Block: サブネット 3 の CIDR ブロックを指定します。デフォルト値は、ほとんどの実装で十分な IP アドレスを提供しますが、そうでない場合は、変更することができます。

  7. (オプション) [オプション] ページで、スタックリソースをタグ付けします。[Next] を選択します。

  8. [Review] ページで、[Create ] を選択します。

  9. スタックが作成されたら、コンソールで選択し、[出力] を選択します。

  10. 作成されたセキュリティグループの [SecurityGroups] 値を記録します。ノードをクラスターに追加する場合は、セキュリティグループの ID を指定する必要があります。セキュリティグループは、 コントロールプレーンがノードと通信できるように、サブネットに Amazon EKS が作成したエラスティックネットワークインターフェイスに適用されます。これらのネットワークインターフェイスは、説明に Amazon EKS <cluster name> があります。

  11. 作成された VPC の [VpcId] を記録します。これは、ワーカーノードグループテンプレートの起動時に必要です。

  12. 作成されたサブネットの [SubnetIds] を記録します。ノードをクラスターに追加する場合は、ノードを起動するサブネットの ID を指定する必要があります。

次のステップ

VPC を作成したら、Amazon EKS の使用開始 チュートリアルを試すことができます。