

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

# カスタム AMI AWS ParallelCluster の構築
<a name="tutorials_02_ami_customization"></a>

**重要**  
 AWS ParallelClusterをカスタマイズするためのアプローチとして、カスタム AMI を構築することはお勧めしません。  
これは、独自の AMI を構築した後、 の今後のリリースで更新やバグ修正を受け取らなくなるためです AWS ParallelCluster。さらに、カスタム AMI を構築する場合は、新しい AWS ParallelCluster リリースごとにカスタム AMI を作成するために使用した手順を繰り返す必要があります。

さらに読む前に、まず[カスタムブートストラップアクション](pre_post_install.md)セクションをチェックして、変更をスクリプト化して今後の AWS ParallelCluster リリースでサポートできるかどうかを判断することをお勧めします。

カスタム AMI の構築は (前述の理由で) 理想的ではありませんが、 のカスタム AMI の構築 AWS ParallelCluster が必要なシナリオはまだあります。このチュートリアルでは、これらのシナリオに対応するカスタム AMI を構築する手順を説明します。

**注記**  
 AWS ParallelCluster バージョン 2.6.1 以降では、ノードの起動時にほとんどのインストールレシピがデフォルトでスキップされます。これは、起動時間を短縮するためです。起動時間の短縮よりも下位互換性の向上を優先させるために、すべてのインストールレシピを実行するには、[`extra_json`](cluster-definition.md#extra-json) 設定の `cluster` キーに `"skip_install_recipes" : "no"` を追加します。例えば、次のようになります。  

```
extra_json = { "cluster" : { "skip_install_recipes" : "no" } }
```

**前提条件**
+ AWS ParallelCluster [がインストールされます](install.md)。
+  AWS CLI [がインストールされ、設定されています。](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
+ [EC2 キーペア](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)がある。
+ [`pcluster`](pcluster.md) CLI の実行に必要な[アクセス許可](iam.md#example-parallelcluser-policies)を持つ IAM ロールがある。

## AMI AWS ParallelCluster をカスタマイズする方法
<a name="how-to-customize-the-aws-parallelcluster-ami"></a>

カスタム AMI AWS ParallelCluster を使用するには、次のセクションで説明する 3 つの方法があります。これら 3 つの方法のうち、2 つの方法では、 AWS アカウントアカウントで使用できる新しい AMI を構築する必要があります。3 番目の方法 (実行時にカスタム AMI を使用する) では、事前に何かを構築する必要はありませんが、デプロイにはリスクが伴います。お客様のニーズに最適なものを選択してください。

## AMI を変更する
<a name="modify-an-aws-parallelcluster-ami"></a>

これが最も安全で推奨される方法です。ベース AMI AWS ParallelCluster は新しいリリースで更新されることが多いため、この AMI にはインストールおよび設定時に が機能 AWS ParallelCluster するために必要なすべてのコンポーネントがあります。これは、ベースとして起動できます。

------
#### [ New EC2 console ]

1.  AWS ParallelCluster AMI リストで、使用する特定の に対応する AMI を見つけ AWS リージョン ます。選択した AMI リストは、 AWS ParallelCluster 使用する のバージョンと一致する必要があります。`pcluster version` を実行して、バージョンを確認します。 AWS ParallelCluster バージョン 2.11.9 については、[https://github.com/aws/aws-parallelcluster/blob/v2.11.9/amis.txt](https://github.com/aws/aws-parallelcluster/blob/v2.11.9/amis.txt) を参照してください。別のバージョンを選択するには、同じリンクを使用して **[Tag: 2.11.9]** ボタンを選択し、**[タグ]** タブを選択して、適切なバージョンを選択します。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) で Amazon EC2 コンソールを開きます。

1. **[Amazon EC2 ダッシュボード]** で、**[インスタンスを起動]** を選択します。

1. **アプリケーションイメージと OS イメージ**で、**より多くの AMIs を参照**し、**コミュニティ AMIs** に移動し、 の AWS ParallelCluster AMI ID AWS リージョン を検索ボックスに入力します。

1. AMI を**[選択]**し、**[インスタンスタイプ]** とプロパティを選択して、**[キーペア]** と **[インスタンスを起動]** を選択します。

1. OS ユーザーと SSH キーを使用してインスタンスにログインします。詳細については、**[インスタンス]** に移動し、新しいインスタンス、**[接続]** の順に選択します。

1. 必要に応じてインスタンスをカスタマイズします。

1. 次のコマンドを実行して、インスタンスを AMI 作成用に準備します。

   ```
   sudo /usr/local/sbin/ami_cleanup.sh
   ```

1. **[インスタンス]** に移動し、新しいインスタンスを選択し、**[インスタンスの状態]**、**[インスタンスの停止]** の順に選択します。

1. EC2 コンソールまたは AWS CLI [create-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-image.html) を使用して、インスタンスから新しい AMI を作成します。

**EC2 コンソールから**

   1. ナビゲーションペインで、[**Instances (インスタンス)**] を選択します。

   1. 作成および変更したインスタンスを選択します。

   1. **[アクション]** で、**[イメージとテンプレート]**、**[イメージの作成]** の順に選択します。

   1. [**Create Image**] を選択します。

1. クラスター設定の [[custom\$1ami]](cluster-definition.md#custom-ami-section) フィールドに AMI ID を入力します。

------
#### [ Old EC2 console ]

1.  AWS ParallelCluster AMI リストで、使用する特定の に対応する AMI を見つけ AWS リージョン ます。選択した AMI リストは、 AWS ParallelCluster 使用する のバージョンと一致する必要があります。`pcluster version` を実行して、バージョンを確認します。 AWS ParallelCluster バージョン 2.11.9 については、[https://github.com/aws/aws-parallelcluster/blob/v2.11.9/amis.txt](https://github.com/aws/aws-parallelcluster/blob/v2.11.9/amis.txt) を参照してください。別のバージョンを選択するには、同じリンクを使用して **[Tag: 2.11.9]** ボタンを選択し、**[タグ]** タブを選択して、適切なバージョンを選択します。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) で Amazon EC2 コンソールを開きます。

1. **[Amazon EC2 ダッシュボード]** で、**[インスタンスを起動]** を選択します。

1. **コミュニティ AMIs** を選択し、AMI ID AWS ParallelCluster を検索して**選択します**。

1. インスタンスタイプを選択し、**[次へ: インスタンスの詳細の設定]** または **[確認と起動]** を選択してインスタンスを起動します。

1. **[起動]** を選択し、**[キーペア]** を選択して、**[インスタンスを起動]** を選択します。

1. OS ユーザーと SSH キーを使用してインスタンスにログインします。詳細については、**[インスタンス]** に移動し、新しいインスタンス、**[接続]** の順に選択します。

1. 必要に応じてインスタンスをカスタマイズします。

1. 次のコマンドを実行して、インスタンスを AMI 作成用に準備します。

   ```
   sudo /usr/local/sbin/ami_cleanup.sh
   ```

1. **[インスタンス]** に移動して、新しいインスタンスを選択し、**[インスタンスの状態]**、**[停止]** の順に選択します。

1. EC2 コンソールまたは AWS CLI [create-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-image.html) を使用して、インスタンスから新しい AMI を作成します。

**EC2 コンソールから**

   1. ナビゲーションペインで、[**Instances (インスタンス)**] を選択します。

   1. 作成および変更したインスタンスを選択します。

   1. **[アクション]** で、**[イメージ]**、**[イメージの作成]** の順に選択します。

   1. [**Create Image**] を選択します。

1. クラスター設定の [[custom\$1ami]](cluster-definition.md#custom-ami-section) フィールドに AMI ID を入力します。

------

## カスタム AMI AWS ParallelCluster の構築
<a name="build-a-custom-aws-parallelcluster-ami"></a>

カスタマイズされた AMI とソフトウェアがすでに導入されている場合は、 AWS ParallelCluster で必要な変更を適用することができます。

1.  AWS ParallelCluster CLI とともに、ローカルシステムに以下をインストールします。
   + Packer: [Packer ウェブサイト](https://developer.hashicorp.com/packer/downloads)から OS の最新バージョンを探してインストールします。 バージョンは 1.4.0 以上である必要がありますが、最新のバージョンを推奨します。`packer` コマンドがパスにあるかどうかを確認します。
**注記**  
 AWS ParallelCluster バージョン 2.8.0 より前では、 を使用するには [Berkshelf](https://github.com/berkshelf/berkshelf) ( を使用してインストール`gem install berkshelf`) が必要でした`pcluster createami`。

1. Packer がユーザーに代わって AWS API オペレーションを呼び出すことができるように AWS アカウント 認証情報を設定します。Packer が動作するために必要な最小限のパーミッションのセットは、Packer ドキュメントの*「Amazon AMI Builder」*の[「IAM Task or Instance Role」](https://developer.hashicorp.com/packer/plugins/builders/amazon#iam-task-or-instance-role)(トピックの IAM タスクまたはインスタンスのロール) セクションに記載されています。

1. CLI AWS ParallelCluster `createami`の コマンドを使用して、ベースとして指定したものから AMI AWS ParallelCluster を構築します。

   ```
   pcluster createami --ami-id <BASE_AMI> --os <BASE_AMI_OS>
   ```
**重要**  
`createami` コマンドには、実行中のクラスターの AWS ParallelCluster AMI を *<BASE\$1AMI>* として使用しないでください。そうしなければ、コマンドは失敗します。

   その他のパラメータについては、「[`pcluster createami`](pcluster.createami.md)」を参照してください。

1. ステップ 4 のコマンドは Packer を実行し、具体的には以下の処理を実行します。

   1. 提供されているベース AMI を使用してインスタンスを起動します。

   1. ク AWS ParallelCluster ックブックをインスタンスに適用して、関連するソフトウェアをインストールし、その他の必要な設定タスクを実行します。

   1. インスタンスを停止します。

   1. インスタンスから新しい AMI を作成します。

   1. AMI の作成後にインスタンスを終了します。

   1. クラスターの作成に使用する新しい AMI ID 文字列を出力します。

1. クラスターを作成するには、クラスター設定内の [[custom\$1ami]](cluster-definition.md#custom-ami-section) フィールドに AMI ID を入力します。

**注記**  
カスタム AMI AWS ParallelCluster の構築に使用されるインスタンスタイプは です`t2.xlarge`。このインスタンスタイプは AWS 無料利用枠の対象ではないため、この AMI の構築時に作成されたインスタンスに対して課金されます。

## 実行時にカスタム AMI を使用する
<a name="use-a-custom-ami-at-runtime"></a>

**警告**  
と互換性のない AMI を使用するリスクを回避するには AWS ParallelCluster、この方法を使用しないことをお勧めします。  
ランタイムにテストされていない可能性のある AMIs を使用してコンピューティングノードを起動すると、 AWS ParallelClusterの必要なソフトウェアをランタイムにインストールすると、 AWS ParallelCluster が動作を停止する可能性があります。

事前に何も作成しない場合は、AMI を使用して、その AMI AWS ParallelCluster から を作成できます。

この方法では、クラスターの作成 AWS ParallelCluster 時に に必要なすべてのソフトウェアをインストールする必要があるため、 の作成 AWS ParallelCluster に時間がかかります。さらに、スケールアップにも時間がかかります。
+ クラスター設定内の [[custom\$1ami]](cluster-definition.md#custom-ami-section) フィールドに AMI ID を入力します。