

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

# を使用したクラスターの作成 CloudFormation
<a name="tutorials_09_cfn-custom-resource-v3"></a>

 AWS ParallelCluster CloudFormation カスタムリソースを使用してクラスターを作成する方法について説明します。詳細については、「[AWS CloudFormation カスタムリソース](cloudformation-v3.md)」を参照してください。

を使用する場合 AWS ParallelCluster、 AWS ParallelCluster イメージとクラスターを作成または更新するときに作成された AWS リソースに対してのみ料金が発生します。詳細については、「[AWS が使用する サービス AWS ParallelCluster](aws-services-v3.md)」を参照してください。

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

## CloudFormation クイック作成スタックによるクラスター作成
<a name="cfn-custom-resource-quick-v3"></a>

このチュートリアルでは、クイック作成スタックを使用して、クラスターと次の AWS リソースを作成する CloudFormation テンプレートをデプロイします。
+ CloudFormation クイック作成スタックを使用して作成されたルート CloudFormation スタック。
+ デフォルトポリシー、デフォルト VPC セットアップ、カスタムリソースプロバイダーを含むネストされた CloudFormation スタック。
+  AWS ParallelCluster クラスタースタックの例と、 にログインしてジョブを実行できるクラスター。

**を使用してクラスターを作成する AWS CloudFormation**

1.  AWS マネジメントコンソールにサインインします。

1. CloudFormation [クイック作成リンク](https://us-east-1.console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/create/review?stackName=mycluster&templateURL=https://us-east-1-aws-parallelcluster.s3.amazonaws.com/parallelcluster/3.15.0/templates/1-click/cluster-example.yaml)を開いて、CloudFormation コンソールに以下のリソースを作成します。
   + クラスターヘッドノードとコンピューティングノードをそれぞれ実行するためのパブリックサブネットとプライベートサブネットを持つ VPC を備えた、ネストされた CloudFormation スタック。
   + クラスターを管理するための AWS ParallelCluster カスタムリソースを持つネストされた CloudFormation スタック。
   + クラスターを管理するためのデフォルトポリシーを含むネストされた CloudFormation スタック。
   + ネストされたスタックのルート CloudFormation スタック。
   + スSlurmケジューラと定義された数のコンピューティングノードを持つ AWS ParallelCluster クラスター。  
![\[コンソールの CloudFormation クイック作成ユーザーインターフェイス。\]](http://docs.aws.amazon.com/ja_jp/parallelcluster/latest/ug/images/cfn-quick-create.png)

1. **[クイック作成スタック]** の **[パラメータ]** セクションで、以下のパラメータの値を入力します。

   1. **[KeyName]** に、Amazon EC2 のキーペア名を入力します。

   1. **[AvailabilityZone]** では、クラスターノード用のアベイラビリティーゾーンを選択します (`us-east-1a` など)。

1. ページの下部で、アクセス機能を必要とすることを確認するチェックボックスを選択します。

1. **[スタックの作成]** を選択してください。

1. CloudFormation スタックが `CREATE_COMPLETE` の状態に達するまで待ちます。

## コマンドラインインターフェイス (CLI) CloudFormation を使用したクラスターの作成
<a name="cfn-custom-resource-cli-v3"></a>

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

**次の AWS リソースを作成します。**
+ CloudFormation クイック作成スタックを使用して作成されたルート CloudFormation スタック。
+ デフォルトポリシー、デフォルト VPC セットアップ、カスタムリソースプロバイダーを含むネストされた CloudFormation スタック。
+  AWS ParallelCluster クラスタースタックの例と、 にログインしてジョブを実行できるクラスター。

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

**を使用してクラスターを作成する AWS CloudFormation**

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

   ```
   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.15.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 ]
   ```

1. 次の 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 クラスターの出力を表示する
<a name="cfn-custom-resource-view-v3"></a>

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

1. [CloudFormation コンソール](https://console.aws.amazon.com/cloudformation/home)に移動し、 AWS ParallelCluster カスタムリソースを含むスタックを選択します。

1. **[スタックの詳細]** を選択し、**[出力]** タブを選択します。  
![\[HeadNodeIp と ValidationMessages の値を示す、コンソールの CloudFormation 出力テーブル。\]](http://docs.aws.amazon.com/ja_jp/parallelcluster/latest/ug/images/cfn-outputs.png)

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

## クラスターへのアクセス
<a name="cfn-custom-resource-access-v3"></a>

クラスターへのアクセス

**クラスターヘッドノードの `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 コンソールのクラスタースタックの **[出力]** タブにある **[HeadNodeIP]** パラメータからヘッドノードの IP アドレスを取得することもできます。

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

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

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

## クリーンアップ
<a name="cfn-custom-resource-cleanup-v3"></a>

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

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

   ```
   $ aws cloudformation delete-stack --stack-name=mycluster
   ```

1. 次のコマンドを実行してスタックの削除ステータスを確認します。

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