Amazon EFS( Elastic File System )

。여러 EC2 인스턴스에 네트워크 연결을 통해 동시에 마운트 할 수 있도록 설계된 공통 저장소 역할의 공유 NFS 파일 시스템 ( Network File System )
▶ 하나의 EC2에 주로 연결되는 EBS와 차이가 존재
。Linux 표준 파일 시스템(POSIX)로서 오직 Linux OS 기반 AMI와 호환이 되는 특징이 존재
。쓰기 후 읽기( Read & Write )를 통해 인스턴스의 동시접근 시에도 높은 일관성을 유지
。Private Service로 Public Internet을 통해 접근이 불가능
▶ 외부에서 접근 가능하도록 설정 시 VPC를 통해 설정해야함.
。EFS는 용량을 사전에 지정할 필요 없이 On Demand 요금 방식으로 파일 저장 / 제거에 따라 유연하게 확장 / 축소
▶ EBS처럼 개발자가 규모에 맞게 일일이 프로비저닝할 필요는 없다.
。EFS는 주로 Enhanced - Elastic & General Purpose 조합을 사용
EFS를 사용하는 이유?
。여러 EC2 인스턴스로 구성된 클러스터에서 공통적으로 사용되는 데이터를 한 곳에서 공유하기 위해 사용
▶ 각 인스턴스의 서버 어플리케이션의 세션 데이터 등을 EFS에 일괄적으로 저장하여 사용자가 단일 인스턴스에 접속한 것 같은 사용자 경험을 제공
。빅데이터 등의 분산 시스템 환경에서도 자주 사용
EBS와 차이점

。EBS Multi Attach의 경우 최대 16 인스턴스를 지원하지만, EFS는 몇 천개 인스턴스의 동시접근이 가능.
。EBS의 경우 사전에 용량을 설정해야하지만, EFS는 동적으로 용량을 확장 / 축소하면서 조정
EFS 유형
。EFS의 데이터는 여러 AZ에 분산되어 저장
Regional :
。단일 리전 내 여러 AZ에 분산저장하여 고가용성과 내구성을 확보
One-Zone
。단일 AZ만 활용하여 분산저장하여 가용성이 떨어지지만, 저렴한 가격
EFS의 Performance Mode
General Purpose
。가장 보편적인 성능모드
▶ 짧은 지연속도의 웹서버 등에 사용
Max I/O
。높은 IOPS가 요구되는 고성능 작업 (빅데이터 처리) 등에 사용되는 성능모드
▶ 단, General Purpose보다 다소 높은 지연속도가 존재
EFS의 Throughput Mode
Elastic Throughput
。EFS가 자동으로 Throughput을 조정하는 모드
▶ 요구되는 처리량을 예측하기 어렵거나, 적은 범위에서 변동이 발생하는 경우 사용
Bursting Throughput
。EFS의 저장용량이 많아질수록 Throughput이 비례하면서 증가하는 모드
ex ) 기본 처리량 : 50MB/s에 저장용량 : 1 TB 증가 시 처리량 += 50MB/s
Provisioned Throughput
。저장용량에 관계없이 사전에 Throughput을 설정하는 모드
▶ 해당 Throughput에 대한 비용을 미리 지불
EFS의 Storage Tier 종류
。각 Storage Tier 마다 저장비용 차이가 존재하며, 파일의 LRU에 따라서 해당 Storage Tier로 전환
▶ Standard -> IA -> Archive
。EFS의 수명 주기 관리 기능을 통해 마지막으로 사용된 시점에 따라서 Storage Tier 간 파일 이동이 수행됨
Standard :
。자주 접근되는 파일을 저장하는 계층
EFS-IA ( Infrequently Accessed )
。자주 접근되지 않는 파일을 저장하는 계층
▶ 낮은 비용으로 저장이 가능하지만, 파일 검색 시 비용 발생
Archive
。거의 접근하지 않는 파일을 저장하는 계층
▶ 약 50% 저렴한 비용으로 저장이 가능하며, 1년에 몇번만 접근하는 데이터의 경우 해당 계층에서 저장
EFS 생성 및 활용
Amazone EFS에서 파일 시스템 설정

。파일 시스템 유형 : Regional / One Zone 선택
。수명 주기 관리 : 파일의 마지막 접근 시점에 따라 IA / Archive / Standard 전환 시점 결정

。처리량 모드 : 개선됨 ( 탄력적 요금제 : Elastic / 프로비저닝됨 : Provisioned ), 버스트 ( Bursting )
。성능 모드 : General Purpose / Max I/O
네트워크 액세스 설정


。VPC 설정 및 Mount Target ( = ENI) 용도의 AZ을 설정 및 보안 그룹을 설정
▶ 각 AZ에 접근용 엔드포인트 생성
EFS 생성

。 초기 저장용량 : 6KB
▶ 이후 파일 저장 시 동적으로 용량 증가 및 파일 접근 시점에 따라 Standard / IA / Arcive 계층으로 분산되어 저장
EC2 인스턴스 마운트
。EC2 인스턴스 생성 및 네트워크 설정 - 서브넷 설정
▶ EFS의 네트워크 액세스 설정과 동일한 서브넷으로 설정

。이후 스토리지(볼륨) - 파일시스템에서 EFS 설정 후 생성한 EFS를 지정 후 생성
。여러개의 EC2 인스턴스를 생성하여 EFS에 마운트 시 해당 인스턴스들은 서로 동일한 Linux OS의 파일시스템을 사용하여 파일 공유가 가능
▶ 가용영역1의 인스턴스 A에서 /mnt/efs/fs1의 루트 디렉토리에서 hello.txt 생성 시 가용영역2에 위치한 인스턴스 B에서 해당 파일을 참조 가능