EKS Auto Mode を使用してクラスターインフラストラクチャを自動化する - Amazon EKS

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

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

EKS Auto Mode を使用してクラスターインフラストラクチャを自動化する

EKS Auto Mode は、Kubernetes クラスターの AWS 管理をクラスター自体を超えて拡張し、ワークロードのスムーズな運用を可能にするインフラストラクチャのセットアップおよび管理も AWS でできるようにします。インフラストラクチャに関する重要な意思決定を委任し、AWS の専門知識を日常業務に活用できます。AWS によって管理されるクラスターインフラストラクチャには、コンピューティングの自動スケーリング、ポッドとサービスのネットワーキング、アプリケーションのロードバランシング、クラスター DNS、ブロックストレージ、GPU サポートなど、アドオンとは対照的に、コアコンポーネントとして多くの Kubernetes 機能が備わっています。

開始するには、新しい EKS Auto Mode クラスターをデプロイするか、既存のクラスターで EKS Auto Mode を有効にすることができます。eksctl、AWS CLI、AWS Management Console、EKS API、または任意の Infrastructure as Code ツールを使用して、EKS Auto Mode クラスターをデプロイ、アップグレード、または変更できます。

EKS Auto Mode を使用すると、任意の Kubernetes 互換ツールを引き続き使用できます。EKS Auto Mode は、Amazon EC2、Amazon EBS、ELB などの AWS サービスと統合され、ベストプラクティスに従う AWS クラウドリソースを活用します。これらのリソースは自動的にスケールされ、コストが最適化され、定期的に更新されるため、運用コストおよびオーバーヘッドを最小限に抑えることができます。

機能

EKS Auto Mode には次の高度な機能があります。

Kubernetes クラスター管理の合理化: EKS Auto Mode は、運用オーバーヘッドを最小限に抑えながら本番環境に対応したクラスターを提供することで、EKS 管理を合理化します。EKS Auto Mode を使用すると、EKS の深い専門知識を必要とせずに、要求の厳しい動的なワークロードを自信を持って実行できます。

アプリケーションの可用性: EKS Auto Mode は、Kubernetes アプリケーションの需要に基づいて EKS クラスター内のノードを動的に追加または削除します。この結果、手動キャパシティープランニングの必要性が最小限に抑えられ、アプリケーションの可用性が確保されます。

効率: EKS Auto Mode は、NodePool とワークロードの要件で定義された柔軟性を維持しながら、計算コストを最適化するように設計されています。また、未使用のインスタンスを終了し、ワークロードを他のノードに統合して、コスト効率を向上させます。

セキュリティ: EKS オートモードは、ノードに対してイミュータブルとして扱われる AMI を使用します。これらの AMI は、ロックダウンされたソフトウェアを適用し、SELinux の必須アクセスコントロールを有効にして、読み取り専用のルートファイルシステムを提供します。さらに、EKS Auto Mode によって起動されたノードの最大存続期間は 21 日 (これは短縮可能) で、その後は自動的に新しいノードに置き換えられます。このアプローチは、多くのお客様が既に採用しているベストプラクティスに沿って、ノードを定期的にサイクルすることで、セキュリティ体制を強化します。

自動アップグレード: EKS Auto Mode は、設定されたポッド中断の予算 (PDB) や NodePool 中断の予算 (NDB) を維持しながら、Kubernetes クラスター、ノード、関連コンポーネントを最新のパッチにより最新版に保ちます。PDB やその他の設定をブロックすることで更新が妨げられる場合、最大 21 日間の最大存続期間まで介入が必要になる場合があります。

マネージドコンポーネント: EKS Auto Mode には、Kubernetes と AWS クラウドの機能がコアコンポーネントとして備わっていますが、それ以外の場合は、アドオンとして管理が必要になります。これには、ポッド IP アドレスの割り当て、ポッドネットワークポリシー、ローカル DNS サービス、GPU プラグイン、ヘルスチェッカー、EBS CSI ストレージのサポートが組み込まれています。

カスタマイズ可能な NodePools と NodeClasses: ワークロードでストレージ、コンピューティング、またはネットワーキングの設定を変更する必要がある場合は、EKS Auto Mode を使用してカスタム NodePools と NodeClasses を作成できます。ユーザーはデフォルトの NodePools と NodeClasses は編集できませんが、デフォルトの設定で新しいカスタムの NodePools または NodeClasses を追加して、特定の要件を満たすことができます。

自動コンポーネント

EKS Auto Mode は、主要なインフラストラクチャコンポーネントを自動化することで、Amazon EKS クラスターのオペレーションを合理化します。EKS Auto Mode を有効にすると、EKS クラスターを管理するタスクがさらに減ります。

以下は、自動化されているデータプレーンコンポーネントのリストです。

  • コンピューティング: 多くのワークロードでは、EKS Auto Mode を使用すると、EKS クラスターのコンピューティングの多くの側面を気にする必要がなくなります。具体的には次のとおりです。

    • ノード: EKS Auto Mode ノードは、アプライアンスのように扱われるように設計されています。EKS Auto Mode は以下を実行します。

      • ワークロードを介入なしで実行するのに必要な多くのサービスを備えて設定された適切な AMI を選択します。

      • SELinux 強制モードと読み取り専用のルートファイルシステムを使用して、AMI 上のファイルへのアクセスをロックダウンします。

      • SSH または SSM アクセスを禁止することで、ノードへの直接アクセスを防止します。

      • GPU サポートがあり、NVIDIA GPU および Neuron GPU 用のカーネルドライバーとプラグインが分離されているため、高性能ワークロードが実現されます。

      • EC2 スポットインスタンスの中断通知および EC2 インスタンスのヘルスイベントを自動的に処理します

    • 自動スケーリング: EKS Auto Mode は Karpenter 自動スケーリングに依存して、スケジュール不可能なポッドをモニタリングし、新しいノードをデプロイしてそのポッドを実行できるようにします。ワークロードが終了すると、不要になったノードは EKS Auto Mode によって動的に中断および終了され、リソースの使用状況が最適化されます。

    • アップグレード: ノードを制御することで、EKS Auto Mode が必要に応じてセキュリティパッチやオペレーティングシステム、コンポーネントのアップグレードを提供する機能が効率化されます。これらのアップグレードは、ワークロードの中断を最小限に抑えるように設計されています。EKS Auto Mode は、ソフトウェアと API を最新にするために、ノードの最大存続期間を強制的に 21 日に設定します。

  • ロードバランシング: EKS Auto Mode は、Amazon の Elastic Load Balancing サービスと統合することでロードバランシングを合理化し、Kubernetes サービスおよびイングレスリソースに対するロードバランサーのプロビジョニングと設定を自動化します。また、Application Load Balancer と Network Load Balancer の両方の高度な機能をサポートし、それらのライフサイクルを管理し、それらをクラスターの需要に合わせてスケールします。この統合により、AWS ベストプラクティスに準拠した本番環境対応のロードバランシングソリューションが提供されるため、インフラストラクチャ管理ではなくアプリケーションに集中できます。

  • ストレージ: EKS Auto Mode は、ノード終了時にボリュームタイプ、ボリュームサイズ、暗号化ポリシー、削除ポリシーを設定することで、エフェメラルストレージを設定します。

  • ネットワーキング: EKS Auto Mode は、ポッドとサービスの接続に関する重要なネットワーキングタスクを自動化します。これには、IPv4/IPv6 サポートと、IP アドレススペースを拡張するためのセカンダリ CIDR ブロックの使用が含まれます。

  • Identity and Access Management: EKS Auto Mode クラスターに EKS Pod Identity Agent をインストールする必要はありません。

これらのコンポーネントの詳細については、「EKS Auto Mode の仕組みの説明」を参照してください。

設定

EKS Auto Mode は、ユーザーの介入なしにほとんどのデータプレーンサービスを効果的に管理しますが、これらのサービスの一部の動作を変更したい場合もあるでしょう。EKS Auto Mode クラスターの設定は、次の方法で変更できます。

  • Kubernetes DaemonSets: ノードにインストールされているサービスを変更する代わりに、Kubernetes DaemonSets を使用できます。DaemonSets は Kubernetes によって管理されるように設計されていますが、クラスター内のすべてのノードで実行されます。このようにして、ノードをモニタリングしたりその他の方法で監視したりするための特別なサービスを追加できます。

  • カスタムの NodePools および NodeClasses: デフォルトの NodePools と NodeClasses は EKS Auto Mode によって設定されており、ユーザーはこれを編集できません。ノードの動作をカスタマイズするには、次のようなユースケース用に追加の NodePools または NodeClasses を作成できます。

    • 特定のインスタンスタイプ (高速プロセッサや EC2 スポットインスタンスなど) の選択。

    • セキュリティまたはコスト追跡の目的でのワークロード分離。

    • IOPS、サイズ、スループットなどのエフェメラルストレージの設定。

  • ロードバランシング: EKS Auto Mode が Kubernetes オブジェクトとして実行するロードバランシングなどの一部のサービスは、EKS Auto Mode クラスターで直接設定できます。

EKS Auto Mode を設定するためのオプションの詳細については、「EKS 自動モード設定を構成する」を参照してください。

責任共有モデル

AWS 責任共有モデルは、AWS とお客様の間のセキュリティとコンプライアンスの責任を定義します。以下の画像とテキストは、EKS オートモードと EKS 標準モードの間でお客様と AWS の責任がどのように異なるかを比較および対照しています。

EKS オートモードと EKS 標準モードによる責任共有モデル

EKS オートモードは、Kubernetes インフラストラクチャの共有責任の大部分をお客様から AWS に移行します。EKS オートモードでは、AWS がクラウドセキュリティに対してより多くの責任を負います。これは、以前はお客様の責任であり、現在は共有されています。お客様はアプリケーションに集中できるようになり、AWS が基盤となるインフラストラクチャを管理します。

顧客の責任

EKS オートモードでは、お客様は可用性、セキュリティ、モニタリングなど、アプリケーションコンテナに対する責任を引き続き維持します。また、VPC インフラストラクチャと EKS クラスター設定の制御も維持します。このモデルにより、お客様はクラスターインフラストラクチャ管理を AWS に委任し、アプリケーション固有の懸念事項に集中できます。オプションのノードごとの機能は、AWS アドオンを介してクラスターに含めることができます。

AWS の責任

EKS オートモードでは、AWS は、オートモードを使用しない EKS クラスターで既に管理されているものと比較して、いくつかの追加の重要なコンポーネントの管理を含む責任を拡張します。特に、EKS オートモードは、起動された EC2 インスタンスの設定、管理、セキュリティ、スケーリングに加えて、ロードバランシング、IP アドレス管理、ネットワークポリシー、ブロックストレージのクラスター機能も引き受けます。次のコンポーネントは、 AWS によって EKS オートモードで管理されます。

  • オートモード起動 EC2 インスタンス: AWS は、Amazon EC2 マネージドインスタンスを活用してノードの完全なライフサイクルを処理します。EC2 マネージドインスタンスは、オペレーティングシステムの設定、パッチ適用、モニタリング、ヘルスメンテナンスを担当します。このモデルでは、インスタンス自体とそこで実行されているゲストオペレーティングシステムの両方の責任を AWS が担います。ノードは、コンテナを実行するように最適化された Bottlerocket AMI のバリアントを使用します。Bottlerocket AMI には、ロックダウンされたソフトウェア、イミュータブルなルートファイルシステム、安全なネットワークアクセス (SSH または SSM を介した直接通信を防ぐため) があります。

  • クラスター機能: AWS は、コンピューティングの自動スケーリング、ネットワークポリシーの適用による Pod ネットワーキング、Elastic Load Balancing の統合、ストレージドライバーの設定を管理します。

  • クラスターコントロールプレーン: AWS は、標準の EKS と同様に、Kubernetes API サーバー、クロスアカウント ENI、および etcd データベースを引き続き管理します。

  • Foundation Services とグローバルインフラストラクチャ: AWS は、基盤となるコンピューティング、ストレージ、ネットワーキング、およびモニタリングサービス、ならびにリージョン、ローカルゾーン、エッジロケーションのグローバルインフラストラクチャに対する責任を維持します。