EFS
- EFS는 많은 EC2 인스턴스에 탑재될 수 있는 Network File System(NFS)이다.
- EFS는 EBS와는 달리 multi-AZ에 마운트가 가능하다.
- 따라서, 모든 EC2 인스턴스가 EFS 드라이브의 같은 파일에 접근할 수 있다.
- 고 가용성이지만 비싸다(gp2의 3배).
- 사용한 만큼만 지불한다.
- 따라서, 데이터를 얼마나 잘 관리하느냐에 따라 EBS보다 저렴할 수도 있다.
EFS의 특징
- 컨텐츠 관리, 웹 서빙, 데이터 공유, Wordpress
- NFSv4.1 protocol을 사용한다.
- EFS에 접근하기 위해서는 security group을 사용해야 한다.
- 리눅스 기반의 AMI에서만 사용할 수 있다(윈도우는 안된다).
- 리눅스는 표준 파일 API를 가진 POSIX 파일 시스템이다.
- KMS로 암호화가 가능하다.
- 자동 확장이 가능하며 용량을 미리 프로비저닝 할 필요가 없다.
성능 & Storage classes
EFS Scale
- 수천 명의 concurrent NFS clients를 수용할 수 있으며 사용량은 10GB 이상이 될 수 있다.
- peta-byte 스케일의 NFS로 자동 확장이 가능하다.
3가지 종류의 모드
EFS 생성시 아래 세 가지 모드에 대해 둘 중 하나의 값을 설정하게 된다.
- General purpose(default)
- 지연 시간에 민감한 경우
- 웹 서버, CMS 등등
- Max I/O
- 지연 시간이 길어지지만 사용량과 병렬 처리 기능이 더 좋아진다.
- 빅 데이터, 미디어 프로세싱에 사용하기 좋다.
Throughput mode
- Bursting
- 1TB를 저장한다면 초당 50MB를 얻을 수 있다.
- 초당 최대 100MB까지 버스트 할 수 있다.
- Provisioned
- 처리량이 저장량과 관계 없도록 설정한다.
- 1TB의 저장 공간 밖에 없더라도 1GB/s의 처리량을 요구할 수 있다.
- 저장 공간이 작지만 높은 처리량이 필요한 경우 사용할 수 있다.
Storage Tiers
파일의 수명 주기 관리 기능으로, 30일 후에 파일을 새 계층(Tier)으로 이동하는 것이다.
-
Standard
-
EFS-IA(Infrequent Access)
- 저비용 티어로, 자주 접근하지 않는 파일을 위한 것이다.
- 파일 저장시 약간의 비용만 내면 된다.
- 파일을 검색할 때마다 관련 비용이 발생한다.
EFS 실습
EFS를 생성하고 나면 Attatch 버튼을 눌러서 EFS를 인스턴스에 마운트 할 수 있다.
마운트를 위해서는 아래의 amazon-efs-utils를 다운 받아야 한다.
아래 명령어를 이용한다.
그 다음 ecs 머신에 접속해서 efs 디렉토리를 생성한 후
Attatch 버튼 클릭시 나타나는 mount helper를 이용해 EFS를 마운트 한다.
- helper에서 알려준 첫 번째 명령어를 입력한다.
- 그런데 이 때, efs는 security group에 ec2를 허용하는 인바운드 룰을 가지고 있어야 한다.
- Type에 NFS가 있으며, source는 ec2의 sg를 선택하면 된다.
- NFS 탑재 후 확인해 본다.
- ec2 두 곳(서로 다른 가용영역)에 탑재를 할 경우 한 인스턴스에서 파일을 생성하면 다른 인스턴스에서도 NFS를 공유하고 있기 때문에 해당 파일에 접속이 가능하다.