기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
사용자 지정 AWS ParallelCluster AMI 빌드
AWS ParallelCluster 명령줄 인터페이스(CLI) 또는 API를 사용하는 경우 AWS ParallelCluster 이미지 및 클러스터를 생성하거나 업데이트할 때 생성된 AWS 리소스에 대한 비용만 지불하면 됩니다. 자세한 내용은 AWS ParallelCluster가 사용하는 AWS 서비스 단원을 참조하십시오.
PCUI는 서버리스 아키텍처를 기반으로 하며 대부분의 경우 AWS 프리 티어 범주 내에서 사용할 수 있습니다. 자세한 내용은 PCUI 비용 단원을 참조하십시오.
중요
사용자 지정 AMI를 빌드한다면, 새로운 각 AWS ParallelCluster 릴리스에서 사용자 지정 AMI를 생성하는 데 사용된 단계를 반복해야 합니다.
자세한 내용을 읽기 전에 먼저 사용자 지정 부트스트랩 작업 섹션을 검토하는 것이 좋습니다. 수정하려는 내용이 스크립트로 작성되고 향후 AWS ParallelCluster 릴리스에서 지원할 수 있는지 확인하세요.
일반적으로 사용자 지정 AMI 빌드는 이상적이지는 않지만, AWS ParallelCluster에 대한 사용자 지정 AMI를 빌드해야 할 때가 있습니다. 이 자습서에서는 이러한 시나리오에 맞는 사용자 지정 AMI를 빌드하는 방법에 대해 설명합니다.
사전 조건
-
AWS ParallelCluster가 설치되었습니다.
-
AWS CLI가 설치 및 구성되었습니다.
-
Amazon EC2 키 페어가 있는 경우.
AWS ParallelCluster AMI를 사용자 지정하는 방법
사용자 지정 AWS ParallelCluster AMI를 빌드하는 방법에는 두 가지가 있습니다. 이 두 가지 방법 중 하나는 AWS ParallelCluster CLI를 사용하여 새 AMI를 빌드하는 것입니다. 또 다른 방법을 사용하려면 수동으로 수정하여 AWS 계정에서 MI를 새로 빌드해야 합니다.
사용자 지정 AWS ParallelCluster AMI 빌드
사용자 지정된 AMI와 소프트웨어가 있는 경우, 그 위에 AWS ParallelCluster에 필요한 변경 사항을 적용할 수 있습니다. AWS ParallelCluster는 EC2 Image Builder 서비스를 사용하여 사용자 지정 AMI를 빌드합니다. 자세한 내용은 Image Builder 사용 설명서를 참조하세요.
중요 사항:
-
이 프로세스에는 1시간 가량 소요됩니다. 이 시간은 빌드 시 추가로 Build/Components를 설치할 경우 달라질 수 있습니다.
-
AMI에는 주요 구성 요소 버전으로 태그가 지정되어 있습니다. 여기에는 커널, 스케줄러, EFA 드라이버가 포함됩니다. 구성 요소 버전의 하위 집합도 AMI 설명에 보고됩니다.
-
AWS ParallelCluster 3.0.0부터 새로운 CLI 명령 세트를 사용하여 이미지의 생명 주기를 관리할 수 있습니다. 여기에 build-image, list-images, describe-image 및 delete-image도 추가되었습니다.
-
이 방법은 반복할 수 있습니다. 다시 실행하여 AMI를 최신 상태로 유지(예: OS 업데이트)한 다음 기존 클러스터를 업데이트할 때 사용할 수 있습니다.
참고
AWS 중국 파티션에서 이 방법을 사용하는 경우 네트워크 오류가 발생할 수 있습니다. 예를 들어 GitHub 또는 OS 리포지토리에서 패키지를 다운로드할 때 pcluster build-image
명령에서 이러한 오류가 표시될 수 있습니다. 이 오류가 발생하면 다음 대체 방법 중 하나를 사용하는 것이 좋습니다.
-
이 명령을 우회하는 AWS ParallelCluster AMI 수정 방법을 따릅니다.
-
이미지를 다른 파티션 및 리전(예:
us-east-1
)에 빌드한 다음 저장-복원하여 중국 리전으로 이동합니다. 자세한 내용은 Amazon EC2 사용 설명서의 S3를 사용하여 AMI 저장 및 복원을 참조하세요.
단계:
-
AWS ParallelCluster 클라이언트가 사용자를 대신하여 AWS API 작업을 호출할 수 있도록 AWS 계정 보안 인증을 구성합니다. 필요한 권한 목록은 AWS ParallelCluster의 AWS Identity and Access Management 권한 섹션을 참조하세요.
-
기본 이미지 빌드 구성 파일을 생성합니다. 이렇게 하려면 이미지 및 ParentImage를 빌드하는 데 사용할 InstanceType을 지정합니다. 이는 AMI를 생성하기 위한 시작점으로 사용됩니다. 선택적 빌드 파라미터에 대한 자세한 내용은 이미지 구성을 참조하세요.
Build: InstanceType:
<BUILD_INSTANCE_TYPE>
ParentImage:<BASE_AMI_ID>
-
CLI 명령 pcluster build-image를 사용하여 기본으로 제공한 AMI부터 시작하여 AWS ParallelCluster AMI를 빌드합니다.
$
pcluster build-image --image-id
IMAGE_ID
--image-configurationIMAGE_CONFIG.yaml
--regionREGION
{ "image": { "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_IN_PROGRESS", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "region": "us-east-1", "version": "3.7.0" } }
주의
pcluster build-image
는 기본 VPC를 사용합니다. AWS Control Tower또는 AWS 랜딩 존을 사용하여 기본 VPC를 삭제하는 경우, 이미지 구성 파일에 서브넷 ID를 지정해야 합니다. 자세한 내용은 SubnetId 단원을 참조하십시오.기타 파라미터 목록은 pcluster build-image 명령 참조 페이지를 참조하세요. 이전 명령의 결과는 다음과 같습니다.
-
CloudFormation 스택은 이미지 구성을 기반으로 생성됩니다. 스택에는 빌드에 필요한 모든 EC2 Image Builder 리소스가 포함되어 있습니다.
-
생성된 리소스에는 사용자 지정 Image Builder AWS ParallelCluster 구성 요소를 추가할 수 있는 공식 Image Builder 구성 요소가 포함됩니다. 사용자 지정 구성 요소를 만드는 방법을 알아보려면 공공 부문 고객 워크숍용 HPC의 사용자 지정 AMI 예제
를 참조하세요. -
EC2 Image Builder는 빌드 인스턴스를 시작하고 AWS ParallelCluster 쿡북을 적용하고 AWS ParallelCluster 소프트웨어 스택을 설치하고 필요한 구성 태스크를 수행합니다. AWS ParallelCluster 쿡북은 AWS ParallelCluster의 빌드 및 부트스트랩에 사용됩니다.
-
인스턴스가 중지되고 이 인스턴스에서 새 AMI가 생성됩니다.
-
새로 생성한 AMI에서 다른 인스턴스가 시작됩니다. 테스트 단계에서 EC2 Image Builder는 Image Builder 구성 요소에 정의된 테스트를 실행합니다.
-
빌드가 성공하면 스택이 삭제됩니다. 빌드가 실패하더라도 스택은 유지되며 검사할 수 있습니다.
-
-
다음 명령을 실행하여 빌드 프로세스의 상태를 모니터링할 수 있습니다. 빌드가 완료되면 이를 실행하여 응답에 제공된 AMI ID를 검색할 수 있습니다.
$
pcluster describe-image --image-id
IMAGE_ID
--regionREGION
# BEFORE COMPLETE { "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.amazonaws.com/parallelcluster/3.7.0/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?...", }, "imageId": "IMAGE_ID", "imagebuilderImageStatus": "BUILDING", "imageBuildStatus": "BUILD_IN_PROGRESS", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "region": "us-east-1", "version": "3.7.0", "cloudformationStackTags": [ { "value": "3.7.0", "key": "parallelcluster:version" }, { "value": "IMAGE_ID", "key": "parallelcluster:image_name" }, ... ], "imageBuildLogsArn": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/imagebuilder/ParallelClusterImage-IMAGE_ID", "cloudformationStackCreationTime": "2022-04-05T21:36:26.176Z" }
# AFTER COMPLETE { "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.us-east-1.amazonaws.com/parallelcluster/3.7.0/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?Signature=..." }, "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_COMPLETE", "region": "us-east-1", "ec2AmiInfo": { "amiName": "IMAGE_ID 2022-04-05T21-39-24.020Z", "amiId": "ami-1234stuv5678wxyz", "description": "AWS ParallelCluster AMI for alinux2, kernel-4.14.238-182.422.amzn2.x86_64, lustre-2.10.8-5.amzn2.x86_64, efa-1.13.0-1.amzn2.x86_64, dcv-2021.1.10598-1.el7.x86_64, slurm-20-11-8-1", "state": "AVAILABLE", "tags": [ { "value": "2021.3.11591-1.el7.x86_64", "key": "parallelcluster:dcv_version" }, ... ], "architecture": "x86_64" }, "version": "3.7.0" }
-
클러스터를 생성하려면 클러스터 구성 내의 CustomAmi 필드에 AMI ID를 입력합니다.
AMI 생성 프로세스 문제 해결 및 모니터링
이미지 생성은 약 1시간 후에 완료됩니다. pcluster describe-image 명령 또는 로그 검색 명령을 실행하여 프로세스를 모니터링할 수 있습니다.
$
pcluster describe-image --image-id
IMAGE_ID
--regionREGION
이 build-image 명령은 이미지를 빌드하는 데 필요한 모든 Amazon EC2 리소스가 포함된 CloudFormation 스택을 생성하고 EC2 Image Builder 프로세스를 시작합니다.
build-image 명령을 실행한 후에는 pcluster get-image-stack-events를 사용하여 CloudFormation 스택 이벤트를 검색할 수 있습니다. --query
파라미터로 결과를 필터링하여 최신 이벤트를 확인할 수 있습니다. 자세한 내용은 AWS Command Line Interface 사용 설명서의 AWS CLI 출력 필터링을 참조하세요.
$
pcluster get-image-stack-events --image-id
IMAGE_ID
--regionREGION
--query "events[0]"{ "eventId": "ParallelClusterImage-CREATE_IN_PROGRESS-2022-04-05T21:39:24.725Z", "physicalResourceId": "arn:aws:imagebuilder:us-east-1:123456789012:image/parallelclusterimage-IMAGE_ID/3.7.0/1", "resourceStatus": "CREATE_IN_PROGRESS", "resourceStatusReason": "Resource creation Initiated", "resourceProperties": "{\"InfrastructureConfigurationArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:infrastructure-configuration/parallelclusterimage-abcd1234-ef56-gh78-ij90-1234abcd5678\",\"ImageRecipeArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:image-recipe/parallelclusterimage-IMAGE_ID/3.7.0\",\"DistributionConfigurationArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:distribution-configuration/parallelclusterimage-abcd1234-ef56-gh78-ij90-1234abcd5678\",\"Tags\":{\"parallelcluster:image_name\":\"IMAGE_ID\",\"parallelcluster:image_id\":\"IMAGE_ID\"}}", "stackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "stackName": "IMAGE_ID", "logicalResourceId": "ParallelClusterImage", "resourceType": "AWS::ImageBuilder::Image", "timestamp": "2022-04-05T21:39:24.725Z" }
약 15분 후 Image Builder 생성과 관련된 로그 이벤트 항목에 스택 이벤트가 나타납니다. 이제 pcluster list-image-log-streams 및 pcluster get-image-log-events 명령을 사용하여 이미지 로그 스트림을 나열하고 Image Builder 단계를 모니터링할 수 있습니다.
$
pcluster list-image-log-streams --image-id
"3.7.0/1" ]IMAGE_ID
--regionREGION
\ --query 'logStreams[*].logStreamName'$
pcluster get-image-log-events --image-id
IMAGE_ID
--regionREGION
\ --log-stream-name 3.7.0/1 --limit 3{ "nextToken": "f/36295977202298886557255241372854078762600452615936671762", "prevToken": "b/36295977196879805474012299949460899222346900769983430672", "events": [ { "message": "ExecuteBash: FINISHED EXECUTION", "timestamp": "2022-04-05T22:13:26.633Z" }, { "message": "Document arn:aws:imagebuilder:us-east-1:123456789012:component/parallelclusterimage-test-abcd1234-ef56-gh78-ij90-1234abcd5678/3.7.0/1", "timestamp": "2022-04-05T22:13:26.741Z" }, { "message": "TOE has completed execution successfully", "timestamp": "2022-04-05T22:13:26.819Z" } ] }
BUILD_COMPLETE
상태가 표시될 때까지 describe-image 명령을 사용하여 계속 확인하세요.
$
pcluster describe-image --image-id
IMAGE_ID
--regionREGION
{ "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.us-east-1.amazonaws.com/parallelcluster/3.7.0/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?Signature=..." }, "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_COMPLETE", "region": "us-east-1", "ec2AmiInfo": { "amiName": "IMAGE_ID 2022-04-05T21-39-24.020Z", "amiId": "ami-1234stuv5678wxyz", "description": "AWS ParallelCluster AMI for alinux2, kernel-4.14.238-182.422.amzn2.x86_64, lustre-2.10.8-5.amzn2.x86_64, efa-1.13.0-1.amzn2.x86_64, dcv-2021.1.10598-1.el7.x86_64, slurm-20-11-8-1", "state": "AVAILABLE", "tags": [ { "value": "2021.3.11591-1.el7.x86_64", "key": "parallelcluster:dcv_version" }, ... ], "architecture": "x86_64" }, "version": "3.7.0" }
사용자 지정 AMI 생성 문제를 해결해야 하는 경우 다음 단계에 설명된 대로 이미지 로그의 아카이브를 생성하세요.
--output
파라미터에 따라 Amazon S3 버킷 또는 로컬 파일에 로그를 보관할 수 있습니다.
$
pcluster export-image-logs --image-id
IMAGE_ID
--regionREGION
\ --bucketBUCKET_NAME
--bucket-prefixBUCKET_FOLDER
{ "url": "https://BUCKET_NAME.s3.us-east-1.amazonaws.com/BUCKET-FOLDER/IMAGE_ID-logs-202209071136.tar.gz?AWSAccessKeyId=..." }
$
pcluster export-image-logs --image-id
IMAGE_ID
\ --regionREGION
--bucketBUCKET_NAME
--bucket-prefixBUCKET_FOLDER
--output-file /tmp/archive.tar.gz{ "path": "/tmp/archive.tar.gz" }
아카이브에는 Image Builder 프로세스 및 AWS CloudFormation 스택 이벤트와 관련된 CloudWatch 로그 스트림이 포함되어 있습니다. 이 명령을 실행하는 데 몇 분이 걸릴 수 있습니다.
사용자 지정 AMI 관리
AWS ParallelCluster 3.0.0부터 이미지 생명 주기를 빌드, 모니터링 및 관리하기 위한 새로운 명령 세트가 CLI에 추가되었습니다. 명령에 대한 자세한 내용은 pcluster 명령을 참조하세요.
AWS ParallelCluster AMI 수정
이 방법은 공식 AMI 위에 사용자 지정을 추가하여 공식 AWS ParallelCluster AMI를 수정하는 것으로 구성됩니다. 기본 AWS ParallelCluster AMI는 새 릴리스로 업데이트됩니다. 이러한 AMI에는 AWS ParallelCluster를 설치 및 구성 시 작동하는 데 필요한 모든 구성 요소가 있습니다. 이 중 하나를 기본으로 삼아 시작할 수 있습니다.
중요 사항:
-
이 방법은 build-image 명령보다 빠릅니다. 하지만 이 프로세스는 수동 프로세스이므로 자동으로 반복할 수 없습니다.
-
이 방법을 사용하면 CLI를 통해 사용할 수 있는 로그 검색 및 이미지 수명 주기 관리 명령에 액세스할 수 없습니다.
단계: