AWS CloudFormation カスタムリソース - AWS ParallelCluster

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

AWS CloudFormation カスタムリソース

AWS ParallelCluster バージョン 3.6.0 以降、 AWS ParallelCluster CloudFormation スタック内のカスタムリソースを使用できます。 AWS CloudFormation AWS ParallelCluster カスタムリソースはホストスタックです。これにより、クラスターの設定と管理を行うことができます。 CloudFormation たとえば、ネットワーク、共有ストレージ、 CloudFormation セキュリティグループインフラストラクチャーなどのクラスター外部リソースをスタックに設定できます。さらに、 CloudFormation インフラストラクチャーをコードパイプラインとしてクラスターを管理できます。

以下を実行して、 AWS ParallelCluster CloudFormation カスタムリソースをテンプレートに追加します。

  1. が所有およびホストするカスタムリソースプロバイダースタックを追加します AWS ParallelCluster。

  2. CloudFormation テンプレート内のプロバイダースタックをカスタムリソースとして参照します。

CloudFormation カスタムリソースプロバイダースタックはリクエストを処理し、それに応答します。たとえば、 CloudFormation スタックをデプロイするときには、クラスターの設定と作成も行います。クラスターを更新するには、 CloudFormation スタックを更新します。スタックを削除すると、クラスターも削除されます。 CloudFormation カスタムリソースについて詳しくは、『AWS CloudFormation ユーザーガイド』の「カスタムリソース」を参照してください。

警告

CloudFormation カスタムリソースのドリフトは検出されません。 CloudFormation クラスター構成の更新とクラスターの削除にのみ使用してください。

pcluster CLI または AWS ParallelCluster UI を使用してクラスターの状態をモニタリングしたり、コンピューティングフリートを更新したりできますが、クラスター設定の更新やクラスターの削除には使用しないでください。

注記

間違って削除しないようにするため、スタックに削除保護を追加することをお勧めします。

がホストするプロバイダースタック AWS ParallelCluster

カスタムリソースプロバイダースタックは、 CloudFormation 以下のテンプレートスニペットに示すような形式になっています。

PclusterClusterProvider: Type: AWS::CloudFormation::Stack Properties: Parameters: CustomLambdaRole: # (Optional) RoleARN to override default AdditionalIamPolicies: # (Optional) comma-separated list of IAM policies to add TemplateURL: !Sub - https://${AWS::Region}-aws-parallelcluster.s3.${AWS::Region}.${AWS::URLSuffix}/parallelcluster/${Version}/templates/custom_resource/cluster.yaml - { Version: 3.7.0 }
プロパティ:
パラメータ:
CustomLambdaRole (オプション):

クラスターの作成および管理を行う AWS Lambda を実行するためのアクセス許可を持つカスタムロール。デフォルトでは、ロールは「AWS ParallelCluster documentation」でデフォルトで定義されているのと同じポリシーを使用します。

AdditionalIamPolicies (オプション):

Lambda が使用するロールに追加する IAM ポリシーの Amazon リソースネーム (ARN) のカンマ区切りリスト。これは CustomLambdaRole が指定されていない場合にのみ使用され、空白のままでも構いません。

ヘッドノード、コンピューティングノード、または Amazon S3 バケットへのアクセスに追加のポリシーが必要な場合、CustomLambdaRole または AdditionalIamPolicy プロパティにポリシーを追加します。

デフォルトポリシーの詳細については、「AWS Identity and Access Management の権限 AWS ParallelCluster」を参照してください。

TemplateURL (必須):

AWS ParallelCluster カスタムリソースファイル URL。

出力:
ServiceToken:

カスタムリソース ServiceToken プロパティとして使用できる値。ServiceToken AWS CloudFormation カスタムリソースはリクエストの送信先を指定します。これは、 AWS CloudFormation テンプレートに含めるクラスターリソースに必要な入力です。

LogGroupArn:

基盤となるリソースのログイン先の ARN。 CloudWatch LogGroup

LambdaLayerArn:

オペレーションの実行に使用される Lambda レイヤーの ARN。 AWS ParallelCluster

クラスターリソース

CloudFormation クラスターリソースは、次のテンプレートスニペットに示すようにフォーマットされています。 CloudFormation

PclusterCluster: Type: Custom::PclusterCluster Properties: ServiceToken: !GetAtt [ PclusterClusterProvider , Outputs.ServiceToken ] ClusterName: !Sub 'c-${AWS::StackName}' # Must be different from StackName ClusterConfiguration: # Your Cluster Configuration
プロパティ:
ServiceToken:

AWS ParallelCluster ServiceTokenプロバイダースタックの出力。

ClusterName:

作成および管理するクラスターの名前。 CloudFormation 名前はスタックの名前と一致してはいけません。クラスターの作成後に名前を変更することはできません。

ClusterConfiguration:

クラスター設定ファイル で説明されているクラスター設定 YAML ファイル。ただし、 CloudFormation 組み込み関数などの通常の構成は使用できます

DeletionPolicy:

ルートスタックが削除された際にクラスターを削除するかどうかを定義します。デフォルトは Delete です。

Retain:

カスタムリソースが削除されても、クラスターは保持されます。

注記

保持されたクラスターの機能を維持するには、ストレージやネットワークなどクラスターに依存するリソースの削除ポリシーが保持に設定されている必要があります。

Delete:

カスタムリソースが削除された場合、クラスターは削除されます。

Fn::GetAtt 戻り値:

Fn::GetAtt 組み込み関数は、このタイプの指定された属性の値を返します。Fn::GetAtt intrinsicこの関数の使用方法について詳しくは、Fn:: を参照してください。GetAtt

ClusterProperties:

pcluster describe-cluster オペレーションの値。

validationMessages:

前回の作成または更新操作中に発生したすべての検証メッセージを含む文字列。

logGroupName:

Lambda クラスターオペレーションのログ記録に使用されるロググループの名前。ログイベントは 90 日間保持され、ロググループはクラスターの削除後も保持されます。

例: Fn::GetAtt:

# Provide the public IP address of the head node as an output of a stack Outputs: HeadNodeIp: Description: The public IP address of the head node Value: !GetAtt [ PclusterCluster, headNode.publicIpAddress ]

例: CloudFormation AWS ParallelCluster カスタムリソースを含むシンプルで完全なテンプレート:

AWSTemplateFormatVersion: '2010-09-09' Description: > AWS ParallelCluster CloudFormation Template Parameters: HeadNodeSubnet: Description: Subnet where the HeadNode will run Type: AWS::EC2::Subnet::Id ComputeSubnet: Description: Subnet where the Compute Nodes will run Type: AWS::EC2::Subnet::Id KeyName: Description: KeyPair to login to the head node Type: AWS::EC2::KeyPair::KeyName Resources: PclusterClusterProvider: Type: AWS::CloudFormation::Stack Properties: TemplateURL: !Sub - https://${AWS::Region}-aws-parallelcluster.s3.${AWS::Region}.${AWS::URLSuffix}/parallelcluster/${Version}/templates/custom_resource/cluster.yaml - { Version: 3.7.0 } PclusterCluster: Type: Custom::PclusterCluster Properties: ServiceToken: !GetAtt [ PclusterClusterProvider , Outputs.ServiceToken ] ClusterName: !Sub 'c-${AWS::StackName}' ClusterConfiguration: Image: Os: alinux2 HeadNode: InstanceType: t2.medium Networking: SubnetId: !Ref HeadNodeSubnet Ssh: KeyName: !Ref KeyName Scheduling: Scheduler: slurm SlurmQueues: - Name: queue0 ComputeResources: - Name: queue0-cr0 InstanceType: t2.micro Networking: SubnetIds: - !Ref ComputeSubnet Outputs: HeadNodeIp: Description: The Public IP address of the HeadNode Value: !GetAtt [ PclusterCluster, headNode.publicIpAddress ] ValidationMessages: Description: Any warnings from cluster create or update operations. Value: !GetAtt PclusterCluster.validationMessages

CloudFormation AWS ParallelCluster カスタムリソースの使用方法の詳細については、「」を参照してくださいでクラスターを作成する AWS CloudFormation

クラスターオペレーション

CloudFormation クラスターカスタムリソースをスタックに追加すると、 CloudFormation 以下のクラスター操作を実行できます。

  • CloudFormation AWS ParallelCluster カスタムリソースを含むスタックをデプロイするときに、新しい別のスタックにクラスターを作成します。

  • スタックに定義されているクラスター設定を設定更新ポリシーに従って更新すると、 CloudFormation クラスターが更新されます。 AWS ParallelCluster カスタムリソースプロバイダーは、クラスターを更新する前にコンピュート群を停止しません。クラスターの更新には QueueUpdateStrategy 設定を使用することをお勧めします。これにより、 AWS ParallelCluster カスタムリソースを使用するときに、pcluster update-compute-fleet更新の前後に明示的な呼び出しを行う必要がなくなります。

  • スタックを削除すると、クラスターは削除されます。

カスタムリソースを含むスタックのトラブルシューティング AWS ParallelCluster

AWS ParallelCluster カスタムリソースでは、 CloudFormation 新しい別のスタックからクラスターをデプロイします。以下の手順を実行して、クラスターの作成をモニタリングできます。

  1. に移動し、 CloudFormation AWS Management Console ナビゲーションペインで [Stacks] を選択します。

  2. クラスター名に定義した名前のスタックを選択します。

  3. スタックの状態が ROLLBACK_COMPLETE の場合、クラスターの作成中にエラーが発生しました。

  4. [スタックの詳細] を選択し、[イベント] タブを選択します。

  5. クラスター名として定義した名前の [論理 ID][イベント] を検索します。問題の原因を表す Status reason が示されます。

  6. [スタック] ドロップダウンメニューから [削除] を選択して、削除されたスタックのリストを表示することもできます。クラスター名を含むスタックを選択し、[イベント] から詳細を確認してください。

  7. クラスターを管理するカスタムリソースプロバイダーからの出力を表示するには、「Cluster Custom Resource」AWS ParallelCluster という説明の付いたスタックを選択します[リソース] タブを選択し、[論理 ID] PclusterCfnFunctionLogGroup を持つリソースを探して、指定されたリンクに従います。Lambda デバッグ出力を示すログストリームを表示します。

  8. クラスターのトラブルシューティングについては、「AWS ParallelCluster トラブルシューティング」を参照してください。