EKS に最適化されたカスタム Amazon Linux AMI の構築 - Amazon EKS

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

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

EKS に最適化されたカスタム Amazon Linux AMI の構築

警告

Amazon EKS は、2025 年 11 月 26 日に、EKS 最適化 Amazon Linux 2 (AL2) AMI の公開を取り止めました。Amazon EKS 用の AL2023 および Bottlerocket ベースの AMI は、バージョン 1.33 以降をはじめサポート対象のすべての Kubernetes で使用できます。

Amazon EKS では、「Amazon EKS AMI Build Specification」リポジトリにオープンソースのビルドスクリプトが用意されており、これらを使用してkubelet、ランタイム環境、AWS IAM Authenticator for Kubernetes の設定を確認し、AL ベースの AMI を一から構築できます。

このリポジトリには、ブート時に実行される特殊な AL2 用 bootstrap スクリプトAL2023 用 nodeadm ツールが保存されています。これらのスクリプトによって、インスタンスの証明書データ、コントロールプレーンエンドポイント、クラスター名などを設定します。ここに置かれているものは、Amazon EKS 最適化 AMI のビルド用として最も信頼できるスクリプトと見なされるため、GitHub リポジトリの状態をフォローすることで、AMI への変更をモニタリングできます。

EKS 最適化 AMI をベースとしてカスタム AMI を構築する場合、コンポーネントの互換性が損なわれる可能性があるため、オペレーティングシステムのアップグレード (dnf upgrade など) を実行したり、EKS 最適化 AMI に含まれる Kubernetes または GPU パッケージをアップグレードしたりすることは、推奨もサポートもされていません。EKS 最適化 AMI に含まれるオペレーティングシステムまたはパッケージをアップグレードする場合は、本番環境にデプロイする前に、開発環境またはステージング環境で徹底的にテストすることをお勧めします。

GPU インスタンス用のカスタム AMI を構築する場合は、実行するインスタンスタイプの世代およびファミリーごとに、個別のカスタム AMI を構築することをお勧めします。EKS 最適化高速 AMI は、基盤となるインスタンスタイプの世代およびファミリーに基づいて、ランタイム時にドライバーとパッケージを選択的にインストールします。詳細については、インストールランタイムの EKS AMI スクリプトを参照してください。

前提条件

クイックスタート

このクイックスタートでは、AWS アカウントにカスタム AMI を作成するコマンドを示します。AMI のカスタマイズに使用できる設定の詳細については、「Amazon Linux 2023」ページのテンプレート変数を参照してください。

前提条件

必要な Amazon プラグインをインストールします。例えば、次のようになります。

packer plugins install github.com/hashicorp/amazon

ステップ 1. 環境をセットアップする

公式の Amazon EKS AMI リポジトリをクローンまたはフォークします。例えば、次のようになります。

git clone https://github.com/awslabs/amazon-eks-ami.git cd amazon-eks-ami

Packer がインストールされていることを確認します。

packer --version

ステップ 2. カスタム AMI を作成する

さまざまなカスタム AMI のコマンド例を以下に示します。

基本的な NVIDIA AL2 AMI

make k8s=1.31 os_distro=al2 \ enable_accelerator=nvidia \ nvidia_driver_major_version=560 \ enable_efa=true

基本的な NVIDIA AL2023 AMI

make k8s=1.31 os_distro=al2023 \ enable_accelerator=nvidia \ nvidia_driver_major_version=560 \ enable_efa=true

STIG 準拠 Neuron AL2023 AMI

make k8s=1.31 os_distro=al2023 \ enable_accelerator=neuron \ enable_fips=true \ source_ami_id=ami-0abcd1234efgh5678 \ kms_key_id=alias/aws-stig

これらのコマンドを実行すると、Packer によって次の操作が行われます。* 一時的な Amazon EC2 インスタンスを起動します。* Kubernetes コンポーネント、ドライバー、設定をインストールします。* AWS アカウントで AMI を作成します。

正常な出力は次の例のようになります。

==> Wait completed after 8 minutes 42 seconds ==> Builds finished. The artifacts of successful builds are: --> amazon-ebs: AMIs were created: us-west-2: ami-0e139a4b1a7a9a3e9 --> amazon-ebs: AMIs were created: us-west-2: ami-0e139a4b1a7a9a3e9 --> amazon-ebs: AMIs were created: us-west-2: ami-0e139a4b1a7a9a3e9

ステップ 3. デフォルト値を表示する

デフォルト値と追加オプションを表示するには、次のコマンドを実行します。

make help