기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
사용자 지정 AWS ParallelCluster AMI 구축
AWS ParallelCluster 명령줄 인터페이스 (CLI) 또는 API를 사용하는 경우 AWS ParallelCluster 이미지 및 클러스터를 생성하거나 업데이트할 때 생성된 AWS 리소스에 대한 비용만 지불하면 됩니다. 자세한 정보는 AWS 에서 사용하는 서비스 AWS ParallelCluster을 참조하세요.
AWS ParallelCluster UI는 서버리스 아키텍처를 기반으로 하며 대부분의 경우 AWS 프리 티어 범주 내에서 사용할 수 있습니다. 자세한 정보는 AWS ParallelCluster UI 비용을 참조하세요.
중요
사용자 지정 AMI를 빌드한다면, 새로운 각 AWS ParallelCluster 릴리스에서 사용자 지정 AMI를 생성하는 데 사용된 단계를 반복해야 합니다.
자세한 내용을 읽기 전에 먼저 사용자 지정 부트스트랩 작업 섹션을 검토하는 것이 좋습니다. 수정하려는 내용이 스크립트로 작성되고 향후 AWS ParallelCluster 릴리스에서 지원할 수 있는지 확인하세요.
일반적으로 사용자 지정 AMI를 구축하는 것이 이상적이지는 않지만 사용자 지정 AMI를 구축해야 하는 특정 AWS ParallelCluster 시나리오가 있습니다. 이 자습서에서는 이러한 시나리오에 맞는 사용자 지정 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 중국 파티션에서 이 방법을 사용하면 네트워크 오류가 발생할 수 있습니다. 예를 들어, OS 리포지토리에서 GitHub 또는 OS 리포지토리에서 패키지를 다운로드할 때 pcluster build-image
명령에서 이러한 오류가 표시될 수 있습니다. 이 오류가 발생하면 다음 대체 방법 중 하나를 사용하는 것이 좋습니다.
-
이 명령을 우회하는 AWS ParallelCluster AMI 수정 방법을 따릅니다.
-
이미지를 다른 파티션 및 리전(예:
us-east-1
)에 빌드한 다음 저장-복원하여 중국 리전으로 이동합니다. 자세한 내용은 Amazon EC2 사용 설명서의 S3를 사용하여 AMI 저장 및 복원을 참조하십시오.
단계:
-
AWS ParallelCluster 클라이언트가 사용자를 대신하여 AWS API 작업을 호출할 수 있도록 AWS 계정 자격 증명을 구성하십시오. 필요한 권한 목록은 AWS Identity and Access Management 권한 입력 AWS ParallelCluster 섹션을 참조하세요.
-
기본 이미지 빌드 구성 파일을 생성합니다. 이렇게 하려면 이미지 및 ParentImage를 빌드하는 데 사용할 InstanceType을 지정합니다. 이는 AMI를 생성하기 위한 시작점으로 사용됩니다. 선택적 빌드 파라미터에 대한 자세한 내용은 이미지 구성을 참조하세요.
Build: InstanceType:
<BUILD_INSTANCE_TYPE>
ParentImage:<BASE_AMI_ID>
-
CLI 명령을 pcluster build-image사용하여 기본으로 제공하는 AWS ParallelCluster AMI에서 시작하여 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명령을 실행한 후에는 를 사용하여 CloudFormation 스택 이벤트를 검색할 수 있습니다. pcluster get-image-stack-events --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를 통해 사용할 수 있는 로그 검색 및 이미지 수명 주기 관리 명령에 액세스할 수 없습니다.
단계: