

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

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

# AWS Outposts を使用して Amazon EKS をオンプレミスにデプロイする
<a name="eks-outposts"></a>

Amazon EKS を使用して、オンプレミス Kubernetes アプリケーションを AWS Outposts で実行できます。次の方法で Amazon EKS を Outposts にデプロイできます。
+  **拡張クラスター** - Outpost の AWS リージョンとノードで Kubernetes コントロールプレーンを実行します。
+  **ローカルクラスター** - Outpost で Kubernetes コントロールプレーンとノードを実行します。

どちらのデプロイオプションでも、Kubernetes コントロールプレーンは、AWS によって完全に管理されています。クラウドで使用するのと同じ Amazon EKS API、ツール、コンソールを使用して Outposts で Amazon EKS を作成および実行することができます。

以下の図に、これらのデプロイのオプションを示します。

![Outpost デプロイオプション](https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/images/outposts-deployment-options.png)


## 各デプロイオプションを使用する時
<a name="outposts-overview-when-deployment-options"></a>

ローカルクラスターと拡張クラスターはどちらも汎用のデプロイオプションであり、さまざまなアプリケーションに使用できます。

拡張クラスターでは、Kubernetes コントロールプレーンが親 AWS リージョンで動作するため、Outpost の容量を節約できます。このオプションは、Outposts から AWS リージョンに対して信頼性の高いネットワーク接続を確立している場合に適しています。AWS リージョンからネットワークを切断することで静的安定性を確保するようにアプリケーションを設計することをお勧めします。Kubernetes が Kubernetes コントロールプレーンとノード間のネットワーク切断を処理する方法によって、アプリケーションのダウンタイムが発生する可能性があります。Kubernetes の動作の詳細については、Kubernetes ドキュメントの「[Scheduling, Preemption, and Eviction](https://kubernetes.io/docs/concepts/scheduling-eviction/)」を参照してください。

ローカルクラスターでは、Amazon EKS クラスター全てを Outposts でローカルに実行できます。この方法により、クラウドへの一時的なネットワーク切断によって生じる可能性のあるアプリケーションダウンタイムのリスクを軽減できます。このようなネットワーク接断は、ファイバーの切断や天候によって発生する可能性があります。すべての Amazon EKS クラスター全体が Outposts でローカルに実行されるため、アプリケーションは引き続き使用できます。クラウドへのネットワーク切断中にクラスターオペレーションを実行できます。ネットワークを切断することで Kubernetes を継続的に運用する必要がある場合や、データレジデンシーが義務づけられている場合は、ローカルクラスターを選択します。

## 2 つのローカルクラスターの実装
<a name="outposts-overview-two-local-cluster-implementations"></a>

Amazon EKS では、Outposts ラックにローカルクラスターを 2 つ実装できるようになっています。Outposts で Amazon EC2 インスタンスを実行する場合は、Amazon EBS または Amazon EC2 インスタンスストアをルート[ボリュームタイプ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/RootDeviceStorage.html)として使用するように Outposts を設定します。Amazon EKS がローカルクラスターのコントロールプレーンに使用する実装は、この設定によって異なります。
+  **AWS Outposts に Amazon EBS を設定します。**Kubernetes コントロールプレーンは、Outposts の AWS アカウントで実行されます。`etcd` は、Amazon EBS がサポートする 3 つの Amazon EC2 インスタンスにスタックされます。詳細については、「[高可用性を実現するために AWS Outposts でローカル Amazon EKS クラスターを作成する](eks-outposts-local-cluster-overview.md)」を参照してください。
+  **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 クラスターの概要](eks-outposts-instance-store-local-cluster-overview.md)」を参照してください。

次の表に、各実装で使用できる機能をまとめます。

## デプロイオプションの比較
<a name="outposts-overview-comparing-deployment-options"></a>

次の表は、拡張クラスターの実装と 2 つのローカルクラスターの実装との違いを比較したものです。


| 機能 | 拡張クラスター | Outposts に EBS があるローカルクラスター | Outposts に EC2 インスタンスストアがあるローカルクラスター | 
| --- | --- | --- | --- | 
| Kubernetes コントロールプレーンの場所 |  AWS リージョン | Outpost | Outpost | 
| Kubernetes コントロールプレーンのアカウント |  AWS アカウント | AWS アカウント |  AWS マネージドアカウント | 
| Kubernetes コントロールプレーントポロジ | クラウドマネージド | 3 つの Amazon EC2 インスタンス、[etcd をスタック](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/ha-topology/#stacked-etcd-topology)  | 6 つの Amazon EC2 インスタンス (3 つの `etcd` \+ 3 つの API サーバー) | 
| コントロールプレーンストレージ | クラウドマネージド | Amazon EBS | Amazon EC2 インスタンスストア | 
| リージョン別の可用性 | 「[サービスエンドポイント](https://docs.aws.amazon.com/general/latest/gr/eks.html#eks_region)」を参照してください  | 米国東部 (バージニア北部)、米国東部 (オハイオ)、米国西部 (北カリフォルニア)、米国西部 (オレゴン)、アジアパシフィック (ソウル)、アジアパシフィック (シンガポール)、アジアパシフィック (東京)、アジアパシフィック (シドニー)、カナダ (中部)、欧州 (フランクフルト)、欧州 (アイルランド)、欧州 (ロンドン)、中東 (バーレーン)、南米 (サンパウロ) | AWS Outposts が利用可能なすべての商用 AWS リージョン | 
| Kubernetes マイナーバージョン |  [サポートされている Amazon EKS バージョン](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html)  | 「[AWS Outposts の Kubernetes および Amazon EKS プラットフォームバージョンについて説明します。](eks-outposts-platform-versions.md)」を参照してください。 |  [サポートされている Amazon EKS バージョン](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html)  | 
| プラットフォームバージョン | 「[Amazon EKS のプラットフォームバージョン](https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html)」を参照  | 「[AWS Outposts の Kubernetes および Amazon EKS プラットフォームバージョンについて説明します。](eks-outposts-platform-versions.md)」を参照してください。 | 「[Amazon EKS のプラットフォームバージョン](https://docs.aws.amazon.com/eks/latest/userguide/platform-versions.html)」を参照  | 
| Outpost フォームファクター | Outpost ラック | Outpost ラック | Outpost ラック | 
| ユーザーインターフェイス |  AWS マネジメントコンソール、AWS CLI、Amazon EKS API、`eksctl`、AWS CloudFormation、および Terraform |  AWS マネジメントコンソール、AWS CLI、Amazon EKS API、`eksctl`、AWS CloudFormation、および Terraform |  AWS マネジメントコンソール、AWS CLI、Amazon EKS API、AWS CloudFormation | 
| マネージドポリシー |  [AmazonEKSClusterPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-amazoneksclusterpolicy) および [AWS マネージドポリシー: AmazonEKSServiceRolePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-amazoneksservicerolepolicy)  |  [AmazonEKSLocalOutpostClusterPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-amazonekslocaloutpostclusterpolicy) および [AWS マネージドポリシー: AmazonEKSLocalOutpostServiceRolePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-amazonekslocaloutpostservicerolepolicy)  |  [AmazonEKSClusterPolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-amazoneksclusterpolicy) および [AWS マネージドポリシー: AmazonEKSServiceRolePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-amazoneksservicerolepolicy)  | 
| クラスター VPC およびサブネット | 「[VPC とサブネットの Amazon EKS ネットワーキング要件を表示する](network-reqs.md)」を参照してください。 | 「[AWS Outposts で Amazon EKS クラスターの VPC とサブネットを作成する](eks-outposts-vpc-subnet-requirements.md)」を参照してください。 | 「[EC2 インスタンスストアを設定した AWS Outposts に Amazon EKS ローカルクラスターの VPC とサブネットを作成する](eks-outposts-instance-store-vpc-subnet-requirements.md)」を参照してください。 | 
| クラスターエンドポイントのアクセス | 公共または個人、あるいはその両方 | 非公開のみ | プライベート、またはパブリックかつプライベート | 
| Kubernetes API サーバー認証 |  AWS Identity and Access Management (IAM)、OIDC、およびアクセスエントリ | IAM および `x.509` 証明書 | IAM、OIDC、アクセスエントリ、`aws-auth` ConfigMap、`x.509` 証明書 (ネットワーク切断の場合) | 
| ノードタイプ | セルフマネージド型のみ | セルフマネージド型のみ | セルフマネージド型のみ | 
| ノードのコンピュートタイプ | Amazon EC2 オンデマンド | Amazon EC2 オンデマンド | Amazon EC2 オンデマンド | 
| ノードストレージタイプ | Amazon EBS `gp2` とローカル NVMe SSD | Amazon EBS `gp2` とローカル NVMe SSD | ローカル NVMe SSD | 
| Amazon EKS 最適化 AMI | Amazon Linux、Windows、Bottlerocket | Amazon Linux | Amazon Linux と Bottlerocket | 
| IP バージョン |  `IPv4` のみ |  `IPv4` のみ |  `IPv4` のみ | 
| アドオン | Amazon EKS アドオンまたはセルフマネージドアドオン | セルフマネージドアドオン | Amazon EKS アドオン ([検証済み](eks-outposts-instance-store-local-cluster-addons.md)) またはセルフマネージドアドオン | 
| デフォルトの 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 | 
|  `etcd` バックアップ | クラウドマネージド | カスタマーマネージド (`etcdctl` または Amazon EBS ボリュームバックアップ) | Amazon EKS による管理 | 
| 負荷分散 | [AWS Load Balancer Controller](aws-load-balancer-controller.md) を使用して Application Load Balancer のみをプロビジョニングします (Network Load Balancer はプロビジョニングしない) | [AWS Load Balancer Controller](aws-load-balancer-controller.md) を使用して Application Load Balancer のみをプロビジョニングします (Network Load Balancer はプロビジョニングしない) | [AWS Load Balancer Controller](aws-load-balancer-controller.md) を使用して Application Load Balancer のみをプロビジョニングします (Network Load Balancer はプロビジョニングしない) | 
| シークレットエンベロープ暗号化 | サポート対象、「[既存のクラスターで KMS を使用して Kubernetes シークレットを暗号化する](enable-kms.md)」を参照。 | サポートされません | サポートされません | 
| サービスアカウント用 IAM ロール (IRSA、IAM roles for service accounts) | サポート対象、「[サービスアカウントの IAM ロール](iam-roles-for-service-accounts.md)」を参照。 | サポートされていません | サポート対象 (AWS リージョンへの接続が必要。ネットワーク切断中は利用不可) | 
| EKS Pod Identity | サポート対象、「[EKS Pod Identity が Pod に AWS サービスへのアクセス権を付与する仕組みを学ぶ](pod-identities.md)」を参照。 | サポートされていません | サポート対象 (AWS リージョンへの接続が必要。ネットワーク切断中は利用不可) | 
| トラブルシューティング | 「[Amazon EKS クラスターとノードに関する問題をトラブルシューティングする](troubleshooting.md)」を参照してください  | 「[AWS Outposts でローカル Amazon EKS クラスターをトラブルシューティングする](eks-outposts-troubleshooting.md)」を参照してください。 | 「[EC2 インスタンスストアを設定した AWS Outposts にあるローカルの Amazon EKS クラスターをトラブルシューティングする](eks-outposts-instance-store-troubleshooting.md)」を参照してください。 | 

**重要**  
RAM 共有の Outposts にローカルクラスターを作成すると、クラスターのコントロールプレーンが Outposts 所有者の物理的アクセスの下に配置されます。
EC2 インスタンスストア Outposts では、IRSA と EKS Pod Identity は AWS リージョンの AWS STS に依存します。ネットワークの切断中に、IRSA または Pod Identity を使用するワークロードが新しい認証情報を取得することはできません。詳細については、「[EC2 インスタンスストアを設定した AWS Outposts にローカルの Amazon EKS クラスターを準備して、ネットワークの切断に備える](eks-outposts-instance-store-network-disconnects.md)」を参照してください。

**Topics**