Amazon EFS 서비스에 대해 알아보기

AWS EFS 서비스란?

Amazon EFS(Amazon Elastic File System)는 AWS에서 제공하는 완전관리형 NFS(Network File System) 스토리지 서비스입니다. 여러 EC2 인스턴스나 컨테이너에서 동시에 접근 가능한 공유 파일 시스템을 제공하며, 리눅스 기반 워크로드에 적합합니다.

📌 주요 특징 요약

항목설명
완전 관리형파일 서버 구축 없이 사용 가능
공유 스토리지여러 인스턴스나 서비스에서 동시에 접근 가능
표준 NFS 프로토콜NFS v4, v4.1 지원
자동 확장저장 용량을 자동으로 확장/축소 (최대 페타바이트 단위)
고가용성 & 내구성여러 AZ(가용 영역)에 걸쳐 저장됨
퍼포먼스 모드 선택 가능General Purpose / Max I/O 등 사용 패턴에 맞게 선택 가능

🧩 대표적인 사용 사례

  • 웹 애플리케이션의 공유 콘텐츠 저장 (예: WordPress 미디어 업로드)
  • 머신러닝 학습 데이터 저장
  • 로그 파일 중앙 저장
  • 여러 EC2 또는 ECS Task에서 동시에 접근해야 하는 파일 저장소

🛠️ 연결 방식

환경연결 방법
EC2EC2 인스턴스에 NFS로 직접 마운트
ECS FargateEFS volume을 정의하고 Task Definition에 연결 가능 (단, 전용 ENI 필요)
EKSCSI 드라이버를 통해 Kubernetes Pod에서 EFS 사용 가능
Lambda파일 입출력이 필요한 Lambda 함수에서 EFS 연결 가능

💰 과금 방식

  • 저장된 데이터 용량(GB/월)
  • I/O 요청량(선택한 성능 모드에 따라)

⚠️ Amazon EFS 제한 사항 및 주의점

항목제한 내용 또는 주의점
운영 체제 지원리눅스 기반 시스템만 지원 (Windows는 미지원)
지원 프로토콜NFS v4/v4.1만 지원 (SMB 등은 미지원)
최대 처리량 제한Throughput은 용량 기반으로 결정되며, 상황에 따라 느릴 수 있음
→ 퍼포먼스 요구 시 Provisioned Throughput 필요
퍼포먼스 지연Block 스토리지(EBS)에 비해 지연 시간(latency)이 상대적으로 김
I/O 비용대량의 I/O가 필요한 경우 비용이 빠르게 증가할 수 있음
퍼블릭 액세스 불가퍼블릭 인터넷에서 직접 접근 불가 (VPC 내 리소스만 접근 가능)
마운트 대상(Mount Target)AZ별로 하나씩 설정해야 하며, 각각 ENI(IP 주소)를 사용함
Fargate와 연동 시 제약Fargate Task가 EFS에 접근하려면 Task당 전용 ENI가 필요하고, 퍼포먼스 및 IP 제약 발생 가능
ECS Fargate + EFS 구성 복잡성EFS를 ECS Fargate Task에 연결하려면 IAM, Mount Target, Security Group 등 구성 요소가 많아짐
EFS 암호화 사용 시 주의암호화 설정은 생성 시에만 가능하며, 이후 변경 불가 (재생성 필요)

💡 참고: 퍼포먼스 모드별 제한 비교

모드특징제한
General Purpose일반 워크로드에 적합수천 IOPS 이상에서 지연 발생 가능
Max I/O고도로 병렬적인 워크로드에 적합개별 작업의 지연 시간이 더 클 수 있음