
EBS Volume
- Elastic Block Store Volume
- 인스턴스가 실행중인 동안 연결 가능한 네트워크 드라이브이다
- EBS볼륨을 사용하면 인스턴스가 종료된 후에도 데이터를 지속할 수 있다
- 이전 EBS 볼륨을 마운트하면 데이터를 다시 받을 수 있다
- 가용영역에 종속되어 있어 특정 영역에서만 사용가능하다
- 스냅샷을 이용하면 다른 가용 영역으로도 볼륨을 옮길 수 있다
EBS 볼륨이란
- 네트워크 USB라고 생각하면 된다
- 물리적 연결은 없고 네트워크를 통해 연결되어서 다른 컴퓨터에서 사용이 가능하다
- 물리적 드라이브가 아닌 네트워크 드라이브이다
- 즉 인스턴스와 EBS 볼륨이 통신하기 위해서는 네트워크를 필요로 한다 (지연이 생길 수 있다)
1. EBS Snapshot
- EBS 볼륨의 특정 시점에 대한 백업이다
- EC2 인스턴스에서 EBS 볼륨을 분리할 필요는 없지만 권장 사항이다
- 다른 가용영역이나 리전에 복사할 수 있다
1). EBS Snapshot 기능
- EBS Snapshot Archive
- EBS 스냅샷 아카이브는 최대 75까지 저렴한 스냅샷 아카이브로 이동하는 기능이다
- 스냅샷을 아카이브로 이동하면 아카이브를 복원하는데 24시간에서 최대 72시간이 걸린다
- Snapshot 휴지통
- 스냅샷을 삭제하는 경우 영구 삭제하는 대신에 휴지통에 넣을 수 있다
- 실수로 삭제하는 경우 휴지통에서 복원할 수 있다
- 휴지통에 있을 기간은 1일에서 1년까지 지정할 수 있다
- 빠른 스냅샷 복원(FSR)
- 스냅샷을 완전 초기화해 첫사용에 지연시간을 없애는 기능이다.
- 스냅샷이 엄청 크고 EBS 볼륨 또는 EC2 인스턴스를 빠르게 초기화할 때 유용하다 (비쌈)
2. 타입
- GP2/GP3: 다양한 워크로드에 대해 가격과 성능의 균형을 맞춘 범용 SSD 볼륨이다
- io1/io2 Block Expresss (SSD): 가장 높은 성능의 SSD 볼륨으로 중요 작업, 저지연, 고처리량 작업에 사용된다
- ST1 (HDD): 저비용 대용량 볼륨으로 자주 액세스하고 처리량이 많은 작업을 위해 설계됐다
- SC1 (HDD): 가장 저렴한 볼륨으로 액세스 빈도가 낮은 작업을 위해 설계됐다
- 정의: 크기, 처리량, 초당 입출력 작업수를 의미하는 IOP로 정의한다
- GP2, GP3, Io1, Io2만 부팅 볼륨으로 사용할 수 있다
1). 범용
- 비용 효율적인 스토리지로 낮은 대기시간을 제공하며 시스템 부팅 볼륨, 가상 테스크톱, 개발 및 테스트 환경에 주로 쓰인다
- 크기는 1GB ~ 16TB까지 다양하다
- GP3: 최신 버전
- 기본적으로 3,000 IOPS와 초당 125MB의 처리량을 제공한다
- IOP는 최대 16,000까지 처리량은 초당 최대 1,000MB까지 독립적으로 증가시킬 수 있다
- GP2: 이전 버전
- 최대 3,000 IOP까지 가능하며 볼륨의 크기와 IOP가 연관되어 있다
- GB당 IOPS를 3개 늘리면 5,334GB에서 최대 속도인 16,000 IOP가 된다
2). 프로비저닝 IOPS
- 지속적인 IOPS 성능이 필요한 중요한 비즈니스 애플리케이션이나 16,000개 이상의 IOP가 필요한 애플리케이션에 사용된다
- 예를들어 데이터베이스 작업등 스토리지 성능과 일관성에 매우 민감한 경우 적합하다
- 4TB ~ 16TB까지 지원하며 최대 IOP를 사용할 수 있다
- Nitro EC2 인스턴스의 경우 최대가 64,000이고 다른 종류는 32,000이다
- 하나의 EBS볼륨이 최대 16개의 EC2 Instance를 사용할 수 있다
3). HDD
- 부팅으로는 사용할 수 없다
- 125 GB에서 최대 16TB이다
- ST1: 빅 데이터, 데이터 웨어하우징, 로그처리에 적합하며 초당 최대 500MB 처리량과 최대 500의 IOPS를 제공한다
- SC1: 자주 액세스되지 않는 데이터용이다
- 최대 처리량은 초당 250MB이고 최대 IOPS도 250이다
3. 암호화
- 저장 데이터가 볼륨 내부에 암호화되고 인스턴스와 볼륨 간의 전송 데이터도 암호화 된다
- 스냅샷 뿐만 아니라 스냅샷으로 생성된 볼륨도 암호화된다
- 암호화 및 복호화는 보이지 않게 처리가 되고 백그라운드에서 EC2와 EBS가 모두 처리한다
- 지연시간에 영향이 거의 없고 KMS에서 암호화 키를 생성해
AES-256암호화를 한다
스냅샷 암호화
- 볼륨의 EBS 스냅샷을 생성하고 복사 기능을 통해 EBS 스냅샷을 암호화한다
- 스냅샷을 이용해 새 EBS를 생성하면 해당 EBS도 암호화된다
- 암호화된 볼륨을 인스턴스와 연결한다
AMI
- Amazon Machine Image
- EC2 인스턴스를 통해 만든 이미지를 통칭한다
- AMI로 AWS를 구축할 수도 있고, 원하는 대로 변경할 수도 있다
- 원하는 소프트웨어 또는 설정 파일을 추가하거나 별도의 운영체제를 설치할 수도 있고 모니터링 툴도 설치할 수 있다
- EC2 인스턴스에 설치하고자 하는 모든 소프트웨어를 AMI가 미리 패키징해줘서 부팅 및 설정시간을 줄일 수 있다
- 마켓플레이스에서 구매해서 사용할 수도 있다
EFS
- Elastic File System
- EFS는 관리형 NFS이다. (네트워크 파일 시스템)
- 네트워크 파일 시스템이므로 많은 EC2 인스턴스에 마운트될 수 있다
- 가용성 높고 확장성이 뛰어나며 비싸다 (GP2 EBS 볼륨의 3배)
- 내부적으로 NFS 프로토콜을 사용하며, EFS에 대한 액세스를 제어하려면 보안 그룹을 설정해야 한다
1. 주요사항
- 윈도우가 아닌
Linux기반 AMI만 호환된다
- KMS를 사용해서 DFS 드라이브에 암호화를 활성화할 수 있다
- 용량을 미리 계획할 필요없이 자동으로 확장되며 사용하는 데이터 GB에 따라 비용을 지불한다
2. 성능 및 스토리지 클래스
- DFS Scale은 동시 NFS 클라이언트 수천개와 10GB이상의 처리량을 확보할 수 있다
- PB규모의 네트워크 파일 시스템으로 자동 확장할 수 있다
- 네트워크 파일 시스템 생성 시 성능 모드를 설정할 수 있으며, 여러 가지 옵션이 있다
- 범용: 지연 시간에 민감한 곳에 사용된다
- MAX I/O: 지연 기간을 길지만 처리량이 높고 병렬성이 높다
- 처리량 모드
- 버스팅: 초당 50MiB + 초당 100 MiB 버스트
- 프로비저닝: 기본적으로 스토리지 크기에 따라 성능이 늘어나지만 스토리지 크기에 관계없이 처리량을 설정하고 싶을 때 사용한다
- 1TB 스토리지에서 초당 1GiB를 처리할 수 있다
- Elastic: 워크로드에 따라 처리량을 조절할 수 있다
- 읽기는 최대 3GiB/s, 쓰기는 1GiB/s까지 가능하다
- 스토리지 계층을 설정할 수 있고 파일을 다른 계층으로 옮길 수 있는 기능이다
- 스탠다드: 자주 액세스하는 파일을 위한 계층이다
- EFS-IA: 자주 액세스하지 않는 용도이며 파일을 검색할 경우 비용이 발생하지만 저장하면 비용이 감소된다
- 아카이브: 거의 액세스하지 않는 용도이고 훨씬 저렴하다
- 수명주기정책을 설정하여 며칠 후에 파일을 어느 계층으로 이동해야 하는지 정의할 수 있다
3. EBS VS EFS
- EBS
- 한번에 하나의 인스턴스에 연결된다 (io1, io2 등 다중 첨부 기능이 있는 경우 제외)
- 가용영역에 의존되어 있다
- GP2 유형의 경우 디스크 크기가 증가하면 IO가 증가한다
- GP3 & io1의 경우 디스크 크기와 관계없이 IO를 증가시킬 수 있다
- AZ간에 마이그레이션하려면 스냅샷을 찍어 EBS스냅샷에 넣은 후 다른 AZ에서 복원해야 한다
- 백업시 IO를 사용하므로 많은 트래픽을 처리하는 동안 성능에 영향을 줄 수 있다
- EFS
- 네트워크 파일 시스템으로 여러 가용영역에 걸쳐 수백 개의 인스턴스에 연결된다
- EBS보다 가격이 더 높지만 스토리지 계층을 활용하여 비용을 절감할 수 있다