Amazon EFS 볼륨 - AWS Batch

Amazon EFS 볼륨

Amazon Elastic File System(Amazon EFS)은 AWS Batch 작업에 간단하고 규모 조정이 가능한 파일 스토리지를 제공합니다. Amazon EFS를 사용하면 스토리지 용량이 탄력적입니다. 파일을 추가 및 제거하면 스토리지 용량의 규모가 자동으로 조정됩니다. 애플리케이션에서 스토리지가 필요할 때 필요한 만큼 확보할 수 있습니다.

AWS Batch에서 Amazon EFS 파일 시스템을 사용하여 컨테이너 인스턴스 집합 간에 파일 시스템 데이터를 내보낼 수 있습니다. 이렇게 하면 작업이 동일한 영구 스토리지에 액세스할 수 있습니다. 하지만 Docker 대몬(daemon)을 시작하기 전에 Amazon EFS 파일 시스템을 마운트하도록 컨테이너 인스턴스 AMI를 구성해야 합니다. 또한 작업 정의는 컨테이너 인스턴스에서 볼륨 마운트를 참조하여 파일 시스템을 사용해야 합니다. 다음 섹션은 AWS Batch에서 Amazon EFS를 사용하기 시작하는 데 도움이 됩니다.

Amazon EFS 볼륨 고려 사항

Amazon EFS 볼륨을 사용할 때는 다음 사항을 고려해야 합니다.

  • EC2 리소스를 사용하는 작업의 경우, Amazon EFS 파일 시스템 지원이 컨테이너 에이전트 버전이 1.35.0인 Amazon ECS 최적화 AMI 버전 20191212의 공개 미리 보기로 추가되었습니다. 그러나 Amazon EFS 파일 시스템 지원은 Amazon EFS 액세스 포인트 및 IAM 권한 부여 기능이 포함된 컨테이너 에이전트 버전이 1.38.0인 Amazon ECS 최적화 AMI 버전 20200319의 정식 출시를 시작했습니다. 이러한 기능을 활용하려면 Amazon ECS 최적화 AMI 버전 20200319 이상을 사용하는 것이 좋습니다. 자세한 내용을 알아보려면 Amazon Elastic Container Service 개발자 안내서Amazon ECS 최적화 AMI 버전을 참조하세요.

    참고

    자체 AMI를 생성하는 경우 컨테이너 에이전트 1.38.0 이상, ecs-init 버전 1.38.0-1 이상을 사용하고 Amazon EC2 인스턴스에서 다음 명령을 실행해야 합니다. 이는 모두 Amazon ECS 볼륨 플러그인을 활성화하기 위한 것입니다. 이 명령은 기본 이미지로 Amazon Linux 2 또는 Amazon Linux를 사용하는지에 따라 달라집니다.

    Amazon Linux 2
    $ yum install amazon-efs-utils systemctl enable --now amazon-ecs-volume-plugin
    Amazon Linux
    $ yum install amazon-efs-utils sudo shutdown -r now
  • 버전 1.4.0 이상의 플랫폼에는 Fargate 리소스를 사용하는 작업에 Amazon EFS 파일 시스템 지원이 추가되었습니다. 자세한 내용을 알아보려면 Amazon Elastic Container Service 개발자 안내서AWS Fargate 플랫폼 버전을 참조하세요.

  • Fargate 리소스를 사용하는 작업에 Amazon EFS 볼륨 지정 시 Fargate는 Amazon EFS 볼륨을 관리하는 감독자 컨테이너를 생성합니다. 감독자 컨테이너는 소량의 작업 메모리를 사용합니다. 감독자 컨테이너는 작업 메타데이터 버전 4 엔드포인트를 쿼리할 때 표시됩니다. 자세한 정보는 AWS Fargate에 대한 Amazon Elastic Container Service 사용 설명서태스크 메타데이터 엔드포인트 버전 4를 참조하세요.

Amazon EFS 액세스 포인트 사용

Amazon EFS 액세스 포인트는 EFS 파일 시스템에 대한 애플리케이션별 진입점으로, 공유 데이터 세트에 대한 애플리케이션 액세스를 관리하는 것을 지원합니다. Amazon EFS 액세스 포인트와 액세스 제어 방법에 대한 자세한 정보는 Amazon Elastic File System 사용 설명서Amazon EFS 액세스 포인트 사용하기를 참조하세요.

액세스 포인트는 액세스 포인트를 통해 이루어지는 모든 파일 시스템 요청에 대해 사용자의 POSIX 그룹을 포함한 사용자 자격 증명을 적용할 수 있습니다. 또한 클라이언트가 지정된 디렉터리 또는 하위 디렉터리의 데이터에만 액세스할 수 있도록 파일 시스템에 대해 다른 루트 디렉터리를 적용할 수 있습니다.

참고

EFS 액세스 포인트를 생성할 때 파일 시스템에서 루트 디렉터리 역할을 하는 경로를 지정합니다. AWS Batch 작업 정의의 액세스 포인트 ID로 EFS 파일 시스템을 참조할 때 루트 디렉터리는 생략하거나 /로 설정할 수 있습니다. 그러면 EFS 액세스 포인트에 설정된 경로가 적용됩니다.

AWS Batch 작업 역할을 사용하여 특정 애플리케이션에서 특정 액세스 포인트를 사용하도록 적용할 수 있습니다. IAM 정책을 액세스 포인트와 결합하면 애플리케이션의 특정 데이터 세트에 안전하게 액세스할 수 있습니다. 이 기능은 작업 기능에 Amazon ECS IAM 역할을 사용합니다. 자세한 내용은 Amazon Elastic Container Service 개발자 안내서태스크에 대한 IAM 역할을 참조하세요.

작업 정의에서 Amazon EFS 파일 시스템 지정

컨테이너에 Amazon EFS 파일 시스템 볼륨을 사용하려면 작업 정의에 볼륨 및 마운트 지점 구성을 지정해야 합니다. 다음 작업 정의 JSON 코드 조각은 컨테이너에 사용할 volumesmountPoints 객체의 구문을 나타냅니다.

{ "containerProperties": [ { "image": "amazonlinux:2", "command": [ "ls", "-la", "/mount/efs" ], "mountPoints": [ { "sourceVolume": "myEfsVolume", "containerPath": "/mount/efs", "readOnly": true } ], "volumes": [ { "name": "myEfsVolume", "efsVolumeConfiguration": { "fileSystemId": "fs-12345678", "rootDirectory": "/path/to/my/data", "transitEncryption": "ENABLED", "transitEncryptionPort": integer, "authorizationConfig": { "accessPointId": "fsap-1234567890abcdef1", "iam": "ENABLED" } } } ] } ] }
efsVolumeConfiguration

유형: 객체

필수 항목 여부: 아니요

이 파라미터는 Amazon EFS 볼륨을 사용할 때 지정됩니다.

fileSystemId

유형: 문자열

필수 항목 여부: 예

사용할 Amazon EFS 파일 시스템 ID입니다.

rootDirectory

유형: 문자열

필수 항목 여부: 아니요

호스트 내의 루트 디렉터리로 탑재할 Amazon EFS 파일 시스템 내 디렉터리입니다. 이 파라미터가 생략되면 Amazon EFS 볼륨의 루트가 사용됩니다. /를 지정하면 이 파라미터를 생략하는 것과 동일한 효과가 있습니다. 이름의 최대 길이는 4.096자입니다.

중요

authorizationConfig에서 EFS 액세스 포인트를 지정하는 경우 루트 디렉터리 파라미터를 생략하거나 /로 설정해야 합니다. 그러면 EFS 액세스 포인트에 설정된 경로가 적용됩니다.

transitEncryption

유형: 문자열

유효한 값: ENABLED | DISABLED

필수 항목 여부: 아니요

AWS Batch 호스트와 Amazon EFS 서버 간 전송 중 Amazon EFS 데이터에 대한 암호화를 활성화할지 여부를 결정합니다. Amazon EFS IAM 권한 부여를 사용하는 경우 전송 중 데이터 암호화를 활성화해야 합니다. 이 파라미터가 누락되면 DISABLED의 기본값이 사용됩니다. 자세한 내용을 알아보려면 Amazon Elastic File System 사용자 설명서전송 중 데이터 암호화를 참조하세요.

transitEncryptionPort

유형: 정수

필수 항목 여부: 아니요

AWS Batch 호스트와 Amazon EFS 서버 간에 암호화된 데이터를 전송할 때 사용할 포트입니다. 전송 중 데이터 암호화 포트를 지정하지 않으면 Amazon EFS 탑재 헬퍼가 사용하는 포트 선택 전략이 사용됩니다. 이 값은 0~65,535여야 합니다. 자세한 정보는 Amazon Elastic File System 사용자 설명서EFS 탑재 헬퍼를 참조하세요.

authorizationConfig

유형: 객체

필수 항목 여부: 아니요

Amazon EFS 파일 시스템에 대한 권한 부여 구성 세부 정보입니다.

accessPointId

유형: 문자열

필수 항목 여부: 아니요

사용할 액세스 포인트 ID입니다. 액세스 포인트를 지정하는 경우 efsVolumeConfiguration의 루트 디렉터리 값을 생략하거나 /로 설정해야 합니다. 그러면 EFS 액세스 포인트에 설정된 경로가 적용됩니다. 액세스 포인트를 사용하는 경우 EFSVolumeConfiguration에서 전송 중 데이터 암호화를 활성화해야 합니다. 자세한 정보는 Amazon Elastic File System 사용자 설명서Amazon EFS 액세스 포인트 태스크를 참조세요.

iam

유형: 문자열

유효한 값: ENABLED | DISABLED

필수 항목 여부: 아니요

Amazon EFS 파일 시스템을 탑재할 때 작업 정의에 정의된 AWS Batch 작업 IAM 역할을 사용할지 여부를 결정합니다. 활성화된 경우 EFSVolumeConfiguration에서 전송 중 데이터 암호화를 활성화해야 합니다. 이 파라미터가 누락되면 DISABLED의 기본값이 사용됩니다. IAM 실행 역할에 대한 자세한 정보는 AWS Batch IAM 실행 역할 섹션을 참조하세요.