Fargate에서 Amazon ECS 컨테이너의 디스크 공간을 늘리려면 어떻게 해야 하나요?

최종 업데이트 날짜: 2020년 12월 17일

AWS Fargate의 Amazon Elastic Container Service(Amazon ECS) 컨테이너에 대한 디스크 공간을 늘리고 싶습니다.

간략한 설명

기본적으로 플랫폼 버전 1.40으로 시작되는 Fargate 태스크에는 단일 휘발성 볼륨으로 20GB 크기의 태스크 스토리지가 포함됩니다. Fargate 시작 유형을 사용하는 태스크는 플랫폼 버전 1.4.0 이상에 대한 Amazon Elastic File System(Amazon EFS) 파일 시스템 지원을 포함합니다. 자세한 내용은 사용 가능한 AWS Fargate 플랫폼 버전을참조하세요.

기본 컨테이너 호스트 시스템에서 디스크 스토리지가 부족하면 "디바이스에 남은 공간이 없음(No space left on device)" 오류 메시지가 표시됩니다. 즉, 컨테이너 내부에서 실행되는 애플리케이션 워크로드에는 대용량 데이터 집합 및 파일을 처리하기 위한 대용량 또는 영구 스토리지가 필요합니다. 이 오류는 Fargate 태스크를 Amazon EFS 볼륨과 통합하여 해결할 수 있습니다.

중요: Amazon EFS 볼륨을 생성할 때 Fargate 서비스에 할당된 것과 동일한 Amazon Virtual Private Cloud(Amazon VPC)와 서브넷을 사용합니다.

해결 방법

1.    Amazon EFS 마운트 대상에 대한 보안 그룹을 생성한 다음, 소스의 태스크 보안 그룹으로부터 포트 2049의 NFS 트래픽을 허용하는 인바운드 규칙을 추가합니다.

2.    Amazon EFS 파일 시스템을 생성한 다음, 1단계의 보안 그룹을 마운트 대상에 연결합니다.

참고: 기본적으로 마운트 대상은 지정된 AWS 리전의 각 가용 영역에 구성됩니다. Fargate 서비스에 대한 VPC 서브넷이 있는 모든 가용 영역을 선택합니다.

3.    파일 시스템의 파일 시스템 ID(예: fs-12345678)를 기록합니다.

4.    태스크 정의를 생성 또는 업데이트하여 Amazon EFS 파일 시스템이 있는 Amazon ECS 태스크의 볼륨을 구성합니다. 예를 들어, 다음과 같습니다.

"volumes": [ 
   {
      "name": "efs-test-volume",
      "efsVolumeConfiguration": {
           "fileSystemId": "fs-12345678", 
           "transitEncryption": "ENABLED" 
      }
   } 
 ]

참고: fs-12345678을 파일 시스템 ID로 바꿉니다.

5.    컨테이너 정의 섹션을 사용하여 컨테이너 내부의 볼륨에 대한 마운트 지점을 생성합니다. 예를 들어, 다음과 같습니다.

"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" 
   }
]

참고: containerPath는 볼륨을 마운트하는 컨테이너 내 경로입니다. sourceVolume은 4단계에서 정의한 볼륨과 이름이 같아야 합니다.

6.    업데이트된 태스크 정의를 사용하여 태스크를 실행합니다.

참고: 서비스와 연결된 태스크의 경우 새 태스크 정의 개정을 선택하여 서비스를 업데이트합니다.</p


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요합니까?