Elastic Container Instance (ECI) は、Kubernetes クラスターに基本的なコンテナランタイムを提供します。各 Elastic Container Instance は 1 つの Pod です。ECI は、Kubernetes コミュニティの Virtual Kubelet 技術に基づいて構築された仮想ノードを介して Kubernetes クラスターに接続します。
ユースケース
バーストワークロード:ノードプールを事前にプロビジョニングすることなく、オンデマンドでコンテナワークロードをスケールします。
AI および ML ジョブ:GPU 対応の ECS インスタンスタイプを指定することで、GPU で高速化されたトレーニングまたは推論タスクを実行します。
バッチ処理:プリエンプティブルインスタンスを使用してステートレスでフォールトトレラントなジョブを実行し、コストを削減します。
マイクロサービスと API:分離されたネットワークと柔軟なストレージオプションを使用して、コンテナ化されたサービスをデプロイします。
Pod の構成
各 Pod には、4 つの主要な構成エリアがあります:
仕様
vCPU 数とメモリサイズを指定して、コンピューティングパフォーマンスを定義します。GPU、ローカルディスク、またはその他のハードウェア機能を使用するには、代わりに ECS インスタンスタイプを指定します (例:GPU で高速化されたワークロードの場合は ecs.gn6i-c4g1.xlarge)。
コンテナイメージ
1 つの Pod は最大 20 個のコンテナをサポートします。Pod の起動時間を短縮するには、イメージキャッシュ機能を使用して、起動のたびにレジストリからイメージをプルするのを回避します。
ネットワーク
各 Pod は、その Virtual Private Cloud (VPC) 内の vSwitch から 1 つの Elastic Network Interface (ENI) を使用し、デフォルトで内部 IP アドレスが割り当てられます。インターネットアクセスを有効にする (例えば、パブリックイメージをプルする) には、Elastic IP アドレス (EIP) を Pod に関連付けるか、VPC に NAT ゲートウェイを構成します。
ストレージ
各 Pod は、デフォルトで 30 GiB の一時ストレージを提供します。Pod のライフサイクルを超えてファイルを永続化するには、File Storage NAS (NAS) ファイルシステム、Object Storage Service (OSS) バケット、クラウドディスクなどの外部ボリュームをマウントします。
Pod の作成
作成方法の選択
ハードウェア要件と課金プリファレンスに基づいて方法を選択します:
| 方法 | 請求元 | 使用する状況 |
|---|---|---|
| vCPU 数とメモリサイズを指定 | vCPU とメモリの仕様 | 汎用ワークロード。システムが互換性のあるインスタンスタイプを自動的に選択します |
| ECS インスタンスタイプを指定 | 指定された ECS インスタンスタイプ | 特定のハードウェア (GPU、ローカルディスク、ARM、または x86) を必要とするワークロード |
| インスタンスファミリーフィルターを使用して vCPU とメモリを指定 | 実際に使用された ECS インスタンスタイプ | 柔軟なサイジングとインスタンスファミリーの制約とのバランス |
最初の方法では、指定した vCPU とメモリの組み合わせが利用できない場合、システムは仕様を調整し、調整後の値に基づいて請求します。システムが選択するインスタンスファミリーを制御するには、3 番目の方法を使用します。
Pod はデフォルトで x86 アーキテクチャを使用します。ARM ベースのハードウェアを使用するには、Pod を ARM ベースの仮想ノードにスケジュールします。
各方法の詳細な手順については、「次のステップ」の関連ドキュメントをご参照ください。
コストの削減
従量課金インスタンスと以下のオプションを組み合わせることで、請求額を削減できます:
プリエンプティブルインスタンス:ステートレスでフォールトトレラントなワークロードに最適です。
汎用節約プラン:vCPU とメモリで課金される Pod、および ECS インスタンスタイプで課金される Pod に適用されます。
ECS コンピューティング節約プランとリザーブドインスタンス:ECS インスタンスタイプで課金される Pod にのみ適用されます。長時間実行される安定したワークロードに使用します。
リソースの可用性不足への対応
多数の Pod を作成する場合、シングルゾーンのリソースでは不十分な場合があります。可用性を向上させるには:
異なるゾーンにまたがる複数の vSwitch を指定します。
システムが利用可能な構成にフォールバックできるように、複数の Pod 仕様を定義します。
Pod のライフサイクル
Pod は、そのライフサイクル中にさまざまなステータスに遷移します。ECI Pod のステータスは、Kubernetes Pod のステータスに直接マッピングされます。ステータスの完全なリファレンスについては、「Pod のライフサイクル」をご参照ください。