모범 사례 - 영구 스토리지 - Amazon Elastic Container Service

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

모범 사례 - 영구 스토리지

Amazon ECS를 사용하여 상태 저장 컨테이너화된 애플리케이션을 대규모로 실행할 수 있습니다.AWS기본적으로 임시 컨테이너에 데이터 지속성을 제공하는 Amazon EFS, Amazon EBS 또는 Windows 파일 서버용 Amazon FSX와 같은 스토리지 서비스를 제공합니다. 용어데이터 지속성는 데이터 자체가 데이터를 생성한 프로세스보다 오래 지속됨을 의미합니다. 데이터 지속성AWS는 컴퓨팅과 스토리지 서비스를 결합함으로써 달성됩니다. Amazon EC2 와 마찬가지로 Amazon ECS를 사용하여 컨테이너화된 애플리케이션의 수명 주기를 해당 애플리케이션에서 사용하고 생성하는 데이터와 분리할 수도 있습니다. 사용AWS스토리지 서비스를 사용하는 경우 Amazon ECS 작업은 작업이 종료된 후에도 데이터를 유지할 수 있습니다.

기본적으로 컨테이너는 생성 된 데이터를 유지하지 않습니다. 컨테이너가 종료되면 쓰기 가능한 레이어에 쓴 데이터가 컨테이너로 파괴됩니다. 따라서 로컬에 데이터를 저장할 필요가없는 상태 비 저장 응용 프로그램에 컨테이너가 적합합니다. 데이터 지속성이 필요한 컨테이너화된 애플리케이션에는 애플리케이션의 컨테이너가 종료될 때 삭제되지 않는 스토리지 백엔드가 필요합니다.


            컨테이너의 저장 계층을 보여주는 다이어그램입니다.

컨테이너 이미지는 일련의 레이어에서 만들어집니다. 각 레이어는 이미지가 빌드 된 Dockerfile의 명령을 나타냅니다. 컨테이너를 제외하고 각 레이어는 읽기 전용입니다. 즉, 컨테이너를 만들 때 쓰기 가능한 레이어가 기본 레이어 위에 추가됩니다. 컨테이너가 생성, 삭제 또는 수정하는 모든 파일은 쓰기 가능한 레이어에 기록됩니다. 컨테이너가 종료되면 쓰기 가능한 레이어도 동시에 삭제됩니다. 동일한 이미지를 사용하는 새 컨테이너에는 자체 쓰기 가능한 레이어가 있습니다. 이 레이어에는 변경 사항이 포함되어 있지 않습니다. 따라서 컨테이너의 데이터는 항상 컨테이너 쓰기 가능 계층 외부에 저장되어야합니다.

Amazon ECS를 사용하면 볼륨을 사용하여 상태 저장 컨테이너를 실행할 수 있습니다. Amazon ECS는 기본적으로 Amazon EFS S와 통합되며 Amazon EBS와 통합된 볼륨을 사용합니다. 윈도우 컨테이너의 경우 Amazon ECS는 윈도우 파일 서버용 아마존 FSX와 통합하여 영구 스토리지를 제공합니다.

컨테이너에 적합한 스토리지 유형 선택

Amazon ECS 클러스터에서 실행 중인 애플리케이션은 다양한AWS스토리지 서비스 및 타사 제품을 사용하여 상태 저장 워크로드를 위한 영구 스토리지를 제공합니다. 애플리케이션의 아키텍처 및 스토리지 요구 사항에 따라 컨테이너화된 애플리케이션의 스토리지 백엔드를 선택해야 합니다. 에 대한 자세한 내용AWS스토리지 서비스에 대한 자세한 내용은on 클라우드 스토리지AWS.

Linux 인스턴스가 포함되어 있거나 Fargate 와 함께 사용되는 Amazon ECS 클러스터의 경우 Amazon ECS는 Amazon EFS 및 Amazon EBS와 통합하여 컨테이너 스토리지를 제공합니다. Amazon EFS와 Amazon EBS의 가장 독특한 차이점은 수천 개의 Amazon ECS 작업에 Amazon EFS 파일 시스템을 동시에 마운트할 수 있다는 점입니다. 반대로 Amazon EBS 볼륨은 동시 액세스를 지원하지 않습니다. 따라서 Amazon EFS 수평으로 확장되는 컨테이너화된 애플리케이션에 권장되는 스토리지 옵션입니다. 이것은 동시성을 지원하기 때문입니다. Amazon EFS 여러 가용 영역에 데이터를 중복 저장하며 가용 영역과 상관없이 Amazon ECS 작업에서 지연 시간이 짧은 액세스를 제공합니다. Amazon EFS Amazon EC2 와 Fargate 트에서 모두 실행되는 작업을 지원합니다.

밀리 초 미만의 대기 시간이 필요하고 수평으로 확장 될 때 공유 파일 시스템이 필요하지 않은 트랜잭션 데이터베이스와 같은 응용 프로그램이 있다고 가정합니다. 이러한 애플리케이션의 경우 영구 스토리지에 Amazon EBS 볼륨을 사용하는 것이 좋습니다. 현재 Amazon ECS는 Amazon EC2에서 호스팅되는 작업에 대해서만 Amazon EBS 볼륨을 지원합니다. Fargate 의 작업에는 Amazon EBS 볼륨에 대한 Support 사용할 수 없습니다. Amazon ECS 작업에 Amazon EBS 볼륨을 사용하기 전에 먼저 Amazon EBS 볼륨을 컨테이너 인스턴스에 연결하고 작업 수명 주기와 별도로 볼륨을 관리해야 합니다.

Windows 인스턴스가 포함된 클러스터의 경우 Windows 파일 서버용 Amazon FSx는 컨테이너에 영구 스토리지를 제공합니다. Amazon FSx for Windows File Server 파일 시스템은 다중 AZ 배포를 지원합니다. 이러한 배포를 통해 여러 가용 영역에서 실행되는 Amazon ECS 작업과 파일 시스템을 공유할 수 있습니다.

또한 바인드 마운트 또는 Docker 볼륨을 사용하여 Amazon EC2에서 호스팅되는 Amazon ECS 작업의 데이터 지속성을 위해 Amazon EC2 인스턴스 스토리지를 사용할 수 있습니다. 바인드 마운트 또는 Docker 볼륨을 사용할 때 컨테이너는 컨테이너 인스턴스 파일 시스템에 데이터를 저장합니다. 컨테이너 저장을 위해 호스트 파일 시스템을 사용하는 한 가지 제한은 데이터가 한 번에 단일 컨테이너 인스턴스에서만 사용할 수 있다는 것입니다. 즉, 컨테이너는 데이터가있는 호스트에서만 실행될 수 있습니다. 따라서 데이터 복제가 응용 프로그램 수준에서 처리되는 경우에만 호스트 저장소를 사용하는 것이 좋습니다.