EBS
- Elastic Block Store
- 인스턴스에 붙일 수 있는 네트워크 드라이브
- EC2와 EBS가 서로 통신하기 위해서는 네트워크를 필요로 함
- 인스턴스에서 뗄 수도 있고, 다른 인스턴스에도 붙일 수 있음
- 인스턴스가 종료되어도 데이터를 유지할 수 있게 도와줌
- 한 번에 하나의 인스턴스만 마운트 할 수 있음
- 특정 가용영역에서만 생성할 수 있음
- 스냅샷을 이용하면 다른 영역으로도 볼륨을 옮길 수 있음
- 용량을 미리 결정해야 함
- 더 좋은 용량이나 큰 사이즈가 필요하면, 이후에 용량을 늘릴 수도 있음
- 종료 시 삭제 기능
- EC2 인스턴스를 생성할 때 콘솔에서 EBS 볼륨을 생성하면 종료 시 삭제 기능을 사용할 수 있음
- 인스턴스 종료시 EBS 행동을 제어함
EBS Snapshots
- EBS volume의 백업
- 스냅샷을 하기 위해서 EBS를 인스턴스로부터 떼는 것을 권장함
- EBS 스냅샷은 다른 가용영역이나 다른 리전에도 복사할 수 있음
- 특징
- EBS Snapshot Archive
- 최대 75%까지 저려함 아카이브 티어
- 스냅샷을 옮길 수 있는 기능
- 아카이브를 복원하는 데 24시간에서 최대 72시간이 걸림
- Recycle Bin
- EBS 스냅샷을 삭제하는 경우 영구 삭제하는 대신에 휴지통에 넣을 수 있음
- 실수로 삭제하는 경우, 휴지통에서 복원 가능
- 휴지통에서 보관되는 기간은 1일에서 1년 사이로 설정할 수 있음
- Fast Snapshot Restore (FSR)
- 스냅샷을 완전 초기화해 첫 사용에서의 지연 시간을 없애는 기능
- 스냅샷이 아주 크고 EBS 볼륨 또는 EC2 인스턴스를 빠르게 초기화해야 할 때 특히 유용함
- 그러나 비용이 많이 듦
- EBS Snapshot Archive
AMI
- Amazon Machine Image
- EC2 인스턴스를 커스텀한 것
- AMI가 EC2 인스턴스에서 처리되는 방법
- EC2 인스턴스를 원하는 대로 설정함
- 인스턴스를 중지해 데이터 무결성을 확보함
- 이 인스턴스를 바탕으로 AMI를 구축함 -> 이 과정에서 EBS 스냅샷이 만들어짐
- 다른 AMI에서 인스턴스를 실행할 수 있음
EBS Volume Types
- gp2 / gp3 (SSD)
- 다양한 워크로드에 대해 가격과 성능의 균형을 맞추는 범용 SSD 볼륨
- io1 / io2 Block Express (SSD)
- 성능이 가장 높은 SSD
- mission-critical, low latency, 고 처리량 작업에 사용됨
- st1 (HDD)
- 저비용 고용량 볼륨
- 자주 액세스 하고 처리량이 많은 작업을 위해 설계되었음
- sc1 (HDD)
- 가장 저렴한 HDD
- 액세스 빈도가 낮은 작업을 위해 설계되었음
- EBS Volume를 정의하는 것 : size, throughput, IOPS(I/O Ops Per Sec)
- gp2 / gp3과 io1/ io2 만 부팅 볼륨으로 사용할 수 있음
EBS 다중 연결 - io1 / io2 family
- 하나의 가용 영역에 있는 여러 개의 EC2에 하나의 EBS volume을 연결할 수 있음
- 각 인스턴스는 고성능 볼륨에 대한 읽기 및 쓰기 권한을 전부 가짐 -> 동시에 읽고 쓸 수 있음
- 한 번에 16개의 EC2 인스턴스만 같은 볼륨에 연결할 수 있다는 제한이 있음
- 다중연결을 실행하려면 cluster-aware 파일 시스템을 사용해야 함
EBS 암호화
- EBS 볼륨을 생성하면 즉시 다음과 같은 일이 발생함
- 저장 데이터가 볼륨 내부에 암호화됨
- 인스턴스와 볼륨 간의 전송 데이터 역시 암호화됨
- 스냅샷 뿐만 아니라 스냅샷으로 생성한 볼륨 역시 모두 암호화됨
- 이때 암호화 및 복호화 메커니즘은 보이지 않게 처리되고 아무것도 하지 않아도 됨 -> 뒤에서 EC2와 EBS가 알아서 함
- 종합적으로 봤을 때 암호화를 사용해야 하는 이유는 지연 시간에는 영향이 거의 없고 KMS에서 암호화 키를 생성해 AES-256 암호화 표준을 가짐
- 스냅샷을 복사해 암호화를 푼 것을 다시 암호화 활성화를 함
- EBS 볼륨 암호화 및 암호화 풀기
- 볼륨의 EBS 스냅샷 생성하기
- 복사 기능을 통해 EBS 스냅샷 복사하기
- 스냅샷을 이용해 새 EBS 볼륨을 생성하면 해당 볼륨도 암호화됨
- 암호화된 볼륨을 인스턴스 원본에 연결하기
Amazon EFS - Elastic File System
- 관리형 network file system이므로 많은 ec2 인스턴스에 마운트 될 수 있음
- 그리고 ec2 인스턴스는 서루 다른 가용 영역에 있을 수도 있음
- highly available, scalble, expensive (3 x gp2), 사용량에 따라 비용 지불
- 사용 사례
- 콘텐츠 관리, 웹 서빙, 데이터 공유, 워드프레스
- 내부적으로 NFS 프로토콜을 사용함
- EFS에 대한 액세스를 제어하려면 보안그룹을 설정해야 함
- linux 기반 AMI와만 호환됨
- KMS를 사용해서 EFS 드라이브에서 미사용 암호화를 활성화할 수 있음
- POSIX 파일 시스템을 사용하고, 표준 파일 api가 있음
- EFS의 좋은 점은 용량을 미리 계획할 필요가 없다는 것 -> 파일 시스템은 자동으로 확장되며 EFS에서 사용하는 데이터 사용량에 따라 비용을 지불함
EBS vs EFS
Elastic Block Storage
- EBS volume
- 한 번에 하나의 인스턴스에 연결 (다중 연결하는 io1/io2 제외)
- AZ 수준에서 잠겨있음
- EBS 볼륨을 AZ 간에 마이그레이션 하려면, 스냅샷을 찍어 EBS 스냅샷에 넣은 후 이 스냅샷을 다른 AZ에 복원해야 함
- EBS 볼륨 백업은 IO를 사용하므로 애플리케이션이 많은 트래픽을 처리하는 동안에는 성능에 영향을 줄 수 있으므로 실행하지 않아야 함
- EC2 인스턴스의 경우, EC2 인스턴스가 종료되면 기본적으로 root EBS 볼륨도 종료되지만 해당 동작을 비활성화 할 수 있음
Elastic File System
- 네트워크 파일 시스템
- 여러 가용영역에 걸쳐 수백 개의 인스턴스에 연결하는 것이 목표
- EFS는 EBS보다 가격이 더 높지만 스토리지 계층을 활용하여 비용을 절감할 수 있음