
[storage] Amazon EFS
여러 서버가 같은 폴더를 동시에 들여다봐야 한다면. 관리형 공유 파일 시스템 EFS가 답이 됩니다.
One-Line Summary
Amazon EFS는 여러 Linux 기반 컴퓨트가 동시에 mount해서 사용하는 관리형 NFS 파일 시스템이다.
Abbreviations
| 약어 | 풀네임 | 의미 |
|---|---|---|
EFS | Elastic File System | AWS 관리형 파일 스토리지 |
EC2 | Elastic Compute Cloud | AWS 가상 서버 |
NFS | Network File System | 네트워크를 통해 파일 시스템을 mount하는 프로토콜 |
AZ | Availability Zone | 하나의 리전 안에 있는 독립적인 가용 영역 |
IA | Infrequent Access | 자주 접근하지 않는 데이터용 스토리지 클래스 |
SMB | Server Message Block | Windows 파일 공유에서 자주 쓰는 프로토콜 |
HPC | High Performance Computing | 고성능 컴퓨팅 |
Core Concept
Amazon EFS는 여러 대의 컴퓨트가 동시에 하나의 파일 시스템을 사용할 수 있게 해주는 파일 스토리지다.
사용자는 EC2 인스턴스 안에서 일반 공유 폴더처럼 mount해서 사용할 수 있다. 하지만 iCloud나 Google Drive처럼 사람을 위한 파일 동기화 서비스가 아니라, 애플리케이션 서버들이 공유 파일 시스템으로 사용하는 AWS 관리형 스토리지다.
시험에서는 다음처럼 기억한다.
여러 Linux EC2가 같은 파일을 동시에 읽고 써야 하면 EFS.
How Multi-AZ Works
EFS가 Multi-AZ로 동작하는 이유는 NFS 프로토콜 자체 때문이라기보다, EFS가 Regional 관리형 파일 시스템으로 설계되어 있기 때문이다.
Regional EFS는 다음 구조로 동작한다.
EFS file system
-> 여러 AZ에 데이터 중복 저장
-> 각 AZ에 mount target 생성
-> EC2는 같은 AZ의 mount target에 NFS로 접속
즉, EC2 입장에서는 NFS 엔드포인트에 접속하는 것이고, EFS 서비스가 뒤에서 여러 AZ에 걸친 내구성과 가용성을 관리한다.
시험 감각:
EBS는 AZ 안의 블록 디스크, EFS는 여러 AZ에서 접근 가능한 공유 파일 시스템.
NFS Protocol
NFS는 Network File System의 약자다.
EFS는 NFS 프로토콜을 사용해 파일 시스템을 mount한다. 그래서 Linux 서버에서 네트워크 파일 시스템처럼 사용할 수 있다.
| 프로토콜 | 관련 서비스 | 시험 감각 |
|---|---|---|
NFS | Amazon EFS | Linux 파일 공유 |
SMB | Amazon FSx for Windows File Server | Windows 파일 공유 |
Windows SMB 파일 공유가 문제에 나오면 EFS가 아니라 FSx for Windows File Server를 먼저 의심한다.
Exam Triggers
| 문제에서 이런 표현이 나오면 | 떠올릴 것 |
|---|---|
| "multiple EC2 instances need to access the same files" | Amazon EFS |
| "shared file system for Linux servers" | Amazon EFS |
| "NFS file system" | Amazon EFS |
| "automatically scales file storage" | Amazon EFS |
| "web servers share uploaded files" | Amazon EFS |
| "containers need shared persistent files" | Amazon EFS |
| "Lambda needs shared file access" | Amazon EFS |
Key Features
| 주제 | 알아야 할 내용 |
|---|---|
| 스토리지 유형 | File storage |
| 프로토콜 | NFS |
| 공유 | 여러 EC2/컴퓨트에서 동시에 mount 가능 |
| 확장 | 파일 추가/삭제에 따라 자동 확장/축소 |
| 가용성 | Regional EFS는 여러 AZ에 데이터 저장 |
| 접속 방식 | 각 AZ에 mount target 생성 후 NFS로 접속 |
| 비용 최적화 | Lifecycle으로 IA/Archive 스토리지 클래스 이동 가능 |
| 보안 | Security Group, IAM, POSIX 권한, 암호화 지원 |
Performance Positioning
EFS는 "고성능이 아예 불가능한 스토리지"라기보다, 공유성과 자동 확장성이 강점인 네트워크 파일 시스템이다.
별도의 네트워크 파일 프로토콜을 통해 접근하므로, EC2에 직접 붙는 EBS나 인스턴스 로컬 디스크처럼 초저지연 블록 I/O 용도로 보는 것은 적합하지 않다.
| 요구사항 | 더 자연스러운 선택 |
|---|---|
| 여러 Linux 서버가 공유 파일 접근 | EFS |
| EC2 한 대의 고성능 DB 디스크 | EBS io2 |
| 초고속 임시 로컬 I/O | Instance Store |
| HPC/ML 고성능 파일 처리 | FSx for Lustre |
시험 감각:
EFS는 공유 파일 시스템의 정답이지, 초저지연 DB 디스크의 정답은 아니다.
Storage Classes
EFS에는 접근 빈도와 가용성 요구에 따라 여러 스토리지 클래스가 있다.
| 클래스 | 의미 | 시험 감각 |
|---|---|---|
EFS Standard | 자주 접근하는 파일용 Regional 스토리지 | 기본 공유 파일 시스템 |
EFS Standard-IA | 자주 접근하지 않는 파일용 Regional 스토리지 | 드물게 보지만 즉시 접근 |
EFS Archive | 거의 접근하지 않는 파일용 저비용 계층 | 장기 보관성 파일 |
EFS One Zone | 단일 AZ에 저장 | 비용 절감, AZ 장애 위험 감수 |
EFS One Zone-IA | 단일 AZ의 IA 계층 | 재생성 가능하거나 덜 중요한 파일 |
EFS IA에 있는 파일도 애플리케이션에서 바로 접근할 수 있다. 다만 Standard보다 첫 바이트 지연 시간이 높고, 읽기/쓰기 시 액세스 비용이 붙을 수 있다.
Lifecycle Management
EFS Lifecycle Management를 사용하면 오래 접근하지 않은 파일을 IA나 Archive 계층으로 자동 이동할 수 있다.
예시:
자주 쓰는 파일: EFS Standard
30일 이상 미접근 파일: EFS Standard-IA
더 오래 미접근 파일: EFS Archive
시험 감각:
공유 파일 시스템은 유지하되, 오래 안 쓰는 파일 비용을 줄이고 싶으면 EFS Lifecycle + IA.
Throughput Modes
EFS 처리량 모드는 파일 시스템의 성능 설정이다. 저장 비용을 낮추는 스토리지 클래스 전환과는 다른 축이다.
| 처리량 모드 | 의미 | 시험 감각 |
|---|---|---|
Elastic | 워크로드 활동에 따라 처리량이 자동 확장되고 사용한 처리량만 비용 지불 | 대부분 워크로드의 기본/추천 후보 |
Bursting | 파일 시스템에 저장된 데이터 양에 따라 기준 처리량이 정해지고, 크레딧으로 burst 가능 | 저장 용량이 커질수록 처리량도 증가 |
Provisioned | 파일 시스템 크기와 무관하게 필요한 처리량을 직접 지정 | 작은 파일 시스템에 높은 throughput 필요 |
시험 감각:
EFS IA는 저장 비용 최적화, EFS throughput mode는 성능 조정이다.
Security
| 항목 | 의미 |
|---|---|
| Security Group | NFS 2049 포트 접근 제어 |
| IAM | EFS 파일 시스템 접근 권한 제어에 사용 가능 |
| POSIX permission | Linux 파일 권한 모델 |
| Encryption at rest | 저장 데이터 암호화 |
| Encryption in transit | 전송 중 암호화 |
Compared With
| 구분 | EFS | EBS | FSx for Windows | FSx for Lustre |
|---|---|---|---|---|
| 유형 | File | Block | File | File |
| 대표 프로토콜 | NFS | 블록 디바이스 | SMB | Lustre |
| 공유 | 여러 Linux 컴퓨트 | 기본적으로 단일 EC2 | Windows 파일 공유 | HPC/ML 고성능 파일 |
| Multi-AZ | Regional EFS 가능 | 단일 AZ | 배포 옵션에 따라 가능 | 워크로드에 따라 선택 |
| 대표 지문 | shared Linux file system | EC2 disk, boot volume | Windows, SMB, AD | HPC, ML, S3 연동 |
Common Traps
| 함정 | 정리 |
|---|---|
| EFS는 iCloud/Google Drive 같은 사용자용 동기화 서비스다 | 아님. 서버/애플리케이션용 네트워크 파일 시스템 |
| NFS라서 자동으로 Multi-AZ다 | 아님. EFS Regional 설계와 mount target 구조 때문에 Multi-AZ 가능 |
| EFS는 항상 최고 성능 스토리지다 | 아님. 공유성과 확장성이 강점. 초저지연은 EBS/Instance Store/FSx도 검토 |
| Windows SMB 공유도 EFS다 | 아님. SMB는 FSx for Windows File Server |
| EFS IA는 접근 전에 restore가 필요하다 | 아님. 즉시 접근 가능하지만 액세스 비용/지연 시간 차이가 있음 |
| EFS는 객체 스토리지다 | 아님. 파일 스토리지다. 객체 저장은 S3 |
Memory Sentence
EFS는 여러 Linux 컴퓨트가 동시에 mount하는 관리형 NFS 파일 시스템이다. 공유 파일이면 EFS, EC2 단독 디스크면 EBS, Windows SMB면 FSx, 임시 로컬 고속 저장이면 Instance Store.
Related Exam Questions
- EFS Lifecycle IA for Video Rendering Working Files
- EFS Shared Storage for Multi-AZ EC2 Content Management System
- EFS Lifecycle IA for Simulation Data After 30 Days
References
댓글
아직 댓글이 없습니다.