programming
EFS 생성 + Access Point 생성 + ECS 연동 전체 절차 정리
euuuuuz:
2025. 11. 18. 15:45
✅ 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 ..