Amazon Elastic Container Service(Amazon ECS) 컨테이너 또는 태스크에 Amazon Elastic File System(Amazon EFS)을 마운트하려고 합니다. 컨테이너 또는 태스크는 Amazon Elastic Compute Cloud(Amazon EC2) 시작 유형을 사용합니다.
해결 방법
볼륨 태스크 정의 파라미터에 파일 시스템 ID를 제공하는 태스크 정의를 생성합니다. 이렇게 하면 태스크 정의에 지정된 태스크에 EFS 파일 시스템이 자동으로 마운트될 수 있습니다.
네트워크 요구 사항
다음과 같이 구성되어 있는지 확인하세요.
- Amazon EC2 시작 유형의 EFS 파일 시스템과 ECS 클러스터가 동일한 Virtual Private Cloud(VPC)에 있어야 합니다.
- EFS 파일 시스템의 보안 그룹이 ECS 컨테이너 인스턴스 및 ECS 태스크의 포트 2049에서 인바운드 연결을 허용해야 합니다.
- ECS 인스턴스 또는 태스크의 보안 그룹이 포트 2049에서 EFS 파일 시스템의 보안 그룹에 대한 아웃바운드 연결을 허용해야 합니다.
태스크 정의 생성
다음 단계를 완료합니다.
- Amazon ECS 콘솔을 연 다음 Task Definitions, Create new Task Definition을 선택합니다.
- Launch type에서 EC2를 선택한 후 Next step을 선택합니다.
- Configure task and container definitions에서 태스크 정의의 이름을 입력합니다.
- Volume 섹션에서 Add volume을 선택합니다.
- 볼륨 이름을 입력한 다음 Volume types 드롭다운 목록에서 EFS를 선택합니다.
- File system ID에서 ECS 태스크에 사용할 파일 시스템의 ID를 선택합니다.
- (선택 사항) Root directory, Encryption in transit 및 EFS IAM authorization을 지정합니다. 아무것도 지정하지 않으면 기본 루트 디렉터리인 '/'가 사용됩니다.
- Add를 선택합니다.
- 컨테이너를 생성할 때 Container definitions에서 Add container를 선택하여 새 볼륨을 사용합니다. 그런 다음 Mount points 하위 섹션의 Storage and Logging에서 볼륨을 선택합니다.
- Container path에서 애플리케이션 컨테이너에 있는 디렉터리 경로를 선택한 다음 Add를 선택합니다.
- 태스크 정의 마법사의 필수 필드를 작성한 다음 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>
Amazon ECS 태스크 실행
다음 단계를 완료합니다.
- ECS 태스크를 실행하려면 태스크 정의를 사용합니다.
- EFS 파일 시스템이 ECS 컨테이너에 마운트되는지 확인하려면 인스턴스의 IP 주소를 사용하여 웹 사이트에 액세스합니다.