Amazon EC2 インスタンスタイプを選択する - Amazon EKS

Amazon EC2 インスタンスタイプを選択する

Amazon EC2 インスタンスタイプごとに、コンピューティング、メモリ、ストレージ、およびネットワークの機能が異なっており、これらの機能に基づいたインスタンスファミリーにグループ化されています。

ノードグループのインスタンスタイプを選択する前に、次の基準を考慮してください。

  • ノードグループ内のインスタンス数 – 一般的に、多くのデーモンセットがある場合は特に、より少ないサイズの大きなインスタンスが適しています。各インスタンスには API サーバーへの API コールが必要です。したがって、インスタンス数が多いほど、API サーバーのロードが高くなります。

  • オペレーティングシステムLinuxWindowsBottlerocketに対応しているインスタンスタイプを確認する。Windows インスタンスを作成する前に、Windows サポートを確認してください。

  • ハードウェアアーキテクチャ — x86 または Arm が必要ですか。Linux は Arm でのみデプロイできます。Arm インスタンスをデプロイする前に、Amazon EKS 最適化 Arm Amazon Linux AMIを確認してください。Nitro System ((LinuxまたはWindows)、または高速機能) 上に構築されたインスタンスが必要ですか。Amazon EKS は、アクセラレートされたインスタンスで Linux のみをサポートします。

  • Pod の最大数 — 各 Pod には独自の IP アドレスが割り当てられているため、インスタンスの IP アドレスの数は、インスタンスで実行できる Pod の数を決定する要因になります。AWSNitro システムインスタンスタイプは、オプションで Nitro System 以外のインスタンスタイプよりも大幅に多くの IP アドレスをサポートします。ただし、インスタンスに割り当てられたすべての IP アドレスが Pod で使用できるわけではありません。インスタンスタイプがサポートする Pod の数を確認するには、各 Amazon EC2 インスタンスタイプの Amazon EKS の推奨最大ポッド数を参照してください。

  • 実行している Amazon VPC CNI アドオンのバージョンKubernetes 用の Amazon VPC CNIプラグインの最新バージョンは、これらのインスタンスタイプをサポートしています。サポートされている最新のインスタンスタイプを利用するには、Amazon VPC CNI アドオンのバージョンを更新する必要があります。詳細については、「Amazon VPC CNI のセルフマネージド型アドオンを更新する」を参照してください。最新バージョンでは、Amazon EKS で使用できる最新の機能をサポートしています。以前のバージョンでは、すべての機能がサポートされているわけではありません。さまざまなバージョンでサポートされている機能は、GitHub の Changelog で確認できます。

  • ノードを作成しているリージョン — リージョンによっては使用できないインスタンスタイプがあります。

  • ポッドにセキュリティグループを使用しているかどうか - 使用している場合は、特定のインスタンスタイプのみがサポートされます。詳細については、「Amazon EC2 がサポートするインスタンスとブランチネットワークインターフェイス」を参照してください。

各 Amazon EC2 インスタンスタイプの Amazon EKS の推奨最大ポッド数

Amazon EKS には、ダウンロードして実行できるスクリプトが用意されており、各インスタンスタイプで実行する Amazon EKS 推奨最大数を決定できます。このスクリプトは、各インスタンスのハードウェア属性と設定オプションを使用して、最大ポッド数を決定します。これらの手順で返された番号を使用して、インスタンスのとは異なるサブネットから、IP アドレスをポッドに割り当てるおよびインスタンスの IP アドレスの数を大幅に増やす

  1. 各インスタンスタイプにおけるポッドの最大数を計算するために使用できるスクリプトをダウンロードします。

    curl -o max-pods-calculator.sh https://raw.githubusercontent.com/awslabs/amazon-eks-ami/master/files/max-pods-calculator.sh
  2. コンピュータ上で、そのスクリプトを実行可能としてマークします。

    chmod +x max-pods-calculator.sh
  3. スクリプトを実行し、 <m5.large> (<>を含む) をデプロイする予定のインスタンスタイプに置き換え、<1.9.0-eksbuild.1>をAmazon VPC CNI アドオンバージョンに置き換えます。アドオンのバージョンを確認するには、Amazon VPC CNI アドオンの管理の更新手順を参照してください。

    ./max-pods-calculator.sh --instance-type <m5.large> --cni-version <1.9.0-eksbuild.1>

    出力

    29

    次のオプションをスクリプトに追加して、オプションの機能を使用するときにサポートされる最大 Pod を確認できます。

    • --cni-custom-networking-enabled — インスタンスとは異なるサブネットから IP アドレスを割り当てる場合は、このオプションを使用します。詳細については、「CNI カスタムネットワーク」を参照してください。同じサンプル値を使用して前のスクリプトにこのオプションを追加すると、20 が得られます。

    • --cni-prefix-delegation-enabled — 各 elastic network interface にかなり多くの IP アドレスを割り当てる場合は、このオプションを使用します。この機能を使用するには、Nitro System および Amazon VPC CNI アドオンのバージョン 1.9.0 以降で実行する Amazon Linux インスタンスが必要です。詳細については、「Amazon EC2 ノードで使用可能な IP アドレスの量を増やす」を参照してください。同じサンプル値を使用して前のスクリプトにこのオプションを追加すると、110 が得られます。

--help オプションを指定してスクリプトを実行し、使用可能なすべてのオプションを表示することもできます。