아마존 EBS
IT 위키
더 많은 작업
(EBS에서 넘어옴)
- Amazon Elastic Block Store; Amazon EBS; 아마존 EBS
- 아마존 EC2 인스턴스에 붙여 로컬 디스크처럼 쓰는 블록 스토리지 볼륨 서비스
아마존 Elastic Block Store(아마존 EBS)는 EC2 인스턴스에 연결하는 네트워크 기반 블록 디스크이다. 인스턴스 입장에서는 일반 하드디스크처럼 보이므로 파일 시스템을 만들고 OS 부트 볼륨, 데이터베이스 데이터 파일, 애플리케이션 디스크로 쓴다. 인스턴스를 중지했다 시작해도 데이터가 남는 영구 스토리지이며, 인스턴스와 별개의 수명 주기를 가진다.
EBS 볼륨은 하나의 가용 영역 안에 만들어지고 그 가용 영역 안의 여러 서버에 자동 복제된다. 따라서 같은 가용 영역의 인스턴스에만 연결할 수 있고, 가용 영역 장애에 대비하려면 스냅샷이나 애플리케이션 수준 복제가 필요하다. 블록 스토리지의 일반 개념은 객체 스토리지 문서에서 비교한다.
| 항목 | 설명 |
|---|---|
| 볼륨 | 인스턴스에 연결하는 블록 장치. 크기, 유형, IOPS, 처리량을 정한다. |
| 가용 영역 범위 | 볼륨과 인스턴스는 같은 가용 영역에 있어야 한다. 다른 가용 영역·리전으로 옮기려면 스냅샷을 거친다. |
| 내구성 | io2 Block Express는 99.999%(연간 실패율 0.001%), 나머지 유형은 99.8~99.9%로 설계되었다. |
| Elastic Volumes | 지원되는 인스턴스에서는 분리나 재시작 없이 크기를 늘리고 유형과 성능을 바꿀 수 있다. |
| 스냅샷 | 볼륨의 특정 시점 백업. 증분 방식으로 S3에 저장된다. |
| 암호화 | AWS KMS 키로 볼륨, 스냅샷, 인스턴스와 볼륨 사이 전송 데이터를 암호화한다. |
SSD 계열은 작은 I/O를 자주 하는 트랜잭션 작업(IOPS가 중요), HDD 계열은 큰 순차 I/O를 하는 스트리밍 작업(처리량이 중요)에 맞춘다.
| 유형 | 분류 | 볼륨 크기 | 최대 IOPS | 최대 처리량 | 주 용도 |
|---|---|---|---|---|---|
| gp3 | 범용 SSD | 1GiB~64TiB | 80,000 | 2,000MiB/s | 부트 볼륨, 개발·테스트, 중간 규모 DB, 대부분의 일반 작업. 크기와 무관하게 기본 3,000 IOPS·125MiB/s를 주고 IOPS·처리량을 따로 추가한다. |
| gp2 | 범용 SSD | 1GiB~16TiB | 16,000 | 250MiB/s | GiB당 3 IOPS로 성능이 크기에 비례한다. 1TiB 미만은 I/O 크레딧으로 3,000 IOPS까지 버스트한다. |
| io2 Block Express | 프로비저닝된 IOPS SSD | 4GiB~64TiB | 256,000 | 4,000MiB/s | 지속적인 고성능과 1밀리초 미만 지연이 필요한 핵심 DB. 내구성 99.999%. |
| io1 | 프로비저닝된 IOPS SSD | 4GiB~16TiB | 64,000 | 1,000MiB/s | I/O 집약적 DB. 신규 구성에는 AWS가 io2를 권장한다. |
| st1 | 처리량 최적화 HDD | 125GiB~16TiB | 500 | 500MiB/s | 빅데이터, 데이터 웨어하우스, 로그 처리처럼 큰 파일을 순차로 읽는 작업 |
| sc1 | 콜드 HDD | 125GiB~16TiB | 250 | 250MiB/s | 자주 읽지 않는 대용량 데이터, 저장 단가가 가장 중요한 경우 |
- st1과 sc1은 부트 볼륨으로 쓸 수 없다.
- 최대 IOPS는 Nitro 기반 인스턴스 기준이다. 인스턴스 유형마다 EBS 대역폭 한도가 따로 있으므로 볼륨 성능만 올려서는 안 되고 인스턴스 쪽 한도도 함께 봐야 한다.
- gp2에서 gp3로 바꾸면 같은 성능을 더 낮은 비용에 얻는 경우가 많다. gp3는 버스트 없이 설정한 성능을 계속 낸다.
- 증분 백업: 첫 스냅샷 이후에는 바뀐 블록만 저장한다. 그래서 오래된 스냅샷을 지워도 다른 스냅샷이 참조하는 블록은 남는다.
- 저장 위치: AWS가 관리하는 S3에 저장되며 리전 안 모든 가용 영역에 복제된다. 사용자가 S3 콘솔이나 API로 직접 볼 수는 없다.
- 다른 가용 영역·리전으로 이동: 스냅샷에서 다른 가용 영역에 볼륨을 만들거나, 스냅샷을 다른 리전으로 복사해 재해 복구용 사본을 둔다. 다른 계정과 공유도 가능하다.
- 스냅샷 아카이브: 거의 쓰지 않는 스냅샷을 아카이브 계층으로 옮기면 저장 비용이 최대 75% 줄어든다. 아카이브할 때 전체 스냅샷으로 변환되고, 최소 보관 기간은 90일이며, 쓰려면 먼저 표준 계층으로 복원해야 한다.
- 빠른 스냅샷 복원(FSR): 스냅샷에서 만든 볼륨은 블록을 처음 읽을 때 지연이 생긴다. FSR을 켜면 생성 즉시 완전히 초기화된 볼륨을 받는다.
- 휴지통(Recycle Bin): 실수로 지운 스냅샷, 볼륨, EBS 기반 AMI를 정해 둔 보존 기간 안에 되살린다.
아마존 Data Lifecycle Manager(DLM)는 EBS 스냅샷과 EBS 기반 AMI의 생성·보존·삭제 일정을 정책으로 자동화한다. 태그로 대상 볼륨을 고르고, 다른 리전 복사도 정책에 넣을 수 있다. 추가 요금은 없다. RDS, DynamoDB, EFS 등 여러 서비스의 백업을 한곳에서 관리하려면 AWS Backup을 쓴다.
- KMS 키로 볼륨을 암호화하면 저장 데이터, 볼륨과 인스턴스 사이 전송 데이터, 그 볼륨의 스냅샷, 스냅샷에서 복원한 볼륨이 모두 암호화된다.
- 기본 암호화(encryption by default)는 리전 단위 설정이다. 켜 두면 그 리전에서 새로 만드는 볼륨과 스냅샷 사본이 자동으로 암호화된다.
- 암호화된 볼륨이나 스냅샷의 암호화를 해제할 수 없고, 기존 볼륨의 KMS 키를 바꿀 수도 없다.
- 암호화되지 않은 기존 볼륨은 스냅샷을 만들고, 스냅샷을 암호화 옵션과 함께 복사한 뒤, 그 사본으로 새 볼륨을 만들어 교체한다.
- 암호화된 스냅샷은 공개 공유할 수 없지만 특정 계정과는 공유할 수 있다(KMS 키 권한도 함께 줘야 한다).
- 일반 작업이나 부트 볼륨의 비용 최적화는 gp3이다. gp2를 gp3로 바꾸는 선택지가 흔히 정답이다.
- 지속적으로 매우 높은 IOPS와 낮은 지연이 필요한 DB는 io2 Block Express, 대용량 순차 처리(로그, 빅데이터)는 st1, 거의 읽지 않는 대용량을 가장 싸게 두려면 sc1을 고른다. HDD 유형은 부트 볼륨이 될 수 없다.
- 볼륨은 한 가용 영역에 묶인다. 다른 가용 영역의 인스턴스로 옮기거나 다른 리전에 백업하려면 스냅샷을 만들고 복사한다.
- 여러 인스턴스가 같은 데이터를 공유하는 일반 요구는 EFS(리눅스)나 FSx(윈도우)이다. EBS Multi-Attach는 io1·io2, 같은 가용 영역, 클러스터 인식 애플리케이션이라는 조건이 붙는다.
- 재시작 후 사라져도 되는 고속 임시 데이터는 인스턴스 스토어, 남아야 하는 데이터는 EBS이다.
- 기존 비암호화 볼륨 암호화는 "스냅샷 → 암호화 복사 → 새 볼륨" 순서이다. 스냅샷 일정 자동화는 Data Lifecycle Manager나 AWS Backup이다.
- Amazon EBS 볼륨 유형 – AWS
- 다중 연결을 사용하여 여러 EC2 인스턴스에 EBS 볼륨 연결 – AWS
- Amazon EBS 스냅샷 – AWS
- Amazon EBS 암호화 – AWS
- EC2 인스턴스용 인스턴스 스토어 임시 블록 스토리지 – AWS
