Amazon EFS(Elastic File System)

도은호·2025년 10월 7일
0

AWS SAA

목록 보기
13/46

EFS = POSIX 호환 NFS 파일시스템을 EC2 여러 대가 동시에 마운트해서 쓰는 완전관리형 공유 스토리지. Multi-AZ 내구성(Standard)과 서버리스 확장/축소가 핵심.


1) 언제 EFS를 쓰나?

  • 여러 EC2 간 동시 파일 공유가 필요할 때 (웹 서버 공유 디렉터리, 컨테이너 공유 볼륨 등)
  • POSIX 권한(파일/디렉터리) + NFS v4.1/v4.0 요구
  • 서버리스 확장형(용량 자동 확장/축소, 파일 수 제한 없음)
  • 단일 인스턴스의 고IOPS 블록 저장소가 필요하면 EBS, 객체 저장이면 S3, Windows/SMB면 FSx for Windows가 더 적합

2) 아키텍처 핵심

  • Regional 서비스(EFS Standard): 내부적으로 여러 AZ에 복제되어 내구성↑
  • 각 AZ에 Mount Target(ENI) 를 생성 → AZ 내 EC2는 로컬 MT로 접속(지연↓)
  • One Zone 옵션: 단일 AZ에만 저장(비용↓, 내구성은 AZ 수준)

3) 성능·요금 모드

Performance mode (생성 시 선택)

  • General Purpose: 대부분 워크로드(지연 최소)
  • Max I/O: 대규모 병렬 워크로드(메타데이터 경합 적음, 지연은 다소↑)

Throughput mode

  • Bursting: 저장 용량에 비례해 자동 버스트(기본)
  • Provisioned Throughput: 용량과 무관하게 스루풋을 고정 예약
  • Elastic Throughput: 사용량에 맞춰 자동 스케일링(운영 단순)

Storage class

  • Standard / Standard-IA(Lifecycle로 자동 전환)
  • One Zone / One Zone-IA (단일 AZ, 비용↓)
    → 자주 접근하지 않는 파일은 IA 전환으로 비용 절감

4) 보안·접근 제어

  • Encryption at rest: KMS로 암호화
  • Encryption in transit: 클라이언트 마운트 시 TLS 옵션 권장
  • Security Group: Mount Target(ENI)에 적용 → NFS 2049/TCP 허용
  • POSIX 권한 + EFS Access Point(고정 UID/GID, 루트 경로 강제)로 멀티 테넌트/애플리케이션 격리
  • IAM Authorization for NFS(선택): 클라이언트에 단기 토큰 기반의 접속 제어

5) 운영 베스트 프랙티스

  • 각 사용 AZ에 Mount Target 생성 → 클라이언트는 같은 AZ의 MT로 접속(지연/비용 최적화)
  • Access Point로 앱별 홈 디렉터리/권한 템플릿화
  • Lifecycle Management로 IA 전환(1/7/14/30/60/90일 등)
  • Backup: AWS Backup 통합, 또는 EFS-to-EFS Replication으로 DR 구성(비동기)
  • 대규모 메타데이터 작업은 Max I/O + Elastic Throughput 고려

6) EFS vs EBS vs S3

항목EFSEBSS3
타입공유 파일시스템(NFS, POSIX)블록 스토리지(단일 인스턴스 중심)오브젝트 스토리지
동시 접근다수 EC2 동시단일 EC2(특정 타입 Multi-Attach 예외)무제한(HTTP API)
내구성/범위Regional(Standard) / One ZoneAZ 범위Regional(크로스 AZ)
사용처코드/미디어 공유, 홈디렉터리DB/OS 디스크, 저지연 블록 I/O백업/정적 자산, 데이터 레이크

7) 마운트 빠른 예시 (Linux)

# 패키지 설치 (Amazon Linux/RHEL 계열)
sudo yum -y install amazon-efs-utils

# TLS로 마운트 (fs-XXXXXXXX는 File System ID)
sudo mkdir -p /mnt/efs
sudo mount -t efs -o tls fs-XXXXXXXX:/ /mnt/efs

# Access Point 사용 시
sudo mount -t efs -o tls,accesspoint=fsap-YYYYYYYY fs-XXXXXXXX:/ /mnt/efs

# fstab 예시 (부팅 시 자동 마운트)
echo "fs-XXXXXXXX:/ /mnt/efs efs _netdev,tls 0 0" | sudo tee -a /etc/fstab

Security Group(Mount Target 측)에 TCP 2049 (소스: EC2의 SG 또는 서브넷 CIDR) 허용 필요.


8) 트러블슈팅 체크

  • 마운트 실패: SG의 TCP 2049, NACL, Route 확인
  • 지연: 동일 AZ의 Mount Target에 붙었는지, 네트워크 경로 점검
  • 성능 부족: Throughput mode(Elastic/Provisioned) 조정, Performance mode 확인, 메타데이터 접근 패턴 최적화
  • 권한 문제: POSIX UID/GID 또는 Access Point 설정 확인

9) 시험 포인트

  • EFS = NFS, POSIX, 다수 EC2 동시 마운트
  • Standard(Regional) vs One Zone 비용/내구성 트레이드오프
  • Performance mode(General Purpose / Max I/O), Throughput mode(Bursting / Provisioned / Elastic)
  • Lifecycle → IA로 비용 최적화, Access Point로 격리
  • 보안: KMS 암호화, TLS, SG 2049 허용

요약

  • 공유 파일시스템이 필요하면 EFS
  • AZ마다 Mount Target 만들고 TLS로 마운트
  • Elastic Throughput + Lifecycle-to-IA 조합으로 운영 단순 + 비용 최적화
  • 권한은 POSIX + Access Point로 깔끔하게 관리
profile
`•.¸¸.•´´¯`••._.• 🎀 𝒸𝓇𝒶𝓏𝓎 𝓅𝓈𝓎𝒸𝒽💞𝓅𝒶𝓉𝒽 🎀 •._.••`¯´´•.¸¸.•`

0개의 댓글