でクラスターを作成する AWS CloudFormation - AWS ParallelCluster

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

でクラスターを作成する AWS CloudFormation

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

を使用する場合 AWS ParallelCluster、 AWS AWS ParallelCluster イメージやクラスターを作成または更新したときに作成されたリソースに対してのみ支払いが発生します。詳細については、「AWS ParallelCluster で使用されるサービス AWS」を参照してください。

前提条件:

CloudFormation クイック作成スタックによるクラスター作成

このチュートリアルでは、クイック作成スタックを使用して、 CloudFormation クラスターと以下のリソースを作成するテンプレートをデプロイします。 AWS

  • CloudFormation CloudFormation クイック作成スタックを使用して作成されたルートスタック。

  • デフォルトポリシー、デフォルト VPC セットアップ、 CloudFormation カスタムリソースプロバイダーを含むネストスタック。

  • AWS ParallelCluster クラスタースタックの例と、ログインしてジョブを実行できるクラスターです。

でクラスターを作成します。 AWS CloudFormation

  1. AWS Management Consoleにサインインします。

  2. CloudFormation クイック作成リンクを開いて、コンソールに以下のリソースを作成します。 CloudFormation

    • クラスターヘッドノードとコンピュートノードをそれぞれ実行するためのパブリックサブネットとプライベートサブネットを持つ VPC CloudFormation を備えたネストスタック。

    • CloudFormation AWS ParallelCluster クラスターを管理するためのカスタムリソースを含むネストされたスタック。

    • CloudFormation クラスターを管理するためのデフォルトポリシーを含むネストスタック。

    • CloudFormation ネストされたスタックのルートスタック。

    • AWS ParallelCluster Slurmスケジューラーと定義済みの数のコンピュートノードを含むクラスター。

    CloudFormation コンソールのクイック作成ユーザーインターフェイス。
  3. [クイック作成スタック][パラメータ] セクションで、以下のパラメータの値を入力します。

    1. にはKeyName、EC2 key pair 名前を入力します。

    2. AvailabilityZoneでは、クラスターノード用の AZ を選択します (例:) us-east-1a

  4. ページの下部で、チェックボックスを選択し、各アクセス機能を確認します。

  5. [スタックの作成] を選択します。

  6. CloudFormation CREATE_COMPLETEスタックがその状態になるまで待ちます。

AWS CloudFormation コマンドラインインターフェイス (CLI) によるクラスター作成

このチュートリアルでは、 AWS コマンドラインインターフェイス (CLI) を使用して、 CloudFormation CloudFormation クラスターを作成するテンプレートをデプロイします。

AWS 以下のリソースを作成します。
  • CloudFormation CloudFormation クイック作成スタックを使用して作成されたルートスタック。

  • デフォルトポリシー、デフォルト VPC セットアップ、 CloudFormation カスタムリソースプロバイダーを含むネストスタック。

  • AWS ParallelCluster クラスタースタックの例と、ログインしてジョブを実行できるクラスターです。

キーペアなど、赤で強調表示されている入力を独自の値に置き換えます。

でクラスターを作成します。 AWS CloudFormation

  1. CloudFormation cluster_template.yaml以下の内容を含むという名前のテンプレートを作成します。

    AWSTemplateFormatVersion: '2010-09-09' Description: > AWS ParallelCluster CloudFormation Template Parameters: KeyName: Description: KeyPair to login to the head node Type: AWS::EC2::KeyPair::KeyName AvailabilityZone: Description: Availability zone where instances will be launched Type: AWS::EC2::AvailabilityZone::Name Default: us-east-2a Mappings: ParallelCluster: Constants: Version: 3.7.0 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: !FindInMap [ParallelCluster, Constants, Version] } PclusterVpc: Type: AWS::CloudFormation::Stack Properties: Parameters: PublicCIDR: 10.0.0.0/24 PrivateCIDR: 10.0.16.0/20 AvailabilityZone: !Ref AvailabilityZone TemplateURL: !Sub - https://${AWS::Region}-aws-parallelcluster.s3.${AWS::Region}.${AWS::URLSuffix}/parallelcluster/${Version}/templates/networking/public-private-${Version}.cfn.json - { Version: !FindInMap [ParallelCluster, Constants, Version ] } 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: !GetAtt [ PclusterVpc , Outputs.PublicSubnetId ] Ssh: KeyName: !Ref KeyName Scheduling: Scheduler: slurm SlurmQueues: - Name: queue0 ComputeResources: - Name: queue0-cr0 InstanceType: t2.micro Networking: SubnetIds: - !GetAtt [ PclusterVpc , Outputs.PrivateSubnetId ] Outputs: HeadNodeIp: Description: The Public IP address of the HeadNode Value: !GetAtt [ PclusterCluster, headNode.publicIpAddress ]
  2. 次の AWS CLI コマンドを実行して、 CloudFormation クラスターの作成と管理のためのスタックをデプロイします。

    $ aws cloudformation deploy --template-file ./cluster_template.yaml \ --stack-name mycluster \ --parameter-overrides KeyName=keypair \ AvailabilityZone=us-east-2b \ --capabilities CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND

CloudFormation クラスター出力を表示します。

CloudFormation クラスター出力を表示して、有用なクラスターの詳細情報を取得します。追加された ValidationMessages プロパティにより、クラスターの作成および更新操作からの検証メッセージにアクセスできます。

  1. CloudFormation コンソールに移動し、 AWS ParallelCluster カスタムリソースを含むスタックを選択します。

  2. [スタックの詳細] を選択し、[出力] タブを選択します。

    コンソールは、 CloudFormation HeadNodeIp との値を示す表を出力します ValidationMessages。

    検証メッセージは切り詰められることがあります。ログの取得の詳細については、「AWS ParallelCluster トラブルシューティング」を参照してください。

クラスターへのアクセス

クラスターへのアクセス

クラスターヘッドノードの ssh
  1. CloudFormation スタックのデプロイが完了したら、以下のコマンドでヘッドノードの IP アドレスを取得します。

    $ HEAD_NODE_IP=$(aws cloudformation describe-stacks --stack-name=mycluster --query "Stacks|[0].Outputs[?OutputKey=='HeadNodeIp']|[0].OutputValue" --output=text)

    CloudFormation コンソールのクラスタースタックの Outputs HeadNodeIpタブのパラメーターからヘッドノードの IP アドレスを取得することもできます。

    ヘッドノードの IP Outputs CloudFormation アドレスはクラスターテンプレートのセクションに追加されたため、ここで確認できます。このサンプルクラスター専用です。

  2. 次のコマンドを実行して、クラスターヘッドノードに接続します。

    $ ssh -i keyname.pem ec2-user@$HEAD_NODE_IP

クリーンアップ

クラスターを削除します。

  1. 次の AWS CLI コマンドを実行して、 CloudFormation スタックとクラスターを削除します。

    $ aws cloudformation delete-stack --stack-name=mycluster
  2. 次のコマンドを実行してスタックの削除ステータスを確認します。

    $ aws cloudformation describe-stacks --stack-name=mycluster