Amazon Web Services 한국 블로그
Amazon ECS와 Amazon EBS 볼륨 통합 – 데이터 집약적 컨테이너 워크로드 지원
오늘부터 Amazon Elastic Container Service(Amazon ECS)는 더 광범위한 데이터 처리 워크로드를 더 간편하게 실행할 수 있도록 Amazon Elastic Block Store(Amazon EBS)와의 통합을 지원합니다. 스토리지 또는 컴퓨팅을 관리할 필요 없이 AWS Fargate 및 Amazon Elastic Compute Cloud(Amazon EC2)에서 실행되는 ECS 태스크를 위한 Amazon EBS 스토리지를 프로비저닝할 수 있습니다.
많은 조직이 애플리케이션을 컨테이너식 패키지로 배포하기로 선택하고 있으며 Amazon ECS와 Amazon EBS 통합이 도입됨에 따라 조직은 이제 이전보다 더 많은 유형의 워크로드를 실행할 수 있습니다.
빅 데이터에 대한 추출, 전환, 적재(ETL) 작업과 같이 높은 트랜잭션 볼륨 및 처리량을 지원하는 스토리지가 필요한 데이터 워크로드를 실행할 수 있습니다. 이러한 작업에서는 기존 데이터를 가져와서 처리를 수행하고 다운스트림 사용을 위해 이 처리된 데이터를 저장해야 합니다. 스토리지 수명 주기가 Amazon ECS에 의해 완벽하게 관리되기 때문에 인프라 업데이트를 관리하기 위해 추가 스캐폴딩을 구축할 필요가 없으며, 따라서 이제 데이터 처리 워크로드의 복원력이 향상되는 동시에 관리에 필요한 작업도 줄어듭니다.
이제 Amazon ECS에서 실행되는 컨테이너식 애플리케이션에 다양한 스토리지 옵션을 선택할 수 있습니다.
- Fargate 태스크에는 기본적으로 20GiB의 임시 스토리지가 제공됩니다. 대용량 컨테이너 이미지를 다운로드하거나 스크래치 작업을 위해 추가 스토리지 공간이 필요한 애플리케이션의 경우 Fargate 태스크에 최대 200GiB의 임시 스토리지를 구성할 수 있습니다.
- 여러 태스크에 걸쳐 공유 데이터 세트에 대한 동시 액세스가 필요한 애플리케이션의 경우 Amazon Elastic File System(Amazon EFS) 파일 시스템을 EC2 및 Fargate 모두에서 실행되는 ECS 태스크에 탑재하도록 Amazon ECS를 구성할 수 있습니다. 이러한 워크로드의 일반적인 예로는 콘텐츠 관리 시스템, 내부 DevOps 도구, 기계 학습(ML) 프레임워크와 같은 웹 애플리케이션이 있습니다. Amazon EFS는 특정 리전 전체에서 사용할 수 있도록 설계되었으며 여러 태스크에 동시에 연결할 수 있습니다.
- 태스크 간에 공유할 필요가 없는 고성능, 저비용 스토리지가 필요한 애플리케이션의 경우 Amazon EBS 스토리지를 프로비저닝하고 Amazon EC2 및 Fargate 모두에서 실행되는 태스크에 연결하도록 Amazon ECS를 구성할 수 있습니다. Amazon EBS는 가용 영역 내에서 지연 시간이 짧고 성능이 뛰어난 블록 스토리지를 제공하도록 설계되었습니다.
자세히 알아보려면 AWS 설명서에서 Amazon ECS 태스크에서 데이터 볼륨 사용 및 영구 스토리지 모범 사례를 참조하십시오.
ECS 태스크에 대한 EBS 볼륨 통합 시작하기
태스크 정의에서 컨테이너의 볼륨 탑재 지점을 구성하고 런타임 시 Amazon ECS 태스크에 대한 Amazon EBS 스토리지 요구 사항을 전달할 수 있습니다. 대부분의 사용 사례에서는 태스크에 필요한 볼륨의 크기를 제공하기만 하면 시작할 수 있습니다. 필요에 따라 모든 EBS 볼륨 속성과 볼륨 포맷에 사용할 파일 시스템을 구성할 수 있습니다.
1. 태스크 정의 생성
Amazon ECS 콘솔에서 태스크 정의로 이동하고 새 태스크 정의 생성을 선택합니다.
스토리지 섹션에서 배포 시 구성을 선택하여 EBS 볼륨을 새 구성 유형으로 설정합니다. Linux 파일 시스템의 경우 태스크당 하나의 볼륨을 프로비저닝하고 연결할 수 있습니다.
태스크 정의 생성 시 구성을 선택하면 바인드 탑재, Docker 볼륨, EFS 볼륨, Amazon FSx for Windows File Server 볼륨 또는 Fargate 임시 스토리지와 같은 기존 스토리지 옵션을 구성할 수 있습니다.
이제 태스크 정의에서 소스 EBS 볼륨인 컨테이너를 선택하고 태스크에서 볼륨이 탑재될 탑재 경로를 제공할 수 있습니다.
또한 $aws ecs register-task-definition --cli-input-json file://example.json
명령줄을 사용하여 EBS 볼륨을 추가하기 위한 태스크 정의를 등록할 수 있습니다. 다음 코드 조각은 샘플이며 태스크 정의는 JSON 형식으로 저장됩니다.
{
"family": "nginx"
...
"containerDefinitions": [
{
...
"mountPoints": [
"containerPath": "/foo",
"sourceVoumne": "new-ebs-volume"
],
"name": "nginx",
"image": "nginx"
}
],
"volumes": [
{
"name": "new-ebs-volume",
"configuredAtLaunch": true
}
]
}
2. EBS 볼륨을 사용하여 태스크 배포 및 실행
이제 ECS 클러스터에서 태스크를 선택하여 실행할 수 있습니다. ECS 클러스터로 이동하여 새 태스크 실행을 선택합니다. 컴퓨팅 옵션, 시작 유형 및 태스크 정의를 선택할 수 있습니다.
참고: 이 예제에서는 연결된 EBS 볼륨이 있는 독립 실행형 태스크를 배포하지만, 원하는 구성으로 EBS 볼륨을 사용하도록 신규 또는 기존 ECS 서비스를 구성할 수도 있습니다.
이제 새 볼륨 섹션에서 추가 스토리지를 구성할 수 있습니다. 볼륨 이름, 유형 및 탑재 지점은 태스크 정의에서 정의한 것입니다. EBS 볼륨 유형, 크기(GiB), IOPS 및 원하는 처리량을 선택합니다.
기존 EBS 볼륨을 ECS 태스크에 연결할 수는 없습니다. 하지만 기존 스냅샷에서 볼륨을 생성하려는 경우 스냅샷 ID를 선택할 수 있습니다. 새 볼륨을 생성하려는 경우 이 필드를 비워 둘 수 있습니다. Linux에서는 파일 시스템 유형을 ext3, ext4, xfs 파일 시스템 중에서 선택할 수 있습니다.
기본적으로 태스크가 종료되면 Amazon ECS는 연결된 볼륨을 삭제합니다. 태스크가 종료된 후 EBS 볼륨의 데이터를 유지해야 하는 경우 종료 시 삭제를 선택하지 않습니다. 또한 Amazon ECS가 사용자를 대신하여 API 직접 호출을 수행하도록 허용하는 관련 권한이 포함된, 볼륨 관리를 위한 AWS Identity and Access Management(IAM) 역할을 생성해야 합니다. 이 정책에 대한 자세한 내용은 AWS 설명서의 인프라 역할을 참조하십시오.
Amazon 관리형 키 또는 고객 관리형 키를 사용하여 EBS 볼륨에 암호화를 구성할 수도 있습니다. 옵션에 대해 자세히 알아보려면 AWS 설명서의 Amazon EBS 암호화를 참조하십시오.
모든 태스크 설정을 구성한 후 생성을 선택하여 태스크를 시작합니다.
3. EBS 볼륨을 사용하여 태스크 배포 및 실행
태스크가 시작되면 태스크 세부 정보 페이지에서 볼륨 정보를 확인할 수 있습니다. 태스크를 선택하고 볼륨 탭을 선택하여 생성된 EBS 볼륨 세부 정보를 찾습니다.
팀에서 EBS 볼륨의 개발 및 운영을 보다 효율적으로 구성할 수 있습니다. 예를 들어 애플리케이션 개발자는 태스크 정의에서 애플리케이션이 스토리지를 사용할 수 있을 것으로 예상하는 경로를 구성할 수 있고, DevOps 엔지니어는 애플리케이션이 배포되는 런타임에 실제 EBS 볼륨 속성을 구성할 수 있습니다.
이를 통해 DevOps 엔지니어는 EBS 볼륨 구성이 서로 다른 여러 환경(예: 개발 환경의 gp3 볼륨, 프로덕션 환경의 io2 볼륨)에 동일한 태스크 정의를 배포할 수 있습니다.
정식 출시
Amazon ECS와 Amazon EBS 통합은 미국 동부(오하이오), 미국 동부(버지니아 북부), 미국 서부(오레곤), 아시아 태평양(싱가포르), 아시아 태평양(시드니), 아시아 태평양(도쿄), 유럽(프랑크푸르트), 유럽(아일랜드), 유럽(스톡홀름) 등 9개 AWS 리전에서 정식 출시되었습니다. EBS 볼륨 및 스냅샷을 포함하여 사용한 만큼만 비용을 지불하면 됩니다. 자세히 알아보려면 AWS 설명서의 Amazon EBS 요금 페이지 및 ECS의 Amazon EBS 볼륨을 참조하십시오.
사용해 보시고 공개 로드맵, Amazon ECS용 AWS re:Post 또는 통상적인 AWS Support 연락처로 피드백으로 보내주세요.
– Channy
추신: 이 블로그 게시물을 작성하는 데 도움을 주신 AWS의 선임 엔터프라이즈 개발자 지지자 Maish Saidel-Keesing에게 특별한 감사를 전합니다.