에서 Amazon EC2 시작 템플릿 사용 AWS Batch - AWS Batch

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

에서 Amazon EC2 시작 템플릿 사용 AWS Batch

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

참고

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

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

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

라는 파일에 JSON를 저장lt-data.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

  • 보안 그룹 IDs

  • Amazon EC2 태그

다음 시작 템플릿 파라미터는 무시됩니다 AWS Batch.

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

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

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

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

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

AWS Batch 는 인프라 업데이트 중에 시작 템플릿을 새 시작 템플릿 버전으로만 업데이트합니다. 자세한 내용은 컴퓨팅 환경 업데이트 단원을 참조하십시오.

기본 및 재정의 시작 템플릿

컴퓨팅 환경의 기본 시작 템플릿과 특정 인스턴스 유형 및 패밀리의 재정의 시작 템플릿을 정의할 수 있습니다. 이는 컴퓨팅 환경의 대부분의 인스턴스 유형에 기본 템플릿이 사용되도록 유용할 수 있습니다.

대체 변수 $Default 및는 특정 버전의 이름을 지정하는 대신 사용할 $Latest 수 있습니다. 재정의 시작 템플릿을 제공하지 않으면 기본 시작 템플릿이 자동으로 적용됩니다.

$Default 또는 $Latest 변수를 사용하는 경우는 컴퓨팅 환경이 생성될 때 현재 정보를 AWS Batch 적용합니다. 향후 기본 또는 최신 버전이 변경되는 경우 UpdateComputeEnvironment 또는 AWS Management Console -를 통해 정보를 업데이트해야 합니다 AWS Batch.

유연성을 높이기 위해 특정 컴퓨팅 인스턴스 유형 또는 패밀리에 적용되도록 재정의 시작 템플릿을 정의할 수 있습니다.

참고

컴퓨팅 환경당 최대 열(10) 개의 재정의 시작 템플릿을 지정할 수 있습니다.

targetInstanceTypes 파라미터를 사용하여이 재정의 시작 템플릿을 사용해야 하는 인스턴스 유형 또는 패밀리를 선택합니다. 인스턴스 유형 또는 패밀리는 먼저 instanceTypes 파라미터로 식별되어야 합니다.

시작 템플릿 재정의를 정의하고 나중에 제거하기로 결정하는 경우 빈 배열을 전달하여 UpdateComputeEnvironment API 작업에서 overrides 파라미터를 설정 해제할 수 있습니다. UpdateComputeEnvironment API 작업을 제출할 때 overrides 파라미터를 포함하지 않도록 선택할 수도 있습니다. 자세한 내용은을 참조하세요. LaunchTemplateSpecification.overrides

자세한 내용은 AWS Batch API 참조 가이드LaunchTemplateSpecificationOverride.targetInstanceTypes의 섹션을 참조하세요.

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

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

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

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

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==--. 종료 경계 앞의 라인은 비워 두어야 합니다.

참고

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

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