

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# カスタム AMI サポート
<a name="custom-ami-support"></a>

## ノード AMI ID の設定
<a name="_setting_the_node_ami_id"></a>

`--node-ami` フラグを使用すると、カスタム AMI の使用や、使用する AMI のリアルタイムクエリなど、さまざまな高度なユースケースが可能になります。フラグは、非 GPU イメージと GPU イメージの両方に使用できます。

フラグは、明示的に使用するイメージの AMI イメージ ID を取得できます。また、次の「特別な」キーワードを使用することもできます。


| キーワード | 説明 | 
| --- | --- | 
|  自動  |  ノードに使用する AMI が AWS EC2 をクエリして検索されることを示します。これは自動リゾルバーに関連しています。  | 
|  auto-ssm  |  ノードに使用する AMI が AWS SSM パラメータストアにクエリを実行して検索されることを示します。  | 

**注記**  
現時点では、EKS マネージド型ノードグループは、カスタム AMI を使用する場合、次の AMIs ファミリーのみをサポートします: `AmazonLinux2023`、`AmazonLinux2`、`Bottlerocket`、`Ubuntu2004`、`UbuntuPro2004`、`Ubuntu2204`および `Ubuntu2404` 

`--node-ami` を ID 文字列に設定すると、 `eksctl` はカスタム AMI がリクエストされたことを前提としています。EKS マネージドノードとセルフマネージドノードの両方である AmazonLinux2 ノードと Ubuntu ノードの場合、これは `overrideBootstrapCommand` が必要であることを意味します。AmazonLinux2023 では、ノードブートストラップの`/etc/eks/bootstrap.sh`スクリプトの使用を停止するため、nodeadm 初期化プロセス (詳細については、[ノードブートストラップドキュメントを参照してください](https://github.com/eksctl-io/eksctl/blob/main/pkg/nodebootstrap/README.md)) の代わりに、 `overrideBootstrapCommand`はサポートされていません。

CLI フラグの例:

```
eksctl create cluster --node-ami=auto

# with a custom ami id
eksctl create cluster --node-ami=ami-custom1234
```

Config ファイルの例:

```
nodeGroups:
  - name: ng1
    instanceType: p2.xlarge
    amiFamily: AmazonLinux2
    ami: auto
  - name: ng2
    instanceType: m5.large
    amiFamily: AmazonLinux2
    ami: ami-custom1234
managedNodeGroups:
  - name: m-ng-2
    amiFamily: AmazonLinux2
    ami: ami-custom1234
    instanceType: m5.large
    overrideBootstrapCommand: |
      #!/bin/bash
      /etc/eks/bootstrap.sh <cluster-name>
```

`--node-ami` フラグは でも使用できます`eksctl create nodegroup`。

## ノード AMI ファミリーの設定
<a name="_setting_the_node_ami_family"></a>

`--node-ami-family` では、次のキーワードを使用できます。


| キーワード | 説明 | 
| --- | --- | 
|  AmazonLinux2  |  Amazon Linux 2 に基づく EKS AMI イメージを使用することを示します (デフォルト）。  | 
|  AmazonLinux2023  |  Amazon Linux 2023 に基づく EKS AMI イメージを使用する必要があることを示します。  | 
|  Ubuntu2004  |  Ubuntu 20.04 LTS (Focal) に基づく EKS AMI イメージを使用する必要があることを示します (EKS ⇐ 1.29 でサポートされています）。  | 
|  UbuntuPro2004  |  Ubuntu Pro 20.04 LTS (Focal) に基づく EKS AMI イメージを使用する必要があることを示します (EKS >= 1.27、⇐ 1.29 で使用可能）。  | 
|  Ubuntu2204  |  Ubuntu 22.04 LTS (Jammy) に基づく EKS AMI イメージを使用する必要があることを示します (EKS >= 1.29 で使用可能）。  | 
|  UbuntuPro2204  |  Ubuntu Pro 22.04 LTS (Jammy) に基づく EKS AMI イメージを使用する必要があることを示します (EKS >= 1.29 で使用可能）。  | 
|  Ubuntu2404  |  Ubuntu 24.04 LTS (Noble) に基づく EKS AMI イメージを使用する必要があることを示します (EKS >= 1.31 で使用可能）。  | 
|  UbuntuPro2404  |  Ubuntu Pro 24.04 LTS (Noble) に基づく EKS AMI イメージを使用する必要があることを示します (EKS >= 1.31 で使用可能）。  | 
|  Bottlerocket  |  Bottlerocket に基づく EKS AMI イメージを使用する必要があることを示します。  | 
|  WindowsServer2019FullContainer  |  Windows Server 2019 Full Container に基づく EKS AMI イメージを使用する必要があることを示します。  | 
|  WindowsServer2019CoreContainer  |  Windows Server 2019 Core Container に基づく EKS AMI イメージを使用する必要があることを示します。  | 
|  WindowsServer2022FullContainer  |  Windows Server 2022 Full Container に基づく EKS AMI イメージを使用する必要があることを示します。  | 
|  WindowsServer2022CoreContainer  |  Windows Server 2022 Core Container に基づく EKS AMI イメージを使用する必要があることを示します。  | 

CLI フラグの例:

```
eksctl create cluster --node-ami-family=AmazonLinux2
```

Config ファイルの例:

```
nodeGroups:
  - name: ng1
    instanceType: m5.large
    amiFamily: AmazonLinux2
managedNodeGroups:
  - name: m-ng-2
    instanceType: m5.large
    amiFamily: Ubuntu2204
```

`--node-ami-family` フラグは でも使用できます`eksctl create nodegroup`。 `eksctl`では、カスタム AMI を使用するたびに、設定ファイルまたは `--node-ami-family` CLI フラグを使用して AMI ファミリーを明示的に設定する必要があります。

**注記**  
現時点では、EKS マネージド型ノードグループは、カスタム AMI を使用する場合、次の AMIs ファミリーのみをサポートします: `AmazonLinux2023`、`AmazonLinux2`、`Bottlerocket`、`Ubuntu2004`、`UbuntuPro2004`、`Ubuntu2204`および `Ubuntu2404` 

## Windows カスタム AMI のサポート
<a name="_windows_custom_ami_support"></a>

カスタム AMI を指定できるのはセルフマネージド型の Windows ノードグループのみです。 は有効な Windows AMI ファミリーに設定`amiFamily`する必要があります。

ブートストラップスクリプトでは、次の PowerShell 変数を使用できます。

```
$EKSBootstrapScriptFile
$EKSClusterName
$APIServerEndpoint
$Base64ClusterCA
$ServiceCIDR
$KubeletExtraArgs
$KubeletExtraArgsMap: A hashtable containing arguments for the kubelet, e.g., @{ 'node-labels' = ''; 'register-with-taints' = ''; 'max-pods' = '10'}
$DNSClusterIP
$ContainerRuntime
```

Config ファイルの例:

```
nodeGroups:
  - name: custom-windows
    amiFamily: WindowsServer2022FullContainer
    ami: ami-01579b74557facaf7
    overrideBootstrapCommand: |
      & $EKSBootstrapScriptFile -EKSClusterName "$EKSClusterName" -APIServerEndpoint "$APIServerEndpoint" -Base64ClusterCA "$Base64ClusterCA" -ContainerRuntime "containerd" -KubeletExtraArgs "$KubeletExtraArgs" 3>&1 4>&1 5>&1 6>&1
```

## Bottlerocket カスタム AMI のサポート
<a name="_bottlerocket_custom_ami_support"></a>

Bottlerocket ノードでは、 `overrideBootstrapCommand`はサポートされていません。代わりに、独自のブートストラップコンテナを指定するには、設定ファイルの一部として `bottlerocket`フィールドを使用する必要があります。例:

```
  nodeGroups:
  - name: bottlerocket-ng
    ami: ami-custom1234
    amiFamily: Bottlerocket
    bottlerocket:
      enableAdminContainer: true
      settings:
        bootstrap-containers:
          bootstrap:
            source: <MY-CONTAINER-URI>
```