

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 를 사용하여 클러스터 생성 CloudFormation


 AWS ParallelCluster CloudFormation 사용자 지정 리소스를 사용하여 클러스터를 생성하는 방법을 알아봅니다. 자세한 내용은 [AWS CloudFormation 사용자 지정 리소스](cloudformation-v3.md) 단원을 참조하십시오.

를 사용하는 경우 AWS ParallelCluster 이미지 및 클러스터를 생성하거나 업데이트할 때 생성된 AWS 리소스 AWS ParallelCluster에 대해서만 비용을 지불합니다. 자세한 내용은 [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 빠른 생성 스택을 사용한 클러스터 생성


이 자습서에서는 빠른 생성 스택을 사용하여 클러스터와 다음 AWS 리소스를 생성하는 CloudFormation 템플릿을 배포합니다.
+ CloudFormation 빠른 생성 스택을 사용하여 생성된 루트 CloudFormation 스택
+ 기본 정책, 기본 VPC 설정, 사용자 지정 리소스 공급자를 포함하는 중첩된 CloudFormation 스택
+ 예제 AWS ParallelCluster 클러스터 스택과에 로그인하고 작업을 실행할 수 있는 클러스터입니다.

**를 사용하여 클러스터 생성 AWS CloudFormation**

1.  AWS Management Console에 로그인합니다.

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/ko_kr/parallelcluster/latest/ug/images/cfn-quick-create.png)

1. **빠른 스택 생성** **파라미터** 섹션에서 다음 파라미터의 값을 입력합니다.

   1. **KeyName**에 Amazon EC2 키 페어의 이름을 입력합니다.

   1. **AvailabilityZone**에 클러스터 노드의 AZ(예: `us-east-1a`)를 선택합니다.

1. 페이지 하단에서 각 액세스 기능이 필요함을 확인하는 확인란을 선택합니다.

1. **스택 생성**을 선택합니다.

1. CloudFormation 스택이 `CREATE_COMPLETE` 상태에 도달할 때까지 기다리세요.

## CloudFormation 명령줄 인터페이스(CLI)를 사용한 클러스터 생성


이 자습서에서는 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 클러스터 출력 보기


CloudFormation 클러스터 출력을 보고 유용한 클러스터 세부 정보를 얻을 수 있습니다. 추가된 `ValidationMessages` 속성은 클러스터 생성 및 업데이트 작업의 검증 메시지에 대한 액세스를 제공합니다.

1. [CloudFormation 콘솔](https://console.aws.amazon.com/cloudformation/home)로 이동하여 AWS ParallelCluster 사용자 지정 리소스가 포함된 스택을 선택합니다.

1. **스택 세부 정보**를 선택하고 **출력** 탭을 선택합니다.  
![\[콘솔 CloudFormation은 HeadNodeIp 및 ValidationMessages의 값을 보여주는 테이블을 출력합니다.\]](http://docs.aws.amazon.com/ko_kr/parallelcluster/latest/ug/images/cfn-outputs.png)

   검증 메시지는 잘릴 수 있습니다. 로그 검색에 대한 자세한 내용은 [AWS ParallelCluster 문제 해결](troubleshooting-v3.md) 섹션을 참조하세요.

## 클러스터에 액세스


클러스터에 액세스하세요.

**클러스터 헤드 노드에 `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
   ```

## 정리


클러스터를 삭제합니다.

1. 다음 AWS CLI 명령을 실행하여 CloudFormation 스택과 클러스터를 삭제합니다.

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

1. 다음 명령을 실행하여 스택 삭제 상태를 확인합니다.

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