Amazon ECS 태스크 정의에 Amazon S3 Files 볼륨 지정하기
Amazon ECS 태스크 정의에 Amazon S3 Files 볼륨 지정하기
Amazon ECS 콘솔, AWS CLI, AWS API를 사용해 태스크 정의에서 S3 Files 볼륨을 구성하는 방법을 알아봐요.
출처: 문서
본문
Amazon ECS 콘솔, AWS CLI, AWS API를 사용해 Amazon ECS 태스크 정의에서 S3 Files 볼륨을 구성할 수 있어요.
Amazon ECS 콘솔 사용
- Amazon ECS 콘솔(https://console.aws.amazon.com/ecs/)을 엽니다.
- 내비게이션 창에서 Task definitions를 선택합니다.
- Create new task definition을 선택하거나 기존 태스크 정의를 선택하고 새 리비전을 만듭니다.
- Infrastructure 섹션에서 필요한 권한으로 구성된 Task IAM Role이 있는지 확인합니다.
- Storage 섹션에서 Add volume을 선택합니다.
- Volume type에서 S3 Files를 선택합니다.
- File system ARN에 S3 파일 시스템의 전체 ARN을 입력합니다. ARN 형식은 다음과 같아요:
arn:{partition}:s3files:{region}:{account-id}:file-system/fs-xxxxx
- (선택 사항) Root directory에 파일 시스템 내에서 루트로 마운트할 경로를 입력합니다. 지정하지 않으면 파일 시스템의 루트(
/)가 사용돼요. - (선택 사항) Transit encryption port에 Amazon ECS 호스트와 S3 파일 시스템 사이에 암호화된 데이터를 보내기 위한 포트 번호를 입력합니다. 전송 암호화 포트를 지정하지 않으면 Amazon EFS 마운트 헬퍼가 사용하는 포트 선택 전략을 사용해요.
- (선택 사항) Access point ARN에서 드롭다운 목록의 S3 Files access point를 선택합니다.
- Container mount points 섹션에서 컨테이너를 선택하고 컨테이너 내부에 볼륨이 마운트되어야 하는 로컬 마운트 경로를 지정합니다.
- Create를 선택해 태스크 정의를 만듭니다.
AWS CLI 사용
AWS CLI로 태스크 정의에 S3 Files 볼륨을 지정하려면 볼륨 정의에서 s3filesVolumeConfiguration 파라미터와 함께 register-task-definition 명령을 사용합니다.
S3 Files 볼륨을 정의하고 컨테이너에 마운트하는 예시 태스크 정의 JSON 스니펫:
{
"family": "s3files-task-example",
"taskRoleArn": "arn:aws:iam::123456789012:role/ecsTaskRole",
"containerDefinitions": [
{
"name": "my-container",
"image": "my-image:latest",
"essential": true,
"mountPoints": [
{
"containerPath": "/mnt/s3data",
"sourceVolume": "my-s3files-volume"
}
]
}
],
"volumes": [
{
"name": "my-s3files-volume",
"s3filesVolumeConfiguration": {
"fileSystemArn": "arn:aws:s3files:us-east-1:123456789012:file-system/fs-0123456789abcdef0",
"rootDirectory": "/",
"transitEncryptionPort": 2999
}
}
]
}
태스크 정의를 등록합니다:
aws ecs register-task-definition --cli-input-json file://s3files-task-def.json
access point를 사용하려면 accessPointArn 파라미터를 포함하세요:
{
"name": "my-s3files-volume",
"s3filesVolumeConfiguration": {
"fileSystemArn": "arn:aws:s3files:us-east-1:123456789012:file-system/fs-0123456789abcdef0",
"rootDirectory": "/",
"transitEncryptionPort": 2999,
"accessPointArn": "arn:aws:s3files:us-east-1:123456789012:file-system/fs-0123456789abcdef0/access-point/fsap-0123456789abcdef0"
}
}