AWS Fargate에서 Amazon ECS 컨테이너의 디스크 공간을 늘리려면 어떻게 해야 합니까?
AWS Fargate에서 Amazon Elastic Container Service(Amazon ECS) 컨테이너의 디스크 공간을 늘리고 싶습니다.
간략한 설명
기본적으로 플랫폼 버전 1.40에서 실행되는 Fargate 작업에는 20GiB의 작업 스토리지 크기가 단일 임시 볼륨으로 포함됩니다. 20GiB 이상의 스토리지가 필요한 경우 다음 옵션 중 하나를 사용하여 추가 스토리지를 구성하십시오.
- 최대 200GiB의 스토리지가 필요한 경우 Fargate의 임시 스토리지 옵션을 사용하십시오. 임시 스토리지는 비영구 스토리지입니다.
- 확장형 파일 스토리지가 필요한 경우 Amazon Elastic File System(Amazon EFS) 볼륨을 사용하십시오. Amazon EFS 볼륨은 영구 스토리지를 제공합니다.
- 스토리지 및 데이터 집약적 스토리지가 필요한 경우 Fargate에 EBS 볼륨을 연결합니다. EBS 볼륨 옵션은 비영구적입니다.
중요: Amazon EFS 볼륨을 만들 때는 Fargate 서비스에 할당된 것과 동일한 Amazon Virtual Private Cloud(Amazon VPC) 및 서브넷을 사용하십시오.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참고하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
Fargate에서 Amazon ECS 컨테이너의 디스크 공간을 늘리려면 사용 사례에 따라 작업을 완료하십시오.
임시 스토리지 구성
다음 단계를 완료하십시오.
-
작업 정의를 만들거나 업데이트하여 작업의 임시 스토리지를 구성합니다. 예를 들면 다음과 같습니다.
"containerDefinitions": [ { "memory": 128, "essential": true, "name": "nginx", "image": "nginx" } ] "ephemeralStorage": { "sizeInGiB": 30 } -
업데이트된 작업 정의를 사용하여 작업을 실행합니다.
참고: 서비스와 연결된 작업의 경우 새 작업 정의 개정을 선택하여 서비스를 업데이트합니다.
자세한 내용은 Amazon ECS에서 바인드 탑재 사용을 참조하십시오.
Amazon EFS 볼륨으로 스토리지 구성
다음 단계를 완료하십시오.
- Amazon EFS 탑재 대상에 대한 보안 그룹을 만듭니다. 그런 다음 소스의 작업 보안 그룹에서 포트 2049의 NFS 트래픽을 허용하는 인바운드 규칙을 추가합니다.
- Amazon EFS 파일 시스템을 만든 다음 보안 그룹을 탑재 대상에 연결합니다.
참고: 기본적으로 탑재 대상은 지정된 AWS 리전의 각 가용 영역에 구성됩니다. Fargate 서비스의 VPC 서브넷이 위치한 모든 가용 영역을 선택합니다. - 파일 시스템의 파일 시스템 ID를 기록해 둡니다. 예를 들면 fs-12345678입니다.
- 작업 정의를 만들거나 업데이트하여 Amazon EFS 파일 시스템이 있는 Amazon ECS 작업의 볼륨을 구성합니다. 예를 들면 다음과 같습니다.
참고: fs-12345678을 파일 시스템 ID로 바꾸십시오."volumes": [ { "name": "efs-test-volume", "efsVolumeConfiguration": { "fileSystemId": "fs-12345678", "transitEncryption": "ENABLED" } } ] - 컨테이너 정의 섹션을 사용하여 컨테이너 내부 볼륨의 탑재 지점을 만듭니다. 예를 들면 다음과 같습니다.
참고: containerPath는 볼륨을 탑재할 컨테이너 내부의 경로입니다. sourceVolume은 볼륨의 이름입니다."containerDefinitions": [ { "memory": 128, "portMappings": [ { "hostPort": 80, "containerPort": 80, "protocol": "tcp" } ], "essential": true, "mountPoints": [ { "containerPath": "/mount/path/inside/container", "sourceVolume": "efs-test-volume" } ], "name": "nginx", "image": "nginx" } ] - 업데이트된 작업 정의를 사용하여 작업을 실행합니다.
참고: 서비스와 연결된 작업의 경우 새 작업 정의 개정을 선택하여 서비스를 업데이트합니다.
Fargate에 EBS 볼륨 연결
다음 단계를 완료하십시오.
-
작업 정의를 만들거나 업데이트하여 시작 시 구성할 EBS 볼륨을 구성합니다. true로 설정된 "configuredAtLaunch" 옵션을 사용합니다. 예를 들면 다음과 같습니다.
"containerDefinitions": [ { "name": "nginx", "image": "public.ecr.aws/nginx/nginx:latest", "networkMode": "awsvpc", "portMappings": [ { "name": "nginx-80-tcp", "containerPort": 80, "hostPort": 80, "protocol": "tcp", "appProtocol": "http" } ], "mountPoints": [ { "sourceVolume": "myEBSVolume", "containerPath": "/mount/ebs", "readOnly": true } ] } ], "volumes": [ { "name": "myEBSVolume", "configuredAtLaunch": true } ] -
독립형 작업을 시작합니다. 또는 볼륨 구성을 JSON의 일부로 사용하여 작업을 서비스의 일부로 시작합니다.
독립형 작업 JSON 예시:{ "cluster": "mycluster", "taskDefinition": "mytaskdef", "volumeConfigurations": [ { "name": "datadir", "managedEBSVolume": { "volumeType": "gp3", "sizeInGiB": 100, "roleArn": "arn:aws:iam:1111222333:role/ecsInfrastructureRole", "encrypted": true, "kmsKeyId": "arn:aws:kms:region:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } } ] }참고: 이전 예에서 볼 수 있듯이 작업을 시작하는 데에는 스냅샷이 필요하지 않습니다.
**서비스 JSON 예시: **{ "cluster": "mycluster", "taskDefinition": "mytaskdef", "serviceName": "mysvc", "desiredCount": 2, "volumeConfigurations": [ { "name": "myEbsVolume", "managedEBSVolume": { "roleArn":"arn:aws:iam:1111222333:role/ecsInfrastructureRole", "snapshotId": "snap-12345" } } ] }참고: roleArn을 계정 ecsInfrastructureRole로 바꾸십시오. snapshotId를 볼륨을 만들려는 스냅샷 ID로 바꾸십시오.
- 언어
- 한국어
