사용자 지정 AWS ParallelCluster AMI 구축 - AWS ParallelCluster

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

사용자 지정 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 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-imagedelete-image도 추가되었습니다.

  • 이 방법은 반복할 수 있습니다. 다시 실행하여 AMI를 최신 상태로 유지(예: OS 업데이트)한 다음 기존 클러스터를 업데이트할 때 사용할 수 있습니다.

참고

AWS 중국 파티션에서 이 방법을 사용하면 네트워크 오류가 발생할 수 있습니다. 예를 들어, OS 리포지토리에서 GitHub 또는 OS 리포지토리에서 패키지를 다운로드할 때 pcluster build-image 명령에서 이러한 오류가 표시될 수 있습니다. 이 오류가 발생하면 다음 대체 방법 중 하나를 사용하는 것이 좋습니다.

  1. 이 명령을 우회하는 AWS ParallelCluster AMI 수정 방법을 따릅니다.

  2. 이미지를 다른 파티션 및 리전(예: us-east-1)에 빌드한 다음 저장-복원하여 중국 리전으로 이동합니다. 자세한 내용은 Amazon EC2 사용 설명서의 S3를 사용하여 AMI 저장 및 복원을 참조하십시오.

단계:

  1. AWS ParallelCluster 클라이언트가 사용자를 대신하여 AWS API 작업을 호출할 수 있도록 AWS 계정 자격 증명을 구성하십시오. 필요한 권한 목록은 AWS Identity and Access Management 권한 입력 AWS ParallelCluster 섹션을 참조하세요.

  2. 기본 이미지 빌드 구성 파일을 생성합니다. 이렇게 하려면 이미지 및 ParentImage를 빌드하는 데 사용할 InstanceType을 지정합니다. 이는 AMI를 생성하기 위한 시작점으로 사용됩니다. 선택적 빌드 파라미터에 대한 자세한 내용은 이미지 구성을 참조하세요.

    Build: InstanceType: <BUILD_INSTANCE_TYPE> ParentImage: <BASE_AMI_ID>
  3. CLI 명령을 pcluster build-image사용하여 기본으로 제공하는 AWS ParallelCluster AMI에서 시작하여 AMI를 구축합니다.

    $ pcluster build-image --image-id IMAGE_ID --image-configuration IMAGE_CONFIG.yaml --region REGION { "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 구성 요소에 정의된 테스트를 실행합니다.

    • 빌드가 성공하면 스택이 삭제됩니다. 빌드가 실패하더라도 스택은 유지되며 검사할 수 있습니다.

  4. 다음 명령을 실행하여 빌드 프로세스의 상태를 모니터링할 수 있습니다. 빌드가 완료되면 이를 실행하여 응답에 제공된 AMI ID를 검색할 수 있습니다.

    $ pcluster describe-image --image-id IMAGE_ID --region REGION # 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" }
  5. 클러스터를 생성하려면 클러스터 구성 내의 CustomAmi 필드에 AMI ID를 입력합니다.

AMI 생성 프로세스 문제 해결 및 모니터링

이미지 생성은 약 1시간 후에 완료됩니다. pcluster describe-image 명령 또는 로그 검색 명령을 실행하여 프로세스를 모니터링할 수 있습니다.

$ pcluster describe-image --image-id IMAGE_ID --region REGION

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 --region REGION --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-streamspcluster get-image-log-events 명령을 사용하여 이미지 로그 스트림을 나열하고 Image Builder 단계를 모니터링할 수 있습니다.

$ pcluster list-image-log-streams --image-id IMAGE_ID --region REGION \ --query 'logStreams[*].logStreamName' "3.7.0/1" ] $ pcluster get-image-log-events --image-id IMAGE_ID --region REGION \ --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 --region REGION { "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 --region REGION \ --bucket BUCKET_NAME --bucket-prefix BUCKET_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 \ --region REGION --bucket BUCKET_NAME --bucket-prefix BUCKET_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를 통해 사용할 수 있는 로그 검색 및 이미지 수명 주기 관리 명령에 액세스할 수 없습니다.

단계:

New Amazon EC2 console
  1. 사용 중인 AMI에 AWS 리전 해당하는 AMI를 찾으십시오. pcluster list-official-images명령을 --region 파라미터와 함께 사용하여 원하는 AMI를 사용하려는 OS AWS 리전 --os 및 아키텍처에서 필터링할 특정 및 및 --architecture 파라미터를 선택합니다. 출력에서 Amazon EC2 이미지 ID를 검색합니다.

  2. AWS Management Console 로그인하고 https://console.aws.amazon.com/ec2/ 에서 Amazon EC2 콘솔을 엽니다.

  3. 탐색 창에서 이미지AMI를 선택합니다. 검색된 EC2 이미지 ID를 검색하고 AMI를 선택한 다음 AMI에서 인스턴스 시작을 선택합니다.

  4. 아래로 스크롤하여 인스턴스 유형을 선택합니다.

  5. 키 페어를 선택하고 인스턴스를 시작합니다.

  6. OS 사용자와 SSH 키를 사용하여 인스턴스에 로그인합니다.

  7. 요구 사항에 맞추어 인스턴스를 수동으로 사용자 지정합니다.

  8. 다음 명령을 실행하여 AMI 생성을 위해 인스턴스를 준비합니다.

    sudo /usr/local/sbin/ami_cleanup.sh
  9. 콘솔에서 인스턴스 상태인스턴스 중지를 선택합니다.

    인스턴스를 중지하려면 인스턴스를 선택하고 인스턴스 상태, 인스턴스 중지를 차례로 선택합니다.

  10. Amazon EC2 콘솔을 사용하여 인스턴스에서 새 AMI를 생성하거나 AWS CLI 이미지를 생성합니다.

    Amazon EC2 콘솔에서
    1. 탐색 창에서 인스턴스를 선택합니다.

    2. 생성하고 수정한 인스턴스를 선택합니다.

    3. 작업, 이미지, 이미지 생성을 차례로 선택합니다.

    4. 이미지 생성을 선택합니다.

  11. 클러스터를 생성하려면 클러스터 구성 내의 CustomAmi 필드에 새 AMI ID를 입력합니다.

Old Amazon EC2 console
  1. 사용 중인 AWS ParallelCluster AMI에 AWS 리전 해당하는 AMI를 찾으십시오. pcluster list-official-images명령을 --region 파라미터와 함께 사용하여 원하는 AMI를 사용하려는 OS AWS 리전 --os 및 아키텍처에서 필터링할 특정 및 및 --architecture 파라미터를 선택하면 됩니다. 출력에서 Amazon EC2 이미지 ID를 검색할 수 있습니다.

  2. AWS Management Console 로그인하고 https://console.aws.amazon.com/ec2/ 에서 Amazon EC2 콘솔을 엽니다.

  3. 탐색 창에서 이미지AMI를 선택합니다. 필터를 퍼블릭 이미지로 설정하고 검색된 EC2 이미지 ID를 검색하고 AMI를 선택한 다음 시작을 선택합니다.

  4. 인스턴스 유형을 선택하고 다음: 인스턴스 세부 정보 구성 또는 검토 및 시작을 선택하여 인스턴스를 시작합니다.

  5. 시작을 선택하고 키 페어를 선택한 다음 인스턴스를 시작합니다.

  6. OS 사용자와 SSH 키를 사용하여 인스턴스에 로그인합니다. 자세한 내용을 보려면 인스턴스로 이동하여 새 인스턴스를 선택한 다음 연결을 선택하세요.

  7. 요구 사항에 맞추어 인스턴스를 수동으로 사용자 지정합니다.

  8. 다음 명령을 실행하여 AMI 생성을 위해 인스턴스를 준비합니다.

    sudo /usr/local/sbin/ami_cleanup.sh
  9. Amazon EC2 콘솔의 탐색 창에서 [Instances] 를 선택하고 새 인스턴스를 선택한 다음 [작업], [인스턴스 상태], [Stop] 을 선택합니다.

  10. Amazon EC2 콘솔을 사용하여 인스턴스에서 새 AMI를 생성하거나 AWS CLI 이미지를 생성합니다.

    Amazon EC2 콘솔에서
    1. 탐색 창에서 인스턴스를 선택합니다.

    2. 생성하고 수정한 인스턴스를 선택합니다.

    3. 작업, 이미지, 이미지 생성을 차례로 선택합니다.

    4. 이미지 생성을 선택합니다.

  11. 클러스터를 생성하려면 클러스터 구성 내의 CustomAmi 필드에 새 AMI ID를 입력합니다.