Amazon EFS (Amazon Elastic File System)

- EFS는 완전 관리형 NFS(네트워크 파일 시스템)으로 많은 EC2 인스턴스에 마운트 될 수 있다.
- EFS는 다중 가용 영역에 있는 EC2 인스턴스와도 연결될 수 있다.
- 가용성 및 확장성이 뛰어나지만, 비싸다는 단점이 있다.
- 사용량에 따라 비용을 지불하므로 미리 용량을 프로비저닝 할 필요가 없다.
- 주로 컨텐츠 관리, 웹 서빙, 데이터 공유, 워드프레스에 사용된다.
- 내부적으로 NFS 프로토콜을 사용하며, EFS에 대한 액세스를 제어하려면 보안 그룹을 설정해야 한다.
- 중요한 점은 윈도우가 아닌 리눅스 기반 AMI만 호환된다는 점이다.
- KMS를 사용해서 EFS 드라이브에서 미사용 암호화를 활성화할 수 있다.
- POSIX 시스템을 사용하기 때문에 Linux 운영 체제에서 일반적인 POSIX 파일 시스템처럼 작동하며, 표준 파일 API를 지원한다.
- 용량을 미리 계획할 필요가 없고, 파일 시스템은 자동으로 확장되며, EFS에서 사용되는 데이터 사용량에 따라 비용을 지불한다.
성능 및 스토리지 클래스
- EFS Scale
- 동시에 NFS 클라이언트 수천개와 10GB 이상의 처리량을 확보할 수 있다.
- 페타바이트 규모의 네트워크 파일 시스템으로 자동 확장할 수 있다.
- Performane Mode
- NFS 생성 시 성능 모드를 설정할 수 있고 여러가지 옵션이 있다.
- 범용 옵션은 지연시간에 민감한 작업에 사용된다(웹서버, CMS 등..)
- 하지만 처리량을 최대화하려면 최대 I/O 모드를 선택해야 한다. 이 옵션은 지연시간이 더 긴 네트워크 파일 시스템이지만, 처리량이 높고 병렬 처리가 가능하다. (빅데이터 애플리케이션, 미디어 처리 등..)
- Throughput Mode
- Bursting은 초당 50Mib에 초당 100Mib 버스트까지 더한 옵션
- 프로비저닝 -> 스토리지 크기에 관계 없이 처리량을 설정하고 싶은 경우에 적합. 1TB 크기의 스토리지에서 초당 1GB를 처리할 수 있다.
- Elastic -> 처리량을 자동으로 조절할 수 있다(작업 량에 따라 자동 조정됨). 이 옵션은 읽기는 초당 최대 3GB, 쓰기는 초당 1GB 까지 가능하다. 워크로드를 예측하기 어려울 때 유용한 옵션이다.
- Storage Classes
스토리지 계층 간의 파일을 자동으로 이동하기 위해 수명 주기 정책을 구현하여 며칠 후에 파일을 어느 계층으로 이동해야 하는지 정의할 수 있다.
올바른 EFS 스토리지 클래스를 사용하면 최대 90%의 비용을 절감할 수 있다.
- Standard
- 자주 액세스하는 파일을 위한 계층
- 가용성과 내구성 측면에서, 다중 AZ 설정이 있는 경우에 적합
- EFS-IA
- 자주 액세스하지 않는 파일을 위한 계층으로 파일을 검색할 경우 비용이 발생하지만 저장하면 비용이 감소한다.
- Archive
- 거의 액세스하지 않는 데이터 용으로, 1년에 몇 번 이하로 액세스되는 장기 저장 데이터를 위한 스토리지 클래스다.
- 장기적으로 거의 접근하지 않는 데이터의 비용을 최적화한다.
- One-Zone
- 단일 가용 영역(AZ)에 데이터를 저장하여 비용을 절감하는 스토리지 클래스
- 개발만 하고 더 저렴한 옵션을 원한다면 적합하다.