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

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

カスタムの構築 AWS ParallelCluster AMI

AWS ParallelCluster コマンドラインインターフェイス (CLI) または を使用する場合API、 AWS ParallelCluster イメージとクラスターを作成または更新するときに作成された AWS リソースに対してのみ料金が発生します。詳細については、「AWS が使用する のサービス AWS ParallelCluster」を参照してください。

AWS ParallelCluster UI はサーバーレスアーキテクチャ上に構築されており、ほとんどの場合、 AWS 無料利用枠カテゴリ内で使用できます。詳細については、「AWS ParallelCluster UI コスト」を参照してください。

重要

カスタム を構築する場合はAMI、新しい AWS ParallelCluster リリースAMIごとにカスタムを作成するために使用したステップを繰り返す必要があります。

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

AMI 一般的にカスタムを構築するのは理想的ではありませんが、 AMI のカスタムを構築する AWS ParallelCluster 必要がある特定のシナリオがあります。このチュートリアルでは、これらのシナリオAMIのカスタムを構築する方法について説明します。

前提条件

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

カスタム を構築するには 2 つの方法があります AWS ParallelCluster AMI。これら 2 つの方法の 1 つは、 AMIを使用して新しい を構築することです AWS ParallelCluster CLI。もう 1 つの方法では、 でAMI利用可能な新しい を構築するために、手動で変更を行う必要があります AWS アカウント。

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

カスタマイズされた AMIとソフトウェアがある場合は、 によって必要な変更 AWS ParallelCluster をその上に適用できます。 AWS ParallelCluster はEC2、Image Builder サービスを使用してカスタマイズされた を構築しますAMIs。詳細については、「Image Builder User Guide」を参照してください。

キーポイント:

  • このプロセスには約 1 時間かかります。この時間は、ビルド時に追加で Build/Components をインストールする場合には変動します。

  • AMI には、メインコンポーネントのバージョンがタグ付けされています。これには、カーネル、スケジューラ、EFAドライバーが含まれます。コンポーネントバージョンのサブセットもAMI説明で報告されます。

  • AWS ParallelCluster 3.0.0 以降では、新しいCLIコマンドセットを使用してイメージのライフサイクルを管理できます。これには build-imagelist-imagesdescribe-image、および delete-image があります。

  • この方法は繰り返し実行可能です。再実行してAMIs更新 (OS 更新など) を維持し、既存のクラスターを更新するときに使用できます。

注記

AWS 中国パーティションでこの方法を使用すると、ネットワークエラーが発生する可能性があります。例えば、OS リポジトリからパッケージをダウンロードすると、 pcluster build-image コマンド GitHub からこれらのエラーが表示されることがあります。このような場合には、次の代替方法のいずれかを使用することをお勧めします。

  1. このコマンドをバイパスする「の変更 AWS ParallelCluster AMI」アプローチに従ってください。

  2. イメージを別のパーティションおよびリージョン (us-east-1 など) でビルドし、保存/復元して中国リージョンに移動します。詳細については、「Amazon EC2ユーザーガイド」のS3 AMIを使用して を保存および復元する」を参照してください。

ステップ:

  1. AWS ParallelCluster クライアントがユーザーに代わってオペレーションを AWS API呼び出すことができるように、 AWS アカウント 認証情報を設定します。必要なアクセス権限のリストについては、「AWS Identity and Access Management での アクセス許可 AWS ParallelCluster」を参照してください。

  2. 基本的なビルドイメージ設定ファイルを作成します。これを行うには、イメージの構築に使用する InstanceType と、ParentImage を指定します。これらは、 を作成するための出発点として使用されますAMI。オプションのビルドパラメータの詳細については、「Image Configuration」を参照してください。

    Build: InstanceType: <BUILD_INSTANCE_TYPE> ParentImage: <BASE_AMI_ID>
  3. CLI コマンドを使用してpcluster build-image、ベースとしてAMI指定した から開始する AWS ParallelCluster AMIを構築します。

    $ pcluster build-image --image-id IMAGE_ID --image-configuration IMAGE_CONFIG.yaml --region REGION { "image": { "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_IN_PROGRESS", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "region": "us-east-1", "version": "3.7.0" } }
    警告

    pcluster build-image はデフォルトの を使用しますVPC。 AWS Control Tower または AWS Landing Zone VPCを使用してデフォルトを削除する場合は、イメージ設定ファイルにサブネット ID を指定する必要があります。詳細については、「SubnetId」を参照してください。

    その他のパラメータのリストについては、「pcluster build-image」 コマンドリファレンスページを参照してください。上記のコマンドの結果は次のとおりです。

    • CloudFormation スタックは、イメージ設定に基づいて作成されます。スタックには、ビルドに必要な EC2 Image Builder リソースがすべて含まれています。

    • 作成されたリソースには、カスタム Image Builder AWS ParallelCluster コンポーネントを追加できる公式 Image Builder コンポーネントが含まれています。カスタムコンポーネントを作成する方法については、「 for HPC Public Sector Customers Workshop」の「カスタムAMIs例」を参照してください。

    • EC2 Image Builder はビルドインスタンスを起動し、 AWS ParallelCluster クックブックを適用し、 AWS ParallelCluster ソフトウェアスタックをインストールし、必要な設定タスクを実行します。 AWS ParallelCluster クックブックは、 の構築とブートストラップに使用されます AWS ParallelCluster。

    • インスタンスは停止され、そこから新しい AMIが作成されます。

    • 新しく作成された から別のインスタンスが起動されますAMI。テストフェーズ中、EC2Image Builder は Image Builder コンポーネントで定義されているテストを実行します。

    • ビルドが成功すると、スタックは削除されます。ビルドに失敗した場合、スタックはインスペクション可能な状態で保持されます。

  4. 次のコマンドを実行すると、ビルドプロセスのステータスをモニタリングできます。ビルドが完了したら、ビルドを実行してレスポンスで指定された AMI ID を取得できます。

    $ pcluster describe-image --image-id IMAGE_ID --region REGION # BEFORE COMPLETE { "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.amazonaws.com/parallelcluster/3.7.0/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?...", }, "imageId": "IMAGE_ID", "imagebuilderImageStatus": "BUILDING", "imageBuildStatus": "BUILD_IN_PROGRESS", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "region": "us-east-1", "version": "3.7.0", "cloudformationStackTags": [ { "value": "3.7.0", "key": "parallelcluster:version" }, { "value": "IMAGE_ID", "key": "parallelcluster:image_name" }, ... ], "imageBuildLogsArn": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/imagebuilder/ParallelClusterImage-IMAGE_ID", "cloudformationStackCreationTime": "2022-04-05T21:36:26.176Z" } # AFTER COMPLETE { "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.us-east-1.amazonaws.com/parallelcluster/3.7.0/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?Signature=..." }, "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_COMPLETE", "region": "us-east-1", "ec2AmiInfo": { "amiName": "IMAGE_ID 2022-04-05T21-39-24.020Z", "amiId": "ami-1234stuv5678wxyz", "description": "AWS ParallelCluster AMI for alinux2, kernel-4.14.238-182.422.amzn2.x86_64, lustre-2.10.8-5.amzn2.x86_64, efa-1.13.0-1.amzn2.x86_64, dcv-2021.1.10598-1.el7.x86_64, slurm-20-11-8-1", "state": "AVAILABLE", "tags": [ { "value": "2021.3.11591-1.el7.x86_64", "key": "parallelcluster:dcv_version" }, ... ], "architecture": "x86_64" }, "version": "3.7.0" }
  5. クラスターを作成するには、クラスター設定の CustomAmiフィールドに AMI ID を入力します。

AMI作成プロセスのトラブルシューティングとモニタリング

イメージの作成は約 1 時間で完了します。pcluster describe-image コマンドまたはログ検索コマンドを実行してプロセスをモニタリングできます。

$ pcluster describe-image --image-id IMAGE_ID --region REGION

build-image コマンドは、イメージの構築に必要なすべての Amazon EC2リソースを含む CloudFormation スタックを作成し、EC2Image Builder プロセスを起動します。

build-image コマンドの実行後、 を使用して CloudFormation スタックイベントを取得できますpcluster get-image-stack-events--query パラメータで結果をフィルタリングして、最新のイベントを表示できます。詳細については、AWS Command Line Interface 「 ユーザーガイド」の AWS CLI 「出力のフィルタリング」を参照してください。

$ pcluster get-image-stack-events --image-id IMAGE_ID --region REGION --query "events[0]" { "eventId": "ParallelClusterImage-CREATE_IN_PROGRESS-2022-04-05T21:39:24.725Z", "physicalResourceId": "arn:aws:imagebuilder:us-east-1:123456789012:image/parallelclusterimage-IMAGE_ID/3.7.0/1", "resourceStatus": "CREATE_IN_PROGRESS", "resourceStatusReason": "Resource creation Initiated", "resourceProperties": "{\"InfrastructureConfigurationArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:infrastructure-configuration/parallelclusterimage-abcd1234-ef56-gh78-ij90-1234abcd5678\",\"ImageRecipeArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:image-recipe/parallelclusterimage-IMAGE_ID/3.7.0\",\"DistributionConfigurationArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:distribution-configuration/parallelclusterimage-abcd1234-ef56-gh78-ij90-1234abcd5678\",\"Tags\":{\"parallelcluster:image_name\":\"IMAGE_ID\",\"parallelcluster:image_id\":\"IMAGE_ID\"}}", "stackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "stackName": "IMAGE_ID", "logicalResourceId": "ParallelClusterImage", "resourceType": "AWS::ImageBuilder::Image", "timestamp": "2022-04-05T21:39:24.725Z" }

約 15 分後、Image Builder の作成に関連するログイベントエントリにスタックイベントが表示されます。pcluster list-image-log-streams コマンドや pcluster get-image-log-events コマンドを使用して、イメージログストリームの一覧表示および Image Builder のステップのモニタリングができるようになりました。

$ pcluster list-image-log-streams --image-id IMAGE_ID --region REGION \ --query 'logStreams[*].logStreamName' "3.7.0/1" ] $ pcluster get-image-log-events --image-id IMAGE_ID --region REGION \ --log-stream-name 3.7.0/1 --limit 3 { "nextToken": "f/36295977202298886557255241372854078762600452615936671762", "prevToken": "b/36295977196879805474012299949460899222346900769983430672", "events": [ { "message": "ExecuteBash: FINISHED EXECUTION", "timestamp": "2022-04-05T22:13:26.633Z" }, { "message": "Document arn:aws:imagebuilder:us-east-1:123456789012:component/parallelclusterimage-test-abcd1234-ef56-gh78-ij90-1234abcd5678/3.7.0/1", "timestamp": "2022-04-05T22:13:26.741Z" }, { "message": "TOE has completed execution successfully", "timestamp": "2022-04-05T22:13:26.819Z" } ] }

BUILD_COMPLETE のステータスが表示されるまで、describe-image コマンドで確認を続けます。

$ pcluster describe-image --image-id IMAGE_ID --region REGION { "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.us-east-1.amazonaws.com/parallelcluster/3.7.0/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?Signature=..." }, "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_COMPLETE", "region": "us-east-1", "ec2AmiInfo": { "amiName": "IMAGE_ID 2022-04-05T21-39-24.020Z", "amiId": "ami-1234stuv5678wxyz", "description": "AWS ParallelCluster AMI for alinux2, kernel-4.14.238-182.422.amzn2.x86_64, lustre-2.10.8-5.amzn2.x86_64, efa-1.13.0-1.amzn2.x86_64, dcv-2021.1.10598-1.el7.x86_64, slurm-20-11-8-1", "state": "AVAILABLE", "tags": [ { "value": "2021.3.11591-1.el7.x86_64", "key": "parallelcluster:dcv_version" }, ... ], "architecture": "x86_64" }, "version": "3.7.0" }

カスタムAMI作成の問題をトラブルシューティングする必要がある場合は、次のステップで説明されているように、イメージログのアーカイブを作成します。

--output パラメータに応じて、ログを Amazon S3 バケットまたはローカルファイルにアーカイブすることが可能です。

$ pcluster export-image-logs --image-id IMAGE_ID --region REGION \ --bucket BUCKET_NAME --bucket-prefix BUCKET_FOLDER { "url": "https://BUCKET_NAME.s3.us-east-1.amazonaws.com/BUCKET-FOLDER/IMAGE_ID-logs-202209071136.tar.gz?AWSAccessKeyId=..." } $ pcluster export-image-logs --image-id IMAGE_ID \ --region REGION --bucket BUCKET_NAME --bucket-prefix BUCKET_FOLDER --output-file /tmp/archive.tar.gz { "path": "/tmp/archive.tar.gz" }

アーカイブには、Image Builder プロセスと AWS CloudFormation スタックイベントに関連する CloudWatch Logs Streams が含まれます。このコマンドの実行には数分かかることがあります。

カスタムの管理 AMIs

AWS ParallelCluster 3.0.0 以降、イメージライフサイクルを構築、モニタリング、管理CLIするための新しいコマンドセットが に追加されました。コマンドの詳細については、「pcluster commands」を参照してください。

の変更 AWS ParallelCluster AMI

この方法は、その上にカスタマイズを追加して、役 AWS ParallelCluster AMI人を変更する方法で構成されます。ベース AWS ParallelCluster AMIsは新しいリリースで更新されます。これらAMIsには、インストールおよび設定時に が機能 AWS ParallelCluster するために必要なすべてのコンポーネントがあります。これらのいずれかをベースとして開始できます。

キーポイント:

  • この方法は、build-image コマンドよりも高速です。ただし、これは手動のプロセスであり、自動的に繰り返すことはできません。

  • この方法では、 で使用可能なログ取得コマンドとイメージライフサイクル管理コマンドにアクセスできませんCLI。

ステップ:

New Amazon EC2 console
  1. 使用する特定の AMI に対応する を見つけ AWS リージョン ます。これを見つけるには、 --regionパラメータで pcluster list-official-images コマンドを使用して、使用する OS AWS リージョン とアーキテクチャAMIで目的の をフィルタリングする特定の --os パラメータと --architectureパラメータを選択します。出力から Amazon EC2 Image ID を取得します。

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

  3. ナビゲーションペインで、画像 を選択し、次に を選択しますAMIs。取得したEC2イメージ ID を検索し、 を選択しAMI、 からインスタンスを起動AMIを選択します。

  4. 下にスクロールして、使用する [インスタンスタイプ] を選択します。

  5. 使用する [キーペア][インスタンスの作成] を選択します。

  6. OS ユーザーと を使用してインスタンスにログインする SSH キー。

  7. 要件を満たすようにインスタンスを手動でカスタマイズします。

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

    sudo /usr/local/sbin/ami_cleanup.sh
  9. コンソールから [インスタンスの状態] および [インスタンスの停止] を選択します。

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

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

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

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

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

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

  11. クラスター設定の CustomAmi フィールドに新しい AMI ID を入力し、クラスターを作成します。

Old Amazon EC2 console
  1. 使用する特定の に対応する AWS ParallelCluster AMIを見つけ AWS リージョン ます。これを見つけるには、 --regionパラメータで pcluster list-official-images コマンドを使用して、使用する OS AWS リージョン とアーキテクチャAMIで目的の をフィルタリングする特定の --os パラメータと --architectureパラメータを選択できます。出力から Amazon EC2 Image ID を取得できます。

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

  3. ナビゲーションペインで、画像 を選択し、次に を選択しますAMIsパブリックイメージのフィルターを設定し、取得したEC2イメージ ID を検索し、 を選択しAMI、起動 を選択します。

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

  5. [起動] を選択し、[キーペア][インスタンスの作成] を選択します。

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

  7. 要件を満たすようにインスタンスを手動でカスタマイズします。

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

    sudo /usr/local/sbin/ami_cleanup.sh
  9. Amazon EC2コンソールから、ナビゲーションペインでインスタンスを選択し、新しいインスタンスを選択し、アクション インスタンスの状態停止 を選択します。

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

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

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

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

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

  11. クラスター設定の CustomAmi フィールドに新しい AMI ID を入力し、クラスターを作成します。