본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
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는 버스트 없이 설정한 성능을 계속 낸다.

다중 연결(Multi-Attach)

편집 원본 편집

Multi-Attach를 켠 io1·io2 볼륨 하나를 같은 가용 영역의 Nitro 기반 인스턴스 최대 16대에 동시에 연결할 수 있다. 모든 인스턴스가 읽기·쓰기 권한을 갖지만, XFS나 EXT4 같은 일반 파일 시스템은 여러 서버의 동시 접근을 고려하지 않으므로 클러스터 파일 시스템이나 쓰기 순서를 직접 관리하는 애플리케이션이 필요하다. 여러 서버가 파일을 공유하는 일반적인 요구라면 Multi-Attach보다 아마존 EFS나 아마존 FSx가 맞다.

  • 증분 백업: 첫 스냅샷 이후에는 바뀐 블록만 저장한다. 그래서 오래된 스냅샷을 지워도 다른 스냅샷이 참조하는 블록은 남는다.
  • 저장 위치: AWS가 관리하는 S3에 저장되며 리전 안 모든 가용 영역에 복제된다. 사용자가 S3 콘솔이나 API로 직접 볼 수는 없다.
  • 다른 가용 영역·리전으로 이동: 스냅샷에서 다른 가용 영역에 볼륨을 만들거나, 스냅샷을 다른 리전으로 복사해 재해 복구용 사본을 둔다. 다른 계정과 공유도 가능하다.
  • 스냅샷 아카이브: 거의 쓰지 않는 스냅샷을 아카이브 계층으로 옮기면 저장 비용이 최대 75% 줄어든다. 아카이브할 때 전체 스냅샷으로 변환되고, 최소 보관 기간은 90일이며, 쓰려면 먼저 표준 계층으로 복원해야 한다.
  • 빠른 스냅샷 복원(FSR): 스냅샷에서 만든 볼륨은 블록을 처음 읽을 때 지연이 생긴다. FSR을 켜면 생성 즉시 완전히 초기화된 볼륨을 받는다.
  • 휴지통(Recycle Bin): 실수로 지운 스냅샷, 볼륨, EBS 기반 AMI를 정해 둔 보존 기간 안에 되살린다.

아마존 Data Lifecycle Manager

편집 원본 편집

아마존 Data Lifecycle Manager(DLM)는 EBS 스냅샷과 EBS 기반 AMI의 생성·보존·삭제 일정을 정책으로 자동화한다. 태그로 대상 볼륨을 고르고, 다른 리전 복사도 정책에 넣을 수 있다. 추가 요금은 없다. RDS, DynamoDB, EFS 등 여러 서비스의 백업을 한곳에서 관리하려면 AWS Backup을 쓴다.

  • KMS 키로 볼륨을 암호화하면 저장 데이터, 볼륨과 인스턴스 사이 전송 데이터, 그 볼륨의 스냅샷, 스냅샷에서 복원한 볼륨이 모두 암호화된다.
  • 기본 암호화(encryption by default)는 리전 단위 설정이다. 켜 두면 그 리전에서 새로 만드는 볼륨과 스냅샷 사본이 자동으로 암호화된다.
  • 암호화된 볼륨이나 스냅샷의 암호화를 해제할 수 없고, 기존 볼륨의 KMS 키를 바꿀 수도 없다.
  • 암호화되지 않은 기존 볼륨은 스냅샷을 만들고, 스냅샷을 암호화 옵션과 함께 복사한 뒤, 그 사본으로 새 볼륨을 만들어 교체한다.
  • 암호화된 스냅샷은 공개 공유할 수 없지만 특정 계정과는 공유할 수 있다(KMS 키 권한도 함께 줘야 한다).

인스턴스 스토어와 비교

편집 원본 편집
호스트에 붙은 인스턴스 스토어와 네트워크로 연결되는 EBS 볼륨
구분 EBS 볼륨 인스턴스 스토어
위치 네트워크로 연결된 별도 스토리지 호스트 서버에 물리적으로 붙은 디스크
지속성 인스턴스를 중지·종료해도 유지(종료 시 삭제 설정 가능) 재부팅에는 유지, 중지·최대 절전·종료하면 사라짐
스냅샷·분리 가능 불가
성능 유형별로 선택, 네트워크 대역폭 영향 매우 높은 IOPS와 낮은 지연
용도 부트 볼륨, DB, 영구 데이터 버퍼, 캐시, 스크래치 데이터, 여러 인스턴스에 복제된 임시 데이터
  • 일반 작업이나 부트 볼륨의 비용 최적화는 gp3이다. gp2를 gp3로 바꾸는 선택지가 흔히 정답이다.
  • 지속적으로 매우 높은 IOPS와 낮은 지연이 필요한 DB는 io2 Block Express, 대용량 순차 처리(로그, 빅데이터)는 st1, 거의 읽지 않는 대용량을 가장 싸게 두려면 sc1을 고른다. HDD 유형은 부트 볼륨이 될 수 없다.
  • 볼륨은 한 가용 영역에 묶인다. 다른 가용 영역의 인스턴스로 옮기거나 다른 리전에 백업하려면 스냅샷을 만들고 복사한다.
  • 여러 인스턴스가 같은 데이터를 공유하는 일반 요구는 EFS(리눅스)나 FSx(윈도우)이다. EBS Multi-Attach는 io1·io2, 같은 가용 영역, 클러스터 인식 애플리케이션이라는 조건이 붙는다.
  • 재시작 후 사라져도 되는 고속 임시 데이터는 인스턴스 스토어, 남아야 하는 데이터는 EBS이다.
  • 기존 비암호화 볼륨 암호화는 "스냅샷 → 암호화 복사 → 새 볼륨" 순서이다. 스냅샷 일정 자동화는 Data Lifecycle Manager나 AWS Backup이다.