カスタム AWS ParallelCluster AMI の構築 - AWS ParallelCluster

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

カスタム AWS ParallelCluster AMI の構築

重要

AWS ParallelCluster をカスタマイズするためのアプローチとして、カスタム AMI を構築することはお勧めしません。

なぜなら、独自の AMI を構築した後、AWS ParallelCluster の今後のリリースでアップデートやバグ修正を適用できなくなります。さらに、カスタム AMI を構築した場合は、新しい AWS ParallelCluster のリリースごとに、カスタム AMI を作成したときの手順を繰り返す必要があります。

この先をお読みになる前に、まず、カスタムブートストラップアクションのセクションをご覧になり、ご希望の変更がスクリプト化され、今後の AWS ParallelCluster のリリースでサポートされるかどうかをご確認いただくことをお勧めします。

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

注記

AWS ParallelCluster バージョン 2.6.1 以降、ほとんどのインストールレシピはノードの起動時にデフォルトでスキップされます。これは、起動時間を短縮するためです。起動時間の短縮よりも下位互換性の向上を優先させるために、すべてのインストールレシピを実行するには、extra_json 設定の cluster キーに "skip_install_recipes" : "no" を追加します。例:

extra_json = { "cluster" : { "skip_install_recipes" : "no" } }
前提条件

AWS ParallelCluster AMI をカスタマイズする方法

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

AMI を変更する

これが最も安全で推奨される方法です。ベースとなる AWS ParallelCluster AMI は新しいリリースに合わせて頻繁に更新されるため、この AMI には、AWS ParallelCluster をインストールして設定した後、正しく機能するために必要なすべてのコンポーネントが含まれています。これは、ベースとして起動できます。

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

  2. AWS Management Console にサインインし、Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

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

  4. [アプリケーションイメージと OS イメージ][その他の AMI を閲覧する] を選択し、[コミュニティ AMI] に移動して、AWS リージョンの AWS ParallelCluster AMI ID を検索ボックスに入力します。

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

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

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

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

    sudo /usr/local/sbin/ami_cleanup.sh
  9. [インスタンス] に移動し、新しいインスタンスを選択し、[インスタンスの状態][インスタンスの停止] の順に選択します。

  10. EC2 コンソールまたは AWS CLI create-image を使用してインスタンスから新しい AMI を作成します。

    EC2 コンソールから
    1. ナビゲーションペインで、[Instances (インスタンス)] を選択します。

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

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

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

  11. クラスター設定の [custom_ami] フィールドに AMI ID を入力します。

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

  2. AWS Management Console にサインインし、Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

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

  4. [コミュニティ AMI] を選択し、AWS ParallelCluster AMI ID を検索して [選択] をクリックします。

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

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

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

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

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

    sudo /usr/local/sbin/ami_cleanup.sh
  10. [インスタンス] に移動して、新しいインスタンスを選択し、[インスタンスの状態][停止] の順に選択します。

  11. EC2 コンソールまたは AWS CLI create-image を使用してインスタンスから新しい AMI を作成します。

    EC2 コンソールから
    1. ナビゲーションペインで、[Instances (インスタンス)] を選択します。

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

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

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

  12. クラスター設定の [custom_ami] フィールドに AMI ID を入力します。

カスタム AWS ParallelCluster AMI を構築する

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

  1. ローカルシステムに AWS ParallelCluster CLI とともに以下をインストールします。

    • Packer: Packer ウェブサイトから OS の最新バージョンを探してインストールします。 バージョンは 1.4.0 以上である必要がありますが、最新のバージョンを推奨します。packer コマンドがパスにあるかどうかを確認します。

    注記

    AWS ParallelCluster バージョン 2.8.0 以前では、pcluster createami を使用するためには (gem install berkshelf を使用してインストールされた)Berkshelf が必要でした。

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

  3. ベースとして提供したものから始めて AWS ParallelCluster AMI を構築するために AWS ParallelCluster CLI の createami コマンドを使用できるようになります。

    pcluster createami --ami-id <BASE_AMI> --os <BASE_AMI_OS>
    重要

    実行中のクラスターの AWS ParallelCluster AMI を createami コマンドの <BASE_AMI> として使用することはできません。そうしなければ、コマンドは失敗します。

    その他のパラメータについては、「pcluster createami」を参照してください。

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

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

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

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

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

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

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

  5. クラスターを作成するには、クラスター設定内の [custom_ami] フィールドに AMI ID を入力します。

注記

カスタムの AWS ParallelCluster AMI の構築に使用するインスタンスタイプは t2.xlarge です。このインスタンスタイプは AWS の無料利用枠には該当しないため、この AMI を構築した際に作成されたインスタンスは課金されます。

実行時にカスタム AMI を使用する

警告

AWS ParallelCluster と互換性のない AMI を使用するリスクを避けるため、この方法は使用しないことをお勧めします。

実行時にテストされていない可能性のある AMI を使用してコンピューティングノードを起動すると、AWS ParallelCluster に必要なソフトウェアのランタイムインストールとの互換性がないために、AWS ParallelCluster が動作しなくなる可能性があります。

事前に何も作りたくない場合は、手持ちの AMI を使い、その AMI から AWS ParallelCluster を作ることができます。

この方法では、クラスター作成時に AWS ParallelCluster が必要とするソフトウェアをすべてインストールする必要があるため、AWS ParallelCluster の作成に時間がかかります。さらに、スケールアップにも時間がかかります。

  • クラスター設定内の [custom_ami] フィールドに AMI ID を入力します。