[AWS]EC2 Instance 블록 스토리지

nevermindyy·2025년 3월 7일

AWS

목록 보기
3/3
post-thumbnail

공부 목적으로 작성된 글입니다.

블록 스토리지

데이터를 고정 크기의 블록으로 나누어 저장하는 방식

효율적이고 빠르고 신뢰할 수 있는 데이터 액세스가 필요한 애플리케이션에 블록 스토리지를 사용한다.

스토리지 종류는 파일 스토리지, 블록 스토리지, 객체 스토리지가 있다.

박스모양의 이미지가 AWS의 블록스토리지

AWS 스토리지 서비스

  • 파일 스토리지: EFS,FSx
  • 블록 스토리지: EBS,인스턴스 스토어
  • 객체 스토리지: S3

인스턴스 스토어

EC2 인스턴스에 제공되는 임시 블록 스토리지

버퍼, 캐시, 스크래치 데이터, 기타 임시 콘텐츠 등 자주 변경되는 데이터에 적합

호스트 컴퓨터에 물리적으로 연결된 디스크에서 제공


인스턴스 루트 볼륨

인스턴스를 시작하면 해당 인스턴스에 대응되는 루트 볼륨이 생성된다.
루트 볼륨 = 인스턴스의 기본 저장 장치로 AMI같은 부팅 파일이 들어있다.
루트 볼륨의 유형은 2가지로 EBS 루트 볼륨인스턴스 스토어 루트 볼륨이 있다.

EBS 루트 볼륨

EBS 루트 볼륨을 사용하는 인스턴스는 중지한 후 다시 시작해도 연결된 볼륨에 저장된 데이터에 아무런 영향이 없다.
인스턴스의 속성을 수정하거나, 인스턴스의 크기를 변경하거나, 사용하는 커널을 업데이트하거나, 디버깅 등의 목적으로 루트 볼륨을 실행 중인 다른 인스턴스에 연결할 수 있다.

st1 또는 sc1 EBS 볼륨은 루트 볼륨으로 사용할 수 없다.

인스턴스 스토어 루트 볼륨(Linux 인스턴스만 해당)

인스턴스 스토어 볼륨의 모든 데이터는 종료되거나 장애가 발생하면 삭제된다.(중지 작업은 지원하지 않는다.)

C1, C3, D2, I2, M1, M2, M3, R3 및 X1과 같은 인스턴스 유형만 인스턴스 스토어 볼륨을 루트 볼륨으로 지원한다.
+window 인스턴스는 지원하지 않는다.

AMI(Amazon Machine Image)

인스턴스를 실행할 때마다 os와 인스턴스 유형,각종 설정들을 일일이 설정하면 너무 귀찮지 않을까...?
--> 인스턴스를 미리 패키징하여 해결 = AMI

인스턴스를 생성하는데 모든 정보를 포함하는 템플릿(운영체제, 어플리케이션 서버,관련 설정 등)
이러한 데이터들이 미리 준비되어있기 때문에 부팅 시간이 단축된다.

동일한 구성의 여러 인스턴스가 필요할 때 단일 AMI에서 여러 인스턴스를 시작할 수 있다.


EBS

AWS에서 제공하는 고성능 분산 블록 스토리지 서비스

EC2인스턴스는 데이터를 저장하고 처리하기 위해 스토리지가 필요한데 그 중 하나가 EBS이다.
-->강의에서는 마치 "네트워크 USB"에 비유했다

특징

  • 특정 AZ에 바인딩 된다.-->인스턴스와 같은 AZ에 있어야함
    (다른 AZ로 이동하기 위해선 스냅샷을 따로 만들어야함)
  • 암호화를 사용하여 Amazon EBS 볼륨과 Amazon EBS 스냅샷을 암호화한다.
  • 가용성 : AZ의 여러 서버에 자동으로 복제되어 단일 구성 요소의 실패로 인한 데이터 손실을 방지한다.
  • 하나의 인스턴스에 EBS를 다중 연결 가능하다. (io2/io1)

    하나의 EBS가 다중 인스턴스 연결되는건 불가능하다.

EBS 볼륨 유형

EBS 볼륨 유형은 크케 3가지 나눌 수 있다.

  • General Purpose SSD volumes
  • Provisioned IOPS SSD volumes
  • Hard disk drive (HDD) volumes

General Purpose SSD volumes

다양한 트랜잭션 워크로드를 위한 가격과 성능의 균형을 유지한다. (말그대로 범용성)

gp3/gp2

Provisioned IOPS SSD volumes

짧은 지연 시간이 필요한 중요하고 IOPS 집약적이며 처리량 집약적 워크로드를 위해 설계되었다.

io2/io1

Hard disk drive (HDD) volumes

성능 기준이 throughput인 대규모 스트리밍 워크로드에 최적화되어 있다.
높은 IOPS보다는 대규모 순차적 I/O 처리에 최적화

st1/sc1

볼륨 유형 스펙

위에 3가지 볼륨 유형의 대한 자세한 스펙은 아래 테이블을 참조

SDD volumes

HDD volumes

IOPS (Input/Output Operations Per Second)

스토리지 장치가 1초 동안 수행할 수 있는 읽기 및 쓰기 작업의 수

IOPS = (총 읽기 + 쓰기 작업) / 시간(초)

Throughput (처리량)

단위 시간당 전송할 수 있는 데이터의 양을 측정

Throughput = IOPS x 블록 크기

EBS 스냅샷

EBS 볼륨 데이터를 백업하려면 --> 스냅샷 생성 (특정 시점)
스냅샷을 통해 다른 AZ or 리전으로 복사 가능하다.(S3에 저장)

EBS 스냅샷 작동방식

볼륨에서 생성하는 첫 번째 스냅샷은 항상 전체 스냅샷이다.
--> 후속 스냅샷은 증분 스냅샷이다.

동일 볼륨의 스냅샷

다음 다이어그램은 동일 볼륨의 여러 스냅샷이 작동되는 방식이다.

15GB의 볼륨에서 세 시점에서의 스냅샷 촬영

  • 상태 1 에서 볼륨에는 10GB의 데이터가 들어있다.
    스냅샷 A는 볼륨의 첫 번째 스냅샷이다. --> 전체 데이터 10GB 백업

  • 상태 2 에서 볼륨의 4GB가 변경되었다.(전체 데이터는 여전히 10GB)
    스냅샷 B는 증분 스냅샷이다. --> 변경된 데이터만 백업
    즉 전체가 변경되는것이 아닌 바뀐 부분만 백업하여 특정 시점으로 백업이 가능하게 한다.

  • 상태 3 에서 스냅샷 B가 촬영된 후 2GB총 데이터가 볼륨에 추가되었다.
    스냅샷 C역시 증분 스냅샷이다.
    스냅 B가 촬영된 후 추가된 데이터만 백업하면 된다.

  • 3개의 스냅샷에 필요한 총 스토리지는 16 GB이다.
    스냅샷 A = 10GB
    스냅샷 B = 4GB
    스냅샷 C = 2GB

다양한 볼륨의 스냅샷

다음 다이어그램은 다양한 볼륨의 여러 스냅샷이 작동되는 방식이다.

볼륨 1의 용량은 14GB이고 그 중 10GB의 데이터가 들어있다.

  • 스냅샷 A는 볼륨의 첫 번째 스냅샷이다. --> 전체 데이터 10GB 백업

  • 볼륨 2는 스냅샷 A에서 만들어졌다. (볼륨 1 = 볼륨 2)
    볼륨 2에 4GB의 데이터가 추가되었다. (볼륨2의 총 데이터 = 14GB)

  • 스냅샷 B는 볼륨 2 에서 가져온다.
    스냅샷 B는 추가된 4GB의 데이터만 백업한다.(스냅샷 B의 총 데이터 = 4GB)

  • 스냅샷 B는 다른 볼륨에서 생성되었지만 스냅샷 A 의 증분 스냅샷이다.

EBS 암호화

EBS 암호화를 사용하면 다음 유형의 데이터가 암호화된다.

  • 볼륨 내부에 있는 정지 데이터
  • 볼륨과 인스턴스 간에 이동하는 모든 데이터
  • 볼륨에서 생성된 모든 스냅샷
  • 해당 스냅샷에서 생성된 모든 볼륨

EBS는 리소스를 만든 각 리전에 고유한 AWS KMS를 자동으로 생성한다.
AES-256 데이터 암호화를 사용하여 볼륨을 AWS KMS로 암호화한다.

암호화 되지 않은 EBS 암호화 방법

기본적으로 암호화 되지 않은 EBS볼륨을 바로 암호화는 불가능하다.
대신 다음의 순서를 거쳐서 EBS볼륨을 암호화하는 방법이 있다.

  • 암호화 되지 않은 EBS 볼륨의 스냅샷 생성
  • EBS 스냅샷 복사 기능을 통해 암호화
  • 암호화된 스냅샷에서 암호화된 EBS 생성

정리

ebs vs 인스턴스 스토어 비교

특성EBS (Elastic Block Store)인스턴스 스토어
데이터 지속성영구적 (인스턴스 종료/중지 후에도 데이터 유지)임시적
연결 방식네트워크를 통해 연결인스턴스에 물리적으로 연결
지연 시간상대적으로 높음매우 낮음
I/O 성능다양한 옵션 제공 (gp2, gp3, io1, io2 등)매우 높음
확장성볼륨 크기 조정 가능, 볼륨 추가 가능인스턴스 유형에 따라 고정
백업스냅샷을 통한 백업 지원사용자가 직접 관리해야 함
다중 연결io2/io1 지원지원하지 않음
사용 사례운영 체제 및 데이터 저장, 데이터베이스, 지속적인 워크로드임시 데이터 저장, 캐시, 버퍼, 스크래치 데이터
가용성모든 EC2 인스턴스 유형에서 사용 가능특정 인스턴스 유형에서만 사용 가능
데이터 공유여러 인스턴스 간 데이터 공유 가능단일 인스턴스에서만 사용 가능
리전 및 AZ특정 AZ에 연결, 스냅샷으로 리전 간 이동 가능인스턴스와 동일한 AZ에 위치

참고자료

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/Storage.html

https://aws.amazon.com/what-is/block-storage/

https://docs.aws.amazon.com/ebs/latest/userguide/EBSFeatures.html

https://www.udemy.com/course/best-aws-certified-solutions-architect-associate/

profile
끄적끄적

0개의 댓글