

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

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

# ハイブリッドノードの前提条件のセットアップ
<a name="hybrid-nodes-prereqs"></a>

Amazon EKS Hybrid Nodes を使用するには、オンプレミス環境と AWS 間のプライベート接続、サポートされているオペレーティングシステムを持つベアメタルサーバーまたは仮想マシン、AWS IAM Roles Anywhere または AWS Systems Manager (SSM) ハイブリッドアクティベーションを設定する必要があります。ハイブリッドノードのライフサイクル全体を通じてこれらの前提条件を管理するのはお客様の責任となります。
+ オンプレミス環境と AWS 間のハイブリッドネットワーク接続　 
+ 物理マシンまたは仮想マシンの形式のインフラストラクチャ
+ ハイブリッドノードと互換性のあるオペレーティングシステム
+ オンプレミスの IAM 認証情報プロバイダーが設定されました

![ハイブリッドノードのネットワーク接続。](http://docs.aws.amazon.com/ja_jp/eks/latest/userguide/images/hybrid-prereq-diagram.png)


## ハイブリッドネットワーク接続
<a name="hybrid-nodes-prereqs-connect"></a>

Amazon EKS コントロールプレーンとハイブリッドノード間の通信は、クラスターの作成時に渡される VPC とサブネットを介してルーティングされます。これは、コントロールプレーンからノードへのネットワーク形成のために Amazon EKS の[既存のメカニズム](https://aws.github.io/aws-eks-best-practices/networking/subnets/)上に構築されます。オンプレミス環境と VPC の接続には、AWS Site-to-Site VPN、AWS Direct Connect、独自の VPN 接続など、[文書化されたオプション](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html)がいくつか利用可能です。ハイブリッドネットワーク接続にこれらのソリューションを使用する方法の詳細については、「[AWS Site-to-Site VPN ユーザーガイド](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html)」および「[AWS Direct Connect ユーザーガイド](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)」を参照してください。

最適なエクスペリエンスを実現するには、ハイブリッドノードから AWS リージョンへの接続には、100 Mbps 以上の通信速度と 200 ミリ秒以下のラウンドトリップレイテンシーを持つ、信頼性の高いネットワーク接続が推奨されます。これはほとんどのユースケースに対応する一般的なガイダンスですが、厳格な要件ではありません。帯域幅とレイテンシーの要件は、アプリケーションのイメージサイズ、アプリケーションの伸縮性、モニタリングとログ記録の設定、他の AWS サービスに保存されているデータへのアクセスに関するアプリケーションの依存関係など、ハイブリッドノードの数とワークロードの特性によって異なります。本番環境にデプロイする前に、独自のアプリケーションと環境でテストして、ネットワーク設定がワークロードの要件を満たしているか確認することをお勧めします。

## オンプレミスのネットワーク設定
<a name="hybrid-nodes-prereqs-onprem"></a>

Amazon EKS コントロールプレーンからオンプレミス環境へのインバウンドネットワークアクセスを有効にして、Amazon EKS コントロールプレーンが、ハイブリッドノードで実行されている `kubelet` と通信できるようにし、オプションでハイブリッドノードで実行されているウェブフックと通信できるようにする必要があります。さらに、Amazon EKS コントロールプレーンと通信するには、ハイブリッドノードとハイブリッドノードで実行されているコンポーネントのアウトバウンドネットワークアクセスを有効にする必要があります。この通信は、AWS Direct Connect、AWS Site-to-Site VPN、または独自の VPN 接続に対して完全にプライベートなままになるように設定できます。

オンプレミスノードおよびポッドネットワークに使用する Classless Inter-Domain Routing (CIDR) 範囲では、IPv4 RFC1918 アドレスまたは CGNAT アドレスの範囲を使用する必要があります。オンプレミスルーターは、オンプレミスノードとオプションでポッドへのルートで設定する必要があります。ファイアウォールおよびオンプレミス環境で有効にする必要があるポートおよびプロトコルの完全なリストなど、オンプレミスのネットワーク要件の詳細については、「[オンプレミスネットワーク設定](hybrid-nodes-networking.md#hybrid-nodes-networking-on-prem)」を参照してください。

## EKS クラスター設定
<a name="hybrid-nodes-prereqs-cluster"></a>

レイテンシーを最小限に抑えるには、オンプレミス環境またはエッジ環境に最も近い AWS リージョンで Amazon EKS クラスターを作成することが推奨されます。Amazon EKS クラスターの作成時に、2 つの API フィールド、`RemoteNodeNetwork` および `RemotePodNetwork` を介してオンプレミスのノードとポッドの CIDR を渡します。オンプレミスのノードとポッドの CIDR を特定するために、オンプレミスのネットワークチームに相談する必要がある場合があります。ノード CIDR はオンプレミスネットワークから割り当てられ、ポッド CIDR は、CNI のオーバーレイネットワークを使用している場合に使用する Container Network Interface (CNI) から割り当てられます。Cilium および Calico はデフォルトでオーバーレイネットワークを使用します。

`RemoteNodeNetwork` および `RemotePodNetwork` フィールドを介して設定するオンプレミスノードおよびポッド CIDR は、VPC 経由でハイブリッドノードで実行されている `kubelet` およびポッドにトラフィックをルーティングするように Amazon EKS コントロールプレーンを設定するために使用されます。クラスター作成時に渡す VPC CIDR、または Amazon EKS クラスターのサービス IPv4 構成と互いに重複することはできません。また、オンプレミスのルーターがトラフィックをルーティングできるように、ポッド CIDR を各 EKS クラスターに対して一意にする必要があります。

Amazon EKS Kubernetes API サーバーエンドポイントには、パブリックエンドポイントまたはプライベートエンドポイントのいずれかのアクセスを使用することが推奨されます。「Public and Private (パブリックとプライベート)」を選択した場合、Amazon EKS Kubernetes API サーバーエンドポイントは、常に VPC の外部で稼働しているハイブリッドノードのパブリック IP に解決されるため、ハイブリッドノードがクラスターに参加できなくなる可能性があります。パブリックエンドポイントアクセスを使用すると、Kubernetes API サーバーエンドポイントはパブリック IP に解決され、ハイブリッドノードから Amazon EKS コントロールプレーンへの通信はインターネット経由でルーティングされます。プライベートエンドポイントアクセスを選択すると、Kubernetes API サーバーエンドポイントはプライベート IP に解決され、ハイブリッドノードから Amazon EKS コントロールプレーンへの通信は、プライベート接続リンク (ほとんどの場合 AWS Direct Connect または AWS Site-to-Site VPN) を介してルーティングされます。

## VPC の構成
<a name="hybrid-nodes-prereqs-vpc"></a>

Amazon EKS クラスター作成時に渡す VPC のルーティングテーブルに、オンプレミスノード用のルートを設定し、オプションで仮想プライベートゲートウェイ (VGW) またはトランジットゲートウェイ (TGW) をターゲットとするポッドネットワークを設定する必要があります。次に例を示します。`REMOTE_NODE_CIDR` と `REMOTE_POD_CIDR` をオンプレミスのネットワークの値に置き換えます。


| ルーティング先 | ターゲット | 説明 | 
| --- | --- | --- | 
| 10.226.0.0/16 | ローカル | VPC 内の VPC ルートへのローカルトラフィック | 
| REMOTE\_NODE\_CIDR | tgw-abcdef123456 | オンプレミスノード CIDR、トラフィックを TGW にルーティングする | 
| REMOTE\_POD\_CIDR | tgw-abcdef123456 | オンプレミスポッド CIDR、トラフィックを TGW にルーティングする | 

## セキュリティグループの構成
<a name="hybrid-nodes-prereqs-sg"></a>

クラスターを作成すると、Amazon EKS により `eks-cluster-sg-<cluster-name>-<uniqueID>` という名前のセキュリティグループが作成されます。このクラスターセキュリティグループのインバウンドルールは変更できませんが、アウトバウンドルールは制限できます。クラスターに追加のセキュリティグループを追加して、kubelet と、オプションでハイブリッドノードで実行されているウェブフックが Amazon EKS コントロールプレーンに接続できるようにする必要があります。この追加のセキュリティグループに必要なインバウンドルールを以下に示します。`REMOTE_NODE_CIDR` と `REMOTE_POD_CIDR` をオンプレミスのネットワークの値に置き換えます。


| 名前 | セキュリティグループのルール ID | IP バージョン | タイプ | プロトコル | ポート範囲 | ソース | 
| --- | --- | --- | --- | --- | --- | --- | 
| オンプレミスノードのインバウンド | sgr-abcdef123456 | IPv4 | HTTPS | TCP | 443 | REMOTE\_NODE\_CIDR | 
| オンプレミスポッドのインバウンド | sgr-abcdef654321 | IPv4 | HTTPS | TCP | 443 | REMOTE\_POD\_CIDR | 

## インフラストラクチャ
<a name="hybrid-nodes-prereqs-infra"></a>

ハイブリッドノードとして使用するには、ベアメタルサーバーまたは仮想マシンが必要です。ハイブリッドノードは基盤となるインフラストラクチャに依存せず、x86 および ARM アーキテクチャに対応しています。Amazon EKS Hybrid Nodes は「独自のインフラストラクチャを導入する」アプローチに従います。ここでは、ハイブリッドノードに使用するベアメタルサーバーまたは仮想マシンのプロビジョニングと管理はお客様の責任となります。厳格な最小リソースの要件はありませんが、ハイブリッドノードには少なくとも 1 vCPU および 1GiB RAM のホストを使用することが推奨されます。

## オペレーティングシステム
<a name="hybrid-nodes-prereqs-os"></a>

Bottlerocket、Amazon Linux 2023 (AL2023)、Ubuntu、RHEL は、ハイブリッドノードのノードオペレーティングシステムとして使用されるために継続的に検証されます。Bottlerocket は、VMware vSphere 環境でのみ AWS でサポートされています。AL2023 は、Amazon EC2 の外部で実行される場合、AWS サポートプランの対象外です。AL2023 はオンプレミスの仮想化環境でのみ使用できます。詳細については、「[Amazon Linux 2023 ユーザーガイド](https://docs.aws.amazon.com/linux/al2023/ug/outside-ec2.html)」を参照してください。AWS は Ubuntu および RHEL オペレーティングシステムとのハイブリッドノード統合をサポートしていますが、オペレーティングシステム自体はサポートしていません。

オペレーティングシステムのプロビジョニングと管理はお客様の責任となります。ハイブリッドノードを初めてテストする場合、プロビジョニング済みのホストで Amazon EKS Hybrid Nodes CLI (`nodeadm`) を実行するのが最も簡単です。本稼働のデプロイでは、ホスト起動時にホストを Amazon EKS クラスターに自動的に参加させる systemd サービスとして実行されるように設定された `nodeadm` を、オペレーティングシステムのゴールデンイメージに含めることが推奨されます。

## オンプレミスの IAM 認証情報プロバイダー
<a name="hybrid-nodes-prereqs-iam"></a>

Amazon EKS Hybrid Nodes は、AWS SSM ハイブリッドアクティベーションまたは AWS IAM Roles Anywhere によってプロビジョニングされた一時的な IAM 認証情報を使用して、Amazon EKS クラスターで認証します。Amazon EKS Hybrid Nodes CLI (`nodeadm`) を用いて、AWS SSM ハイブリッドアクティベーションまたは AWS IAM Roles Anywhere を使用する必要があります。認証局 (CA) およびオンプレミス環境の証明書を持つ既存の公開鍵基盤 (PKI) がない場合、AWS SSM ハイブリッドアクティベーションを使用することをお勧めします。既存の PKI と証明書がオンプレミスにある場合は、AWS IAM Roles Anywhere を使用します。

Amazon EC2 で実行されているノードの [Amazon EKS ノードの IAM ロール](create-node-role.md) と同様に、ハイブリッドノードを Amazon EKS クラスターに参加させるために必要なアクセス許可を持つハイブリッドノード IAM ロールを作成します。AWS IAM Roles Anywhere を使用している場合は、AWS IAM Roles Anywhere が Hybrid Nodes IAM Role を引き受けることを許可する信頼ポリシーを設定し、ハイブリッドノード IAM ロールを引き受け可能なロールとして AWS IAM Roles Anywhere プロファイルを設定します。AWS SSM を使用している場合は、AWS SSM がハイブリッドノード IAM ロールを引き受け、ハイブリッドノード IAM ロールを使用してハイブリッドアクティベーションを作成できるようにする信頼ポリシーを設定します。必要なアクセス許可を持つハイブリッドノード IAM ロールを作成する方法については、「[ハイブリッドノードの認証情報を準備する](hybrid-nodes-creds.md)」を参照してください。