View a markdown version of this page

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

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

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

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

시작 템플릿은 AMIs 선택 순서에 우선하는 AMI를 지정할 수 있습니다. 자세한 내용은 AMI 선택 순서 단원을 참조하십시오.

참고

AWS Batch 컴퓨팅 환경에 대한 사용자 지정 시작 템플릿을 지정할 때 AWS Batch 는 기본 Auto Scaling 그룹에 시작 템플릿을 직접 연결하지 않습니다. 대신는 Auto Scaling 그룹에 대한 별도의 배치 관리형 시작 템플릿을 AWS Batch 생성하고 사용자 지정 시작 템플릿의 관련 설정을 여기에 통합합니다. 따라서 Auto Scaling 그룹과 연결된 시작 템플릿이 원래 지정한 시작 템플릿과 다릅니다. 이는 예상된 동작입니다.

참고

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

시작 템플릿을 컴퓨팅 환경과 연결하려면 먼저 시작 템플릿을 생성해야 합니다. 사용자는 Amazon EC2 콘솔에서 시작 템플릿을 생성할 수 있습니다. 또는 AWS CLI 또는 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

  • 보안 그룹 ID

  • Amazon EC2 태그

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

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

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

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

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

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

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 멀티파트 파일로 결합할 수 있습니다. 예를 들어, 도커 대몬(daemon)을 구성하는 클라우드 boothook를 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 또는 AWS SDK를 사용하는 경우 먼저 사용자 데이터를 base64 인코딩하고이 JSON 파일에 표시된 대로 CreateLaunchTemplate을 호출할 때 해당 문자열을 UserData 파라미터 값으로 제출해야 합니다.

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