View a markdown version of this page

3단계: 시작 템플릿을 생성하여 컴퓨팅 환경에 연결 - AWS Batch

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

3단계: 시작 템플릿을 생성하여 컴퓨팅 환경에 연결

인스턴스가 시작되면 스크립트는 자동으로 user-data를 설치하고Fluent Bit, IMDSv2에서 인스턴스 ID를 검색하고, Amazon S3에서 구성을 동기화하고, Fluent Bit 서비스를 시작합니다. 시작 템플릿에 대한 자세한 내용은 에서 Amazon EC2 시작 템플릿 사용 AWS Batch의 내용을 참조하세요. IMDS 구성에 대한 자세한 내용은 섹션을 참조하세요인스턴스 메타데이터 서비스(IMDS) 구성.

샘플 스크립트는 컴패니언 GitHub user-data 리포지토리를 참조하세요. GitHub 시작 템플릿에 launch-template-userdata-minimal.txt 파일을 사용합니다. 이 파일은 user-data 크기를 줄이기 위해 주석을 제외합니다. launch-template-userdata.txt 파일은 참조용으로 주석이 달린 버전입니다. 사용하기 전에 템플릿에서 다음 자리 표시자를 바꿉니다.

  • <BUCKET_NAME> - Amazon S3 버킷의 이름입니다.

  • <FLUENT_BIT_VERSION> - 설치할 Fluent Bit 버전입니다. 사용 가능한 최신 버전을 설치하려면 비워 둡니다.

사전 조건
AWS Console

시작 템플릿을 생성합니다.

  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 시작 템플릿을 선택합니다.

  3. Create launch template(시작 템플릿 생성)을 선택합니다.

  4. 시작 템플릿 이름에와 같은 이름을 입력합니다batch-host-logs.

  5. Advanced details(고급 세부 정보)를 확장합니다.

  6. 메타데이터 버전(Metadata version)V2만 해당(토큰 필요)(V2 only (token required))를 선택합니다.

  7. 메타데이터 응답 홉 제한에를 입력합니다2.

  8. 사용자 데이터로 스크롤하고 동반 GitHub user-data 리포지토리에서 스크립트를 붙여넣습니다. GitHub <BUCKET_NAME>을 버킷의 이름으로 바꿉니다. <FLUENT_BIT_VERSION>를 원하는 Fluent Bit 버전으로 바꾸거나 최신 버전의 경우 비워 둡니다.

  9. Create launch template(시작 템플릿 생성)을 선택합니다.

컴퓨팅 환경을 생성합니다.

  1. https://console.aws.amazon.com/batch/ AWS Batch 콘솔을 엽니다.

  2. 탐색 창에서 컴퓨팅 환경를 선택합니다.

  3. 생성(Create)을 선택합니다.

  4. 컴퓨팅 환경에서 Amazon Elastic Compute Cloud(Amazon EC2)를 선택합니다.

  5. 오케스트레이션 유형관리형을 선택합니다.

  6. 이름에와 같은 이름을 입력합니다my-host-logs-ce.

  7. 인스턴스 역할에서와 같이 2단계에서 업데이트하거나 생성한 인스턴스 역할을 선택합니다ecsInstanceRole.

  8. 다음을 선택합니다.

  9. 인스턴스 구성에서 시작 템플릿을 확장하고 생성한 템플릿을 선택합니다.

  10. 나머지 필드를 작성하고 컴퓨팅 환경 생성을 선택합니다.

AWS CLI

시작 템플릿을 생성합니다. 컴패니언 GitHub user-data 리포지토리의 스크립트를 파일에 저장하고 base64로 인코딩합니다. GitHub

aws ec2 create-launch-template \ --launch-template-name batch-host-logs \ --launch-template-data '{ "MetadataOptions": { "HttpTokens": "required", "HttpPutResponseHopLimit": 2 }, "UserData": "BASE64_ENCODED_USER_DATA" }'

시작 템플릿을 사용하여 컴퓨팅 환경을 생성합니다.

aws batch create-compute-environment \ --compute-environment-name my-host-logs-ce \ --type MANAGED \ --compute-resources '{ "type": "EC2", "minvCpus": 0, "maxvCpus": 256, "instanceTypes": ["optimal"], "subnets": ["subnet-12345678"], "securityGroupIds": ["sg-12345678"], "instanceRole": "arn:aws:iam::111122223333:instance-profile/ecsInstanceRole", "launchTemplate": { "launchTemplateName": "batch-host-logs", "version": "$Latest" } }'
참고

작업 컨테이너2에서 실행되는 애플리케이션이 IMDSv2 엔드포인트에 도달하려면 추가 네트워크 홉이 필요하기 때문에 메타데이터 응답 홉 제한은 시작 템플릿에서 로 설정됩니다. 이 설정이 없으면 컨테이너의 IMDSv2 요청이 실패합니다.