[AWS] EBS
2023. 6. 22. 21:27ㆍDevops/AWS
- Elastic Block Store
- 인스턴스가 실행 중인 동안 연결 가능한 네트워크 드라이브
- 물리적 드라이브 X
- 인스턴스와 EBS 볼륨은 네트워크로 연결
- 지연 발생 가능
- 기존 EC2로부터 연결 해제 후 다른 EC2에 연결 가능
노션에서 더 깔끔하게 보실 수 있습니다.
목차
1. 특징
- 인스턴스가 종료되더라도 EBS 볼륨을 마운트하면 데이터 연결 가능
- 특정 가용 영역에 범위 제한
- 다른 가용 영역의 인스턴스와 연결 X
- 스냅샷을 이용하면 다른 가용 영역으로도 이동 가능
- 볼륨이기 때문에 용량을 미리 정해야 함
- Delete on Termination attribute
- 인스턴스 종료 시 EBS 볼륨도 함께 삭제하는 속성
- 루트 볼륨은 기본적으로 활성화
- 그 외 볼륨은 기본적으로 비활성화
- 만약 인스턴스는 종료하더라도 데이터를 보존하고 싶으면 이 속성을 비활성화해야 함
2. 유형
General Purpose SSD
- 비용효율적이며 낮은 지연 시간을 가지는 스토리지
- 시스템 부팅 볼륨, 가상 데스크톱, 개발, 테스트 환경에서 사용 가능
- 1 GiB ~ 16 TiB
gp3
- 최신 세대 볼륨
- 기본 성능으로 3,000 IOPS와 초당 125 MB의 처리량 제공
- 각각 IOPS는 최대 16,000, 처리량은 1,000 MB/s까지 증가 가능
- 볼륨 크기와 IOPS가 연결되어 있지 않음
gp2
- 오래된 버전의 볼륨
- GiB 당 3IOPS 기준, 최소 100 IOPS, 최대 3,000 IOPS로 버스트 가능
- 볼륨 크기와 IOPS가 연결되어 있음
- 볼륨의 크기를 늘릴 때 IOPS도 증가
- 최대 16,000 IOPS
- 1 GiB 당 3 IOPS이고 볼륨 크기가 5,334 GiB 라면 3배인 16,002 IOPS에 도달함
Provisioned IOPS(PIOPS) SSD
- IOPS 성능이 필요한 핵심적인 비즈니스 애플리케이션에 적합한 스토리지
- 16,000 IOPS 이상을 요구하는 애플리케이션에 적합
- DB와 같은 워크로드에 적합
- io1/io2
- 4 GiB ~ 16 TiB
- Nitro EC2 에서는 최대 64,000 IOPS까지 가능
- 그 외의 경우 최대 32,000 IOPS 지원
- gp3처럼 스토리지 크기와 IOPS를 독립적으로 증가시킬 수 있음
- io2 이용 시 io1과 동일한 비용으로 내구성과 GiB 당 IOPS가 더 높음
- io1보다 합리적으로 이용 가능
- io2 Block Express (4 GiB ~ 64 TiB)
- 좀 더 고성능 유형의 볼륨
- 밀리초 미만의 지연 시간
- IOPS 대 GiB 비율이 1,000:1일 때 최대 256,000 IOPS 지원
Hard Disk Drives(HDD)
- 부팅 볼륨으로 사용 불가
- 최소 125MiB, 최대 16TiB
st1: 처리량 최적화 HDD
- 빅데이터, 데이터 웨어하우스, 로그 처리 등에 활용
- 최대 500 MiB/s의 처리량, 최대 500 IOPS
sc1: Cold HDD
- 아카이브 데이터용
- 접근 빈도가 낮은 데이터 저장 시 사용
- 최저 비용으로 데이터 저장 가능
- 최대 250MiB/s의 처리량, 최대 250 IOPS
3. 스냅샷
- EBS 볼륨의 특정 시점에 대한 백업
- 볼륨을 연결 해제하기 위해 스냅샷을 만드는 게 필수는 아니지만 권장 사항
특징
EBS Snapshot Archive
- 최대 75% 저렴한 가격으로 archive tier로 스냅샷을 옮길 수 있음
- 아카이브를 복원하는데 24시간에서 최대 72시간 소요
Recycle Bin for EBS Snapshots
- EBS 스냅샷을 삭제하는 경우 영구 삭제하는 대신 휴지통에 넣을 수 있음
- 실수로 삭제하는 경우 휴지통에서 복원 가능
- 보관 기간은 1일 ~ 1년으로 설정 가능
Fast Snapshot Restore(FSR)
- 스냅샷을 완전 초기화해 첫 사용에서 지연 시간을 없애는 기능
- 스냅샷이 매우 크고 EBS 볼륨 또는 EC2 인스턴스를 빠르게 초기화할 때 유용
- 비용이 많이 듦
4. EC2 Instance Store
- 기본 EBS보다 높은 디스크 성능을 요구하는 경우 활용할 수 있는 인스턴스
- 매우 높은 IOPS를 제공하기 때문에 고성능이 필요한 경우 사용
- io2 Block Express의 경우 최대 256,000 IOPS를 제공하므로 이보다 더 높은 성능이 필요한 경우 인스턴스 스토어를 사용하고 백업하는 방식으로 설계 가능
- EC2 인스턴스는 가상 머신이지만 실제로는 하드웨어 서버에 연결되어 있음
- 이와 같은 서버에 해당 서버에 물리적으로 연결된 디스크 공간을 가짐
- 이러한 특정 유형의 EC2 인스턴스를 EC2 인스턴스 스토어라고 부름
- 해당하는 물리적 서버에 연결된 하드웨어 드라이브를 가리킴
💡 인스턴스 스토어 중지 또는 종료 시 스토리지 또한 손실되므로 장기적인 데이터 용도로는 부적합하다. 장기 스토리지의 경우 EBS를 사용해야 한다. 또한 EC2 인스턴스가 연결된 하드웨어에도 장애가 발생하기 때문에 이러한 경우 데이터 손실에 대한 위험이 존재한다. 따라서 필요에 따라 데이터를 백업 또는 복제해야 한다.
사용 사례
- 버퍼, 캐시, 스크래치 데이터, 임시 콘텐츠
5. EBS 다중 연결
- 하나의 EBS 볼륨을 여러 인스턴스에서 사용할 수 있는 기능
- io1/io2만 가능
- 동일한 가용 영역에서만 가능
- 1개의 EBS 볼륨은 16개의 EC2 인스턴스만 연결 가능
- 반드시 클러스터 인식 파일 시스템을 사용해야 함
- XFS, EX4 등의 파일 시스템은 사용 X
사용 사례
- 애플리케이션 가용성을 높이고 싶을 때
- 동시 쓰기 작업을 관리해야 할 때
6. EBS Encryption
- EBS 볼륨을 암호화할 떄 사용하는 기능
볼륨 생성 시 암호화 과정
- EBS 볼륨 생성 시 저장 데이터가 볼륨 내부에 암호화됨
- 인스턴스와 볼륨 간 전송 데이터 역시 암호화됨
- 스냅샷 뿐만 아니라 스냅샷으로 생성한 볼륨 역시 모두 암호화됨
특징
- 암호화는 동시다발적으로 일어나며 EC2와 EBS가 백그라운드에서 모두 처리
- 암호화는 지연 시간에 거의 없음
- KMS에서 암호화 키를 생성해 AES-256 암호화 표준을 갖고 있음
- 따라서 암호화를 사용하는 편이 권장됨