このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
AWS Outposts を使用して Amazon EKS をオンプレミスにデプロイする
Amazon EKS を使用して、オンプレミス Kubernetes アプリケーションを AWS Outposts で実行できます。次の方法で Amazon EKS を Outposts にデプロイできます。
-
拡張クラスター - Outpost の AWS リージョンとノードで Kubernetes コントロールプレーンを実行します。
-
ローカルクラスター - Outpost で Kubernetes コントロールプレーンとノードを実行します。
どちらのデプロイオプションでも、Kubernetes コントロールプレーンは、AWS によって完全に管理されています。クラウドで使用するのと同じ Amazon EKS API、ツール、コンソールを使用して Outposts で Amazon EKS を作成および実行することができます。
以下の図に、これらのデプロイのオプションを示します。
各デプロイオプションを使用する時
ローカルクラスターと拡張クラスターはどちらも汎用のデプロイオプションであり、さまざまなアプリケーションに使用できます。
拡張クラスターでは、Kubernetes コントロールプレーンが親 AWS リージョンで動作するため、Outpost の容量を節約できます。このオプションは、Outposts から AWS リージョンに対して信頼性の高いネットワーク接続を確立している場合に適しています。AWS リージョンからネットワークを切断することで静的安定性を確保するようにアプリケーションを設計することをお勧めします。Kubernetes が Kubernetes コントロールプレーンとノード間のネットワーク切断を処理する方法によって、アプリケーションのダウンタイムが発生する可能性があります。Kubernetes の動作の詳細については、Kubernetes ドキュメントの「Scheduling, Preemption, and Eviction
ローカルクラスターでは、Amazon EKS クラスター全てを Outposts でローカルに実行できます。この方法により、クラウドへの一時的なネットワーク切断によって生じる可能性のあるアプリケーションダウンタイムのリスクを軽減できます。このようなネットワーク接断は、ファイバーの切断や天候によって発生する可能性があります。すべての Amazon EKS クラスター全体が Outposts でローカルに実行されるため、アプリケーションは引き続き使用できます。クラウドへのネットワーク切断中にクラスターオペレーションを実行できます。ネットワークを切断することで Kubernetes を継続的に運用する必要がある場合や、データレジデンシーが義務づけられている場合は、ローカルクラスターを選択します。
2 つのローカルクラスターの実装
Amazon EKS では、Outposts ラックにローカルクラスターを 2 つ実装できるようになっています。Outposts で Amazon EC2 インスタンスを実行する場合は、Amazon EBS または Amazon EC2 インスタンスストアをルートボリュームタイプとして使用するように Outposts を設定します。Amazon EKS がローカルクラスターのコントロールプレーンに使用する実装は、この設定によって異なります。
-
AWS Outposts に Amazon EBS を設定します。Kubernetes コントロールプレーンは、Outposts の AWS アカウントで実行されます。
etcdは、Amazon EBS がサポートする 3 つの Amazon EC2 インスタンスにスタックされます。詳細については、「高可用性を実現するために AWS Outposts でローカル Amazon EKS クラスターを作成する」を参照してください。 -
AWS Outposts に EC2 インスタンスストアを設定します。Amazon EKS は、最新のローカルクラスターアーキテクチャをデプロイします。Kubernetes コントロールプレーンは、Outposts の AWS マネージドサービスアカウントで動作する 6 つの Amazon EC2 インスタンスで実行されます。このうち、3 つのインスタンスは
etcd専用で、残り 3 つのインスタンスは他のコントロールプレーンコンポーネント専用です。クラウド内の Amazon EKS との同等性を向上させた実装であり、Amazon EKS Kubernetes バージョンのライフサイクルに準拠し、AL2023 の他に Amazon EKS アドオンや Bottlerocket ベースのワーカーノードなどの追加機能にも対応しています。AWS Outposts が利用可能なすべての標準 AWS リージョンで使用できます。詳細については、「EC2 インスタンスストアを設定した AWS Outposts にあるローカルの Amazon EKS クラスターの概要」を参照してください。
次の表に、各実装で使用できる機能をまとめます。
デプロイオプションの比較
次の表は、拡張クラスターの実装と 2 つのローカルクラスターの実装との違いを比較したものです。
| 機能 | 拡張クラスター | Outposts に EBS があるローカルクラスター | Outposts に EC2 インスタンスストアがあるローカルクラスター |
|---|---|---|---|
|
Kubernetes コントロールプレーンの場所 |
AWS リージョン |
Outpost |
Outpost |
|
Kubernetes コントロールプレーンのアカウント |
AWS アカウント |
AWS アカウント |
AWS マネージドアカウント |
|
Kubernetes コントロールプレーントポロジ |
クラウドマネージド |
3 つの Amazon EC2 インスタンス、etcd をスタック |
6 つの Amazon EC2 インスタンス (3 つの |
|
コントロールプレーンストレージ |
クラウドマネージド |
Amazon EBS |
Amazon EC2 インスタンスストア |
|
リージョン別の可用性 |
「サービスエンドポイント」を参照してください |
米国東部 (バージニア北部)、米国東部 (オハイオ)、米国西部 (北カリフォルニア)、米国西部 (オレゴン)、アジアパシフィック (ソウル)、アジアパシフィック (シンガポール)、アジアパシフィック (東京)、アジアパシフィック (シドニー)、カナダ (中部)、欧州 (フランクフルト)、欧州 (アイルランド)、欧州 (ロンドン)、中東 (バーレーン)、南米 (サンパウロ) |
AWS Outposts が利用可能なすべての商用 AWS リージョン |
|
Kubernetes マイナーバージョン |
「AWS Outposts の Kubernetes および Amazon EKS プラットフォームバージョンについて説明します。」を参照してください。 |
||
|
プラットフォームバージョン |
「AWS Outposts の Kubernetes および Amazon EKS プラットフォームバージョンについて説明します。」を参照してください。 |
||
|
Outpost フォームファクター |
Outpost ラック |
Outpost ラック |
Outpost ラック |
|
ユーザーインターフェイス |
AWS マネジメントコンソール、AWS CLI、Amazon EKS API、 |
AWS マネジメントコンソール、AWS CLI、Amazon EKS API、 |
AWS マネジメントコンソール、AWS CLI、Amazon EKS API、AWS CloudFormation |
|
マネージドポリシー |
AmazonEKSClusterPolicy および AWS マネージドポリシー: AmazonEKSServiceRolePolicy |
AmazonEKSLocalOutpostClusterPolicy および AWS マネージドポリシー: AmazonEKSLocalOutpostServiceRolePolicy |
AmazonEKSClusterPolicy および AWS マネージドポリシー: AmazonEKSServiceRolePolicy |
|
クラスター VPC およびサブネット |
「VPC とサブネットの Amazon EKS ネットワーキング要件を表示する」を参照してください。 |
「AWS Outposts で Amazon EKS クラスターの VPC とサブネットを作成する」を参照してください。 |
「EC2 インスタンスストアを設定した AWS Outposts に Amazon EKS ローカルクラスターの VPC とサブネットを作成する」を参照してください。 |
|
クラスターエンドポイントのアクセス |
公共または個人、あるいはその両方 |
非公開のみ |
プライベート、またはパブリックかつプライベート |
|
Kubernetes API サーバー認証 |
AWS Identity and Access Management (IAM)、OIDC、およびアクセスエントリ |
IAM および |
IAM、OIDC、アクセスエントリ、 |
|
ノードタイプ |
セルフマネージド型のみ |
セルフマネージド型のみ |
セルフマネージド型のみ |
|
ノードのコンピュートタイプ |
Amazon EC2 オンデマンド |
Amazon EC2 オンデマンド |
Amazon EC2 オンデマンド |
|
ノードストレージタイプ |
Amazon EBS |
Amazon EBS |
ローカル NVMe SSD |
|
Amazon EKS 最適化 AMI |
Amazon Linux、Windows、Bottlerocket |
Amazon Linux |
Amazon Linux と Bottlerocket |
|
IP バージョン |
|
|
|
|
アドオン |
Amazon EKS アドオンまたはセルフマネージドアドオン |
セルフマネージドアドオン |
Amazon EKS アドオン (検証済み) またはセルフマネージドアドオン |
|
デフォルトの Container Network Interface |
Amazon VPC CNI Kubernetes 用プラグイン |
Amazon VPC CNI Kubernetes 用プラグイン |
Amazon VPC CNI Kubernetes 用プラグイン |
|
Kubernetes コントロールプレーンのログ |
Amazon CloudWatch Logs |
Amazon CloudWatch Logs |
Amazon CloudWatch Logs |
|
|
クラウドマネージド |
カスタマーマネージド ( |
Amazon EKS による管理 |
|
負荷分散 |
AWS Load Balancer Controller を使用して Application Load Balancer のみをプロビジョニングします (Network Load Balancer はプロビジョニングしない) |
AWS Load Balancer Controller を使用して Application Load Balancer のみをプロビジョニングします (Network Load Balancer はプロビジョニングしない) |
AWS Load Balancer Controller を使用して Application Load Balancer のみをプロビジョニングします (Network Load Balancer はプロビジョニングしない) |
|
シークレットエンベロープ暗号化 |
サポート対象、「既存のクラスターで KMS を使用して Kubernetes シークレットを暗号化する」を参照。 |
サポートされません |
サポートされません |
|
サービスアカウント用 IAM ロール (IRSA、IAM roles for service accounts) |
サポート対象、「サービスアカウントの IAM ロール」を参照。 |
サポートされていません |
サポート対象 (AWS リージョンへの接続が必要。ネットワーク切断中は利用不可) |
|
EKS Pod Identity |
サポート対象、「EKS Pod Identity が Pod に AWS サービスへのアクセス権を付与する仕組みを学ぶ」を参照。 |
サポートされていません |
サポート対象 (AWS リージョンへの接続が必要。ネットワーク切断中は利用不可) |
|
トラブルシューティング |
「Amazon EKS クラスターとノードに関する問題をトラブルシューティングする」を参照してください |
「AWS Outposts でローカル Amazon EKS クラスターをトラブルシューティングする」を参照してください。 |
「EC2 インスタンスストアを設定した AWS Outposts にあるローカルの Amazon EKS クラスターをトラブルシューティングする」を参照してください。 |
重要
-
RAM 共有の Outposts にローカルクラスターを作成すると、クラスターのコントロールプレーンが Outposts 所有者の物理的アクセスの下に配置されます。
-
EC2 インスタンスストア Outposts では、IRSA と EKS Pod Identity は AWS リージョンの AWS STS に依存します。ネットワークの切断中に、IRSA または Pod Identity を使用するワークロードが新しい認証情報を取得することはできません。詳細については、「EC2 インスタンスストアを設定した AWS Outposts にローカルの Amazon EKS クラスターを準備して、ネットワークの切断に備える」を参照してください。