시작 템플릿 지원 - AWS Batch

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

시작 템플릿 지원

AWS Batch EC2 컴퓨팅 환경에서 Amazon EC2 시작 템플릿 사용을 지원합니다. 시작 템플릿을 사용하면 사용자 지정된 AMI를 생성할 필요 없이 AWS Batch 컴퓨팅 리소스의 기본 구성을 수정할 수 있습니다.

참고

시작 템플릿은 AWS Fargate 리소스에서 지원되지 않습니다.

시작 템플릿을 컴퓨팅 환경과 연결하려면 먼저 시작 템플릿을 생성해야 합니다. 사용자는 Amazon EC2 콘솔에서 시작 템플릿을 생성할 수 있습니다. 또는 AWS SDK를 AWS CLI 사용할 수도 있습니다. 예를 들어 다음 JSON 파일은 기본 컴퓨팅 AWS Batch 리소스 AMI의 Docker 데이터 볼륨 크기를 조정하고 암호화되도록 설정하는 시작 템플릿을 나타냅니다.

{ "LaunchTemplateName": "increase-container-volume-encrypt", "LaunchTemplateData": { "BlockDeviceMappings": [ { "DeviceName": "/dev/xvda", "Ebs": { "Encrypted": true, "VolumeSize": 100, "VolumeType": "gp2" } } ] } }

lt-data.json호출되는 파일에 JSON을 저장하고 다음 명령을 실행하여 이전 시작 템플릿을 생성할 수 있습니다. AWS CLI

aws ec2 --region <region> create-launch-template --cli-input-json file://lt-data.json

시작 템플릿에 대한 자세한 내용은 Amazon EC2 사용 설명서의 시작 템플릿에서 인스턴스 시작을 참조하십시오.

시작 템플릿을 사용하여 컴퓨팅 환경을 생성하는 경우 다음 기존 컴퓨팅 환경 파라미터를 시작 템플릿으로 이동할 수 있습니다.

참고

이러한 파라미터 중 어느 하나가(Amazon EC2 태깅 제외)가 시작 템플릿과 컴퓨팅 환경 구성 둘 다에서 지정되었다고 가정해 보겠습니다. 이 경우, 컴퓨팅 환경 파라미터가 우선합니다. Amazon EC2 태그는 시작 템플릿과 컴퓨팅 환경 구성 사이에 병합됩니다. 태그의 키 값이 충돌하는 경우, 컴퓨팅 환경 구성의 값이 우선적으로 적용됩니다.

  • Amazon EC2 키 페어

  • Amazon EC2 AMI ID

  • 보안 그룹 ID

  • Amazon EC2 태그

에서는 다음과 같은 시작 템플릿 파라미터를 무시합니다. AWS Batch

  • 인스턴스 유형(컴퓨팅 환경을 생성할 때 원하는 인스턴스 유형을 지정)

  • 인스턴스 역할(컴퓨팅 환경을 생성할 때 원하는 인스턴스 역할을 지정)

  • 네트워크 인터페이스 서브넷(컴퓨팅 환경을 생성할 때 원하는 서브넷을 지정)

  • 인스턴스 마켓 옵션 (스팟 인스턴스 구성을AWS Batch 제어해야 함)

  • API 종료 비활성화 (인스턴스 수명 주기를AWS Batch 제어해야 함)

AWS Batch 인프라 업데이트 중에만 시작 템플릿을 새 시작 템플릿 버전으로 업데이트합니다. 자세한 정보는 컴퓨팅 환경 업데이트을 참조하세요.

시작 템플릿의 Amazon EC2 사용자 데이터

사용자는 인스턴스를 시작할 때 cloud-init에 의해 실행되는 시작 템플릿에 Amazon EC2 사용자 데이터를 제공할 수 있습니다. 사용자 데이터는 다음 사항을 포함하여 제한 없이 일반적인 구성 시나리오를 수행할 수 있습니다.

시작 템플릿의 Amazon EC2 사용자 데이터는 MIME 멀티파트 아카이브 형식이어야 합니다. 사용자 데이터가 컴퓨팅 리소스를 구성하는 데 필요한 다른 AWS Batch 사용자 데이터와 병합되기 때문입니다. 여러 사용자 데이터 블록을 단일 MIME 멀티파트 파일로 결합할 수 있습니다. 예를 들어, 도커 대몬(daemon)을 구성하는 클라우드 boothook를 Amazon ECS 컨테이너 에이전트에 대한 구성 정보를 작성하는 사용자 데이터 쉘 스크립트와 결합할 수 있습니다.

를 사용하는 경우 해당 AWS::CloudFormation::Init유형을 cfn-init 도우미 스크립트와 함께 사용하여 AWS CloudFormation일반적인 구성 시나리오를 수행할 수 있습니다.

MIME 멀티파트 파일은 다음과 같은 구성 요소로 이루어집니다.

  • 콘텐츠 유형 및 부분 경계 선언: Content-Type: multipart/mixed; boundary="==BOUNDARY=="

  • MIME 버전 선언: MIME-Version: 1.0

  • 다음 구성 요소를 포함하는 하나 이상의 사용자 데이터 블록:

    • 사용자 데이터 블록의 시작을 나타내는 시작 경계: --==BOUNDARY== 이 경계 앞의 라인은 비워 두어야 합니다.

    • 블록에 대한 콘텐츠 유형 선언: Content-Type: text/cloud-config; charset="us-ascii". 콘텐츠 유형에 대한 자세한 내용은 Cloud-Init 설명서를 참조하십시오. 콘텐츠 유형 선언 뒤의 라인은 비워 두어야 합니다.

    • 쉘 명령 또는 cloud-init 지시어 목록 등의 사용자 데이터 콘텐츠

  • MIME 멀티파트 파일의 끝을 나타내는 종료 경계: --==BOUNDARY==-- 종료 경계 앞의 라인은 비워 두어야 합니다.

다음은 사용자 자신의 파일을 작성에 사용할 수 있는 MIME 멀티파트 파일의 예입니다.

참고

Amazon EC2 콘솔에서 시작 템플릿에 사용자 데이터를 추가하는 경우 사용자 데이터를 일반 텍스트처럼 붙여 넣을 수 있습니다. 또는 파일에서 업로드할 수도 있습니다. AWS CLI 또는 AWS SDK를 사용하는 경우 이 JSON 파일에 표시된 대로 CreateLaunch템플릿을 호출할 때 먼저 사용자 데이터를 base64 인코딩하고 해당 문자열을 UserData 파라미터 값으로 제출해야 합니다.

{ "LaunchTemplateName": "base64-user-data", "LaunchTemplateData": { "UserData": "ewogICAgIkxhdW5jaFRlbXBsYXRlTmFtZSI6ICJpbmNyZWFzZS1jb250YWluZXItdm9sdW..." } }

예: 기존 Amazon EFS 파일 시스템 탑재

이 예제 MIME 멀티파트 파일은 amazon-efs-utils 패키지를 설치하고 /mnt/efs에 기존 Amazon EFS 파일 시스템을 탑재하도록 컴퓨팅 리소스를 구성합니다.

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/cloud-config; charset="us-ascii" packages: - amazon-efs-utils runcmd: - file_system_id_01=fs-abcdef123 - efs_directory=/mnt/efs - mkdir -p ${efs_directory} - echo "${file_system_id_01}:/ ${efs_directory} efs tls,_netdev" >> /etc/fstab - mount -a -t efs defaults --==MYBOUNDARY==--

예: 기본 Amazon ECS 컨테이너 에이전트 구성 기본값 재정의

이 예제 MIME 멀티파트 파일은 컴퓨팅 리소스에 대한 기본 도커 이미지 정리 설정을 재정의합니다.

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/x-shellscript; charset="us-ascii" #!/bin/bash echo ECS_IMAGE_CLEANUP_INTERVAL=60m >> /etc/ecs/ecs.config echo ECS_IMAGE_MINIMUM_CLEANUP_AGE=60m >> /etc/ecs/ecs.config --==MYBOUNDARY==--

예: 기존 Amazon FSx for Lustre 파일 시스템 탑재

이 예제 MIME 멀티파트 파일은 Extras Library에서 lustre2.10 패키지를 설치하고 /scratch에 기존 FSx for Lustre 파일 시스템과 fsx의 이름을 탑재하도록 컴퓨팅 리소스를 구성합니다. 이 예제는 Amazon Linux 2의 예제입니다. 다른 Linux 배포판의 설치 가이드는 Amazon FSx for Lustre의 Lustre 사용 설명서Lustre 클라이언트 설치를 참조하십시오. 자세한 내용은 Amazon FSx for Lustre 사용 설명서Amazon FSx 파일 시스템 자동 탑재를 참조하세요.

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/cloud-config; charset="us-ascii" runcmd: - file_system_id_01=fs-0abcdef1234567890 - region=us-east-2 - fsx_directory=/scratch - amazon-linux-extras install -y lustre2.10 - mkdir -p ${fsx_directory} - mount -t lustre ${file_system_id_01}.fsx.${region}.amazonaws.com@tcp:fsx ${fsx_directory} --==MYBOUNDARY==--

컨테이너 속성의 volumesmountPoints 멤버에서 탑재 지점을 컨테이너에 매핑해야 합니다.

{ "volumes": [ { "host": { "sourcePath": "/scratch" }, "name": "Scratch" } ], "mountPoints": [ { "containerPath": "/scratch", "sourceVolume": "Scratch" } ], }