AWS CloudFormation 사용자 지정 리소스 - AWS ParallelCluster

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

AWS CloudFormation 사용자 지정 리소스

AWS ParallelCluster 버전 3.6.0부터 스택에서 AWS ParallelCluster CloudFormation 사용자 지정 리소스를 사용할 수 있습니다. AWS CloudFormation 사용자 지정 리소스는 AWS ParallelCluster 호스팅된 스택입니다. 이렇게 하면 클러스터를 구성하고 관리하는 CloudFormation 데 사용할 수 있습니다. 예를 들어 네트워크, 공유 스토리지, 보안 그룹 인프라와 같은 클러스터 외부 리소스를 CloudFormation 스택에 구성할 수 있습니다. 또한 코드 파이프라인으로서의 CloudFormation 인프라를 사용하여 클러스터를 관리할 수 있습니다.

다음을 수행하여 CloudFormation 템플릿에 AWS ParallelCluster 사용자 지정 리소스를 추가합니다.

  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 설명서에 기본적으로 정의된 것과 동일한 정책을 사용합니다.

AdditionalIamPolicies (선택 사항):

Lambda가 사용하는 역할에 추가할 추가 IAM 정책 Amazon 리소스 이름(ARN)을 쉼표로 구분한 목록입니다. 이는 CustomLambdaRole이 지정되지 않은 경우에만 사용되며 비워 둘 수 있습니다.

헤드 노드, 컴퓨팅 노드 또는 Amazon S3 버킷 액세스에 대한 추가 정책이 필요한 경우 CustomLambdaRole 또는 AdditionalIamPolicy 속성에 정책을 추가하세요.

기본 정책에 대한 자세한 내용은 AWS Identity and Access Management 권한 입력 AWS ParallelCluster 섹션을 참조하세요.

TemplateURL(필수):

AWS ParallelCluster 사용자 지정 리소스 파일 URL.

출력:
ServiceToken:

사용자 지정 리소스 ServiceToken 속성으로 사용할 수 있는 값입니다. 사용자 지정 리소스는 요청을 AWS CloudFormation 보내는 위치를 ServiceToken 지정합니다. AWS CloudFormation 템플릿에 포함하는 클러스터 리소스의 필수 입력입니다.

LogGroupArn:

기본 리소스가 CloudWatch LogGroup 기록하는 ARN입니다.

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입니다.

보관:

사용자 지정 리소스가 삭제되더라도 클러스터를 유지합니다.

참고

보존된 클러스터가 계속 작동하려면 스토리지 및 네트워킹과 같은 클러스터 종속 리소스에 보존할 삭제 정책이 설정되어 있어야 합니다.

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 ]

예: AWS ParallelCluster 사용자 지정 리소스가 포함된 단순하고 완전한 CloudFormation 템플릿:

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

  2. 클러스터 이름에 정의한 이름을 가진 스택을 선택합니다.

  3. 스택 상태가 ROLLBACK_COMPLETE인 경우 클러스터를 생성하는 동안 오류가 발생했습니다.

  4. 스택 세부 정보를 선택하고 이벤트 탭을 선택합니다.

  5. 논리 ID에서 이벤트에서 클러스터 이름에 정의한 이름을 검색하세요. 문제의 원인을 알려주는 Status reason가 있습니다.

  6. 스택 드롭다운 메뉴를 선택한 다음 삭제를 선택하여 삭제된 스택 목록을 볼 수도 있습니다. 클러스터 이름이 있는 스택을 선택하고 이벤트에서 자세한 내용을 확인하세요.

  7. 클러스터를 관리하는 사용자 지정 리소스 공급자의 결과를 보려면 설명이 "AWS ParallelCluster 클러스터 사용자 지정 리소스 “인 스택을 선택하십시오. 리소스 탭을 선택하고 논리 ID PclusterCfnFunctionLogGroup이 있는 리소스를 찾은 다음 해당 링크를 따라 이동합니다. Lambda 디버그 출력을 보여주는 로그 스트림을 확인합니다.

  8. 클러스터 문제를 해결하려면 AWS ParallelCluster 문제 해결 섹션을 참조하세요.