EC2에서 실행 중인 ECS 컨테이너 또는 작업에 EFS 파일 시스템을 탑재하려면 어떻게 해야 합니까?

3분 분량
0

Amazon Amazon Elastic Container Service(Amazon ECS)와 함께 Amazon Elastic File System (Amazon EFS)을 사용하거나 Amazon Elastic Compute Cloud(Amazon EC2) 시작 유형을 사용하는 작업을 사용하려고 합니다. 어떻게 해야 합니까?

간략한 설명

EC2 인스턴스에서 실행 중인 작업 또는 컨테이너에 EFS 파일 시스템을 탑재할 수 있습니다. 이렇게 하려면 볼륨 작업 정의 파라미터에 파일 시스템 ID를 제공하는 작업 정의를 생성합니다. 이렇게 하면 EFS 파일 시스템이 작업 정의에서 지정한 작업에 자동으로 탑재됩니다.

필수 리소스:

해결 방법

네트워크 요구 사항

  • EFS 파일 시스템과 ECS 클러스터는 동일한 VPC에 있어야 합니다.
  • EFS 파일 시스템에 연결된 보안 그룹은 ECS 컨테이너 인스턴스 및 ECS 작업에서 포트 2049(네트워크 파일 시스템 또는 NFS)에 대한 인바운드 연결을 허용해야 합니다.
  • ECS 인스턴스 또는 작업의 보안 그룹은 포트 2049에서 EFS 파일 시스템의 보안 그룹에 대한 아웃바운드 연결을 허용해야 합니다.

작업 정의 생성

1.    Amazon ECS 콘솔을 열고 작업 정의(Task Definitions), **새 작업 정의 생성(Create new Task Definition)**을 선택합니다.

2.    시작 유형 호환성으로 EC2를 선택한 후 **다음 단계(Next step)**를 선택합니다.

3.    **작업 및 컨테이너 정의 구성(Configure task and container definitions)**에서 작업 정의의 이름을 입력합니다.

4.    볼륨(Volumes) 섹션에서 **볼륨 추가(Add volume)**를 선택합니다.

5.    볼륨 이름을 입력한 다음 볼륨 유형 드롭다운 메뉴에서 EFS를 선택합니다.

6.    **파일 시스템 ID(File system ID)**에서 ECS 작업에 사용할 파일 시스템의 ID를 선택합니다.

7.    (선택 사항) 요구 사항에 따라 필요한 경우 루트 디렉터리, 전송 중 암호화EFS IAM 권한 부여를 지정합니다. 수정된 옵션이 없으면 기본 루트 디렉토리 "/“가 사용됩니다.

8.    **추가(Add)**를 선택합니다.

9.    컨테이너를 만드는 동안 **컨테이너 정의(Container definitions)**에서 **컨테이너 추가(Add container)**를 선택하여 이전에 생성한 볼륨을 사용합니다. 그런 다음 탑재 지점(Mount points) 하위 섹션의 스토리지 및 로깅(Storage and Logging) 아래에서 4단계에서 생성한 볼륨을 선택합니다.

10.    컨테이너 경로에서 애플리케이션의 컨테이너 내의 디렉터리 경로를 선택한 다음 **추가(Add)**를 선택합니다.

11.    작업 정의 마법사의 나머지 필드를 채운 다음 **생성(Create)**을 선택합니다.

다음 예에서 태스크 정의efs-ec2-test라는 데이터 볼륨을 생성합니다. nginx 컨테이너는 /usr/share/nginx/html 경로에 호스트 데이터 볼륨을 탑재합니다.

{
  "containerDefinitions": [
    {
      "memory": 128,
      "portMappings": [
        {
          "hostPort": 80,
          "containerPort": 80,
          "protocol": "tcp"
        }
      ],
      "essential": true,
      "mountPoints": [
        {
          "containerPath": "/usr/share/nginx/html",
          "sourceVolume": "efs-ec2-test"
        }
      ],
      "name": "nginx",
      "image": "nginx"
    }
  ],
  "volumes": [
    {
      "name": "efs-ec2-test",
      "efsVolumeConfiguration": {
        "fileSystemId": "fs-1324abcd",
        "transitEncryption": "ENABLED"
      }
    }
  ],
  "family": "efs-test"
}

참고: 사용자 지정 구성의 값을 기반으로 fileSystemID, containerPath 및 기타 작업 정의 파라미터를 바꿉니다.

앞의 예에서 파일 시스템의 루트 디렉토리에 다음 내용이 포함된 샘플 index.html 파일을 만들 수 있습니다.

<html>
  <body>
    <h1>You are using an Amazon EFS file system for persistent container storage.</h1>
  </body>
</html>

ECS 작업 실행

1.    앞서 생성한 작업 정의를 사용하여 ECS 작업을 실행합니다.

2.    ECS 인스턴스의 퍼블릭 IP 주소를 사용하여 웹 사이트에 액세스하여 EFS 파일 시스템이 EC2 컨테이너에 성공적으로 탑재되었는지 확인합니다.


AWS 공식
AWS 공식업데이트됨 2년 전