Amazon ECS 작업 정의를 생성하고 Amazon EFS를 사용하여 EC2 인스턴스에 파일 시스템을 마운트 - AWS 권장 가이드

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

Amazon ECS 작업 정의를 생성하고 Amazon EFS를 사용하여 EC2 인스턴스에 파일 시스템을 마운트

작성자: Durga Prasad Cheepuri(AWS)

환경: PoC 또는 파일럿

기술: 컨테이너 및 마이크로서비스, 관리 및 거버넌스, CloudNative 스토리지 및 백업, 웹 및 모바일 앱

AWS 서비스: Amazon ECS, Amazon EFS

요약

이 패턴은 Amazon Elastic File System(Amazon EFS)을 사용하여 해당 EC2 인스턴스에 파일 시스템을 마운트하면서 Amazon Web Services(AWS) 클라우드의 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 실행되는 Amazon Elastic Container Service(Amazon ECS) 작업 정의를 생성하는 코드 샘플 및 단계를 제공합니다. Amazon EFS를 사용하는 Amazon ECS 작업은 작업 정의에서 지정한 파일 시스템을 자동으로 마운트하고 AWS 리전의 모든 가용 영역에 있는 작업 컨테이너에서 이러한 파일 시스템을 사용할 수 있도록 합니다.

영구 스토리지 및 공유 스토리지 요구 사항을 충족하기 위해 Amazon ECS와 Amazon EFS를 함께 사용할 수 있습니다. 예를 들어, 고가용성을 위해 서로 다른 가용 영역에서 실행 중인 활성 및 대기 ECS 컨테이너 페어가 있는 애플리케이션의 영구 사용자 데이터와 애플리케이션 데이터를 저장하는 데 Amazon EFS를 사용할 수 있습니다. 또한 Amazon EFS를 사용하여 ECS 컨테이너와 분산 작업 워크로드에서 병렬로 액세스할 수 있는 공유 데이터를 저장할 수 있습니다.

Amazon EFS를 Amazon ECS와 함께 사용하려면 작업 정의에 하나 이상의 볼륨 정의를 추가할 수 있습니다. 볼륨 정의에는 Amazon EFS 파일 시스템 ID, 액세스 포인트 ID, 그리고 전송 중 AWS Identity and Access Management(IAM) 인증 또는 전송 계층 보안(TLS) 암호화를 위한 구성이 포함됩니다. 작업 정의 내에서 컨테이너 정의를 사용하여 컨테이너가 실행될 때 마운트되는 작업 정의 볼륨을 지정할 수 있습니다. Amazon EFS 파일 시스템을 사용하는 작업이 실행되면 Amazon ECS는 파일 시스템이 마운트되어 액세스가 필요한 컨테이너에서 사용할 수 있도록 합니다.

사전 조건 및 제한 사항

사전 조건 

제한 사항

  • 1.35.0 이전의 Amazon ECS 컨테이너 에이전트 버전은 EC2 시작 유형을 사용하는 작업의 Amazon EFS 파일 시스템을 지원하지 않습니다.

아키텍처

다음 다이어그램은 Amazon ECS를 사용하여 작업 정의를 생성하고 ECS 컨테이너의 EC2 인스턴스에 Amazon EFS 파일 시스템을 마운트하는 애플리케이션의 예를 보여줍니다.

AWS 클라우드 architecture showing ECS task definition, ECS service, and EFS file system interaction.

이 다이어그램은 다음 워크플로를 보여줍니다.

  1. Amazon EFS 파일 시스템을 생성합니다.

  2. 컨테이너로 작업 정의를 생성합니다.

  3. Amazon EFS 파일 시스템을 마운트하도록 컨테이너 인스턴스를 구성합니다. 작업 정의는 볼륨 마운트를 참조하여, 컨테이너 인스턴스가 Amazon EFS 파일 시스템을 사용할 수 있습니다. ECS 작업은 해당 작업이 생성된 컨테이너 인스턴스와 상관없이 동일한 Amazon EFS 파일 시스템에 액세스할 수 있습니다.

  4. 작업 정의의 인스턴스 3개를 사용하여 Amazon ECS 서비스를 생성합니다.

기술 스택

  • Amazon EC2

  • Amazon ECS

  • Amazon EFS

도구

  • Amazon EC2 – Amazon Elastic Compute Cloud(Amazon EC2)는 AWS 클라우드에서 확장 가능한 컴퓨팅 용량을 제공합니다. Amazon EC2를 사용하여 필요에 따라 많거나 적은 수의 가상 서버를 시작하고 스케일 아웃 또는 스케일 인할 수 있습니다.

  • Amazon ECS – Amazon Elastic Container Service(Amazon ECS)는 클러스터에서 컨테이너를 실행, 중지 및 관리하기 위한 컨테이너 관리 서비스로서 확장성과 속도가 뛰어납니다. AWS Fargate에서 관리하는 서버리스 인프라에서 작업 및 서비스를 실행할 수 있습니다. 또는 인프라에 대한 더 세부적인 제어를 위해 관리하는 EC2 인스턴스의 클러스터에서 작업과 서비스를 실행할 수 있습니다.

  • Amazon EFS – Amazon Elastic File System(Amazon EFS)은 AWS 클라우드 서비스 및 온프레미스 리소스와 함께 사용할 수 있는 간단하고 확장 가능하며 완전 관리형 탄력적인 NFS 파일 시스템을 제공합니다.

  • AWS CLI – AWS Command Line Interface(AWS CLI)는 명령줄 쉘에서 명령을 사용하여 AWS 서비스와 상호 작용할 수 있는 오픈 소스 도구입니다. 최소한의 구성으로 AWS CLI 명령을 사용하여 터미널 프로그램에 있는 명령 프롬프트에서 브라우저 기반 AWS Management Console에서 제공되는 것과 동일한 기능을 구현하는 명령을 실행할 수 있습니다.

에픽

작업설명필요한 기술
AWS Management Console을 사용하여 Amazon EFS 파일 시스템을 생성합니다.
  1. Amazon EFS 파일 시스템을 생성하고 컨테이너가 포함된 VPC를 선택합니다. 참고: 다른 VPC를 사용하는 경우 VPC 피어링 연결을 설정하세요.

  2. 파일 시스템 ID를 기록합니다.

AWS DevOps
작업설명필요한 기술
Amazon EFS 파일 시스템을 사용하여 작업 정의를 생성합니다.

새로운 Amazon ECS 콘솔 또는 다음과 같은 구성의 클래식 Amazon ECS 콘솔을 사용하여 작업 정의를 생성합니다.

  • 새 콘솔을 사용하는 경우 앱 환경Amazon EC2 인스턴스를 선택하세요. 클래식 콘솔을 사용하는 경우 시작 유형으로 EC2를 선택하세요.

  • 볼륨을 추가합니다. 볼륨 이름을 입력하고 볼륨 유형으로 EFS를 선택한 다음 앞서 기록해 둔 파일 시스템 ID를 선택합니다. 루트 디렉터리의 경우 Amazon ECS 컨테이너 호스트에서 호스팅하려는 Amazon EFS 파일 시스템 경로를 선택합니다.

AWS DevOps
AWS CLI를 사용하여 작업 정의를 생성합니다.
  1. 작업 정의의 입력 파라미터 플레이스홀더가 있는 JSON 템플릿을 생성하려면 다음 명령을 실행합니다.

    aws ecs register-task-definition --generate-cli-skeleton
  2. JSON 템플릿을 사용하여 작업 정의를 생성하려면 다음 명령을 실행합니다.

    aws ecs register-task-definition --cli-input-json file://<path_to_your_json_file>
  3. 첨부된 task_definition_parameters.json 파일을 기반으로 JSON 템플릿에 입력 파라미터를 입력합니다. 참고: 입력 파라미터에 대한 자세한 내용은 작업 정의 파라미터 (Amazon ECS 설명서) 및 register-task-definition(AWS CLI 명령 참조) 을 참조하십시오.

AWS DevOps

관련 리소스

첨부

이 문서와 관련된 추가 콘텐츠에 액세스하려면 attachment.zip 파일의 압축을 풉니다.