1. EFS 파일 시스템 생성

(1) EFS 콘솔 → Create File System

  • 이름: 예) APNE2-DEV-MY-APP-EFS
  • VPC: ECS가 사용하는 VPC와 동일하게 선택
  • 나머지 설정(Throughput, Performance, Lifecycle)은 기본값 가능

2. Mount Target 생성 및 설정

(1) EFS → Network → Mount Targets 이동

→ 자동 생성되지 않은 경우 수동 추가

(2) 각 AZ마다 1개씩 생성

Yujin이 사용한 구성:

  • AZ: apne2-2a → Subnet: Private-a
  • AZ: apne2-2c → Subnet: Private-c

(3) Security Group 설정

새로운 SG(EFS 전용) 생성하여 추가하는 것을 권장했음.

EFS-SG inbound rule

  • NFS 2049 / TCP
  • Source: ECS Task가 사용하는 SG (예: ECS-Service-SG)

EFS-SG outbound rule

  • 모든 outbound 허용 or 최소 보안 구성이면 2049만

3. EFS Access Point 생성 (중요)

EFS → Access Points → Create

입력 값:

  • Root Directory: /my-app
  • POSIX User (UID/GID): 기본값 또는 필요시 1000/1000
  • Permissions:
    • Owner UID: 1000
    • Owner GID: 1000
    • Permissions: 755 또는 앱 요구사항

Access Point ID 예:
fsap-031543c379c0a9aa6


4. ECS Task Definition에 EFS Volume 추가

(1) volumes 섹션

"volumes": [
  {
    "name": "efs-volume",
    "efsVolumeConfiguration": {
      "fileSystemId": "fs-0*********",
      "rootDirectory": "/",
      "transitEncryption": "ENABLED",
      "authorizationConfig": {
        "accessPointId": "fsap-0*********",",
        "iam": "ENABLED"
      }
    }
  }
]

 

(2) containerDefinitions.mountPoints

"mountPoints": [
  {
    "sourceVolume": "efs-volume",
    "containerPath": "/data",
    "readOnly": false
  }
]

 

컨테이너에서는 /data/ 가 실제로 EFS /my-app/ 와 연결됨.

 

 

✅ 5. ECS 서비스 재배포

Task Definition 업데이트 후:

  • ECS Service → Force New Deployment
  • 새로운 Task가 Running 상태가 되면 완료

 

✅ 6. ECS - EFS 볼륨 마운트 확인

AWS ECS 서비스 콘솔에서도 볼륨이 추가된것을 확인할 수 있으나, 

가장 간단하게는 ECS 시작 스크립트에 로깅을 추가해서 확인할 수 있다.

# Verify EFS volume mount
echo "EFS volume mount check:"
ls -al /data

 

재배포 했을때 로그 확인

 

EFS volume mount check:

drwxr-xr-x 2 1000 1000 6144 Nov 18 14:45 .

drwxr-xr-x 1 root root 4096 Nov 18 16:09 ..

 

+ Recent posts