본문 바로가기

Cloud

AWS - EBS

EBS(Elastic Block Store)

- 인스턴스가 실행중인 동안 연결 가능한 네트워크 드라이브로, 인스턴스가 종료된 후에도 데이터를 지속할 수 있음(EBS 주요 목적)

인스턴스를 재생성하고 이전 EBS 볼륨을 Mount하면 데이터를 다시 받을 수 있음

 

CCP 레벨의 EBS 볼륨이 있고 Associate 레벨의 EBS 볼륨이 있습니다.

CCP 레벨의 EBS 볼륨은 하나의 EBS 볼륨은 하나의 EC2 Instance에만 Mount가 가능합니다.

Associate 레벨의 EBS 볼륨은 일부 EBS 볼륨에 대해 EC2 Instance 다중 연결이 가능합니다.

 

EBS 볼륨을 생성할 때에는 특정 가용영역(AZ)에 대해서만 사용 가능합니다.

예를 들어, EBS 볼륨이 us-east-1a에 생성된 경우 us-east-1b에서는 연결할 수 없습니다.

네트워크 USB 스틱과 같은 느낌이며 무료 버전은 30GB/1Month EBS Storage 범용 SSD  혹은 마그네틱 유형으로 제공됩니다.

 

 

EBS 볼륨은 네트워크 드라이브(저장소)이기에 물리적인 드라이브가 아니고, 인스턴스와 EBS 볼륨 사이에서 통신할 때에는 네트워크가

필요하기 때문에 속도 지연문제가 있을 수 있습니다.

EBS 볼륨은 네트워크 드라이브로 EC2 인스턴스에서 분리될 수 있고 매우 빠르게 다른 인스턴스로 연결될 수 있습니다.

따라서 대체 작용 등에 유용합니다.

 

볼륨 생성

여기서 중요한건 볼륨은 가용 영역을 같게 해야만 다른 인스턴스에서 사용할 수 있으므로 가용 영역을 같게하여 생성합니다.

인스턴스와 볼륨 연결

 

같은 가용 영역이기에 거기에 있는 인스턴스에 볼륨을 연결합니다. 

새로 생성한 볼륨은 인스턴스 종료시 볼륨이 제거되는 옵션을 주지 않았기 때문에 제거가 되지 않고 남습니다.

이 볼륨은 다른 인스턴스에 연결해서 그대로 사용해도 됩니다. (단, 루트 볼륨은 기본 셋팅이 인스턴스가 종료되면 자동으로

삭제되도록 되어 있기 때문에 같이 삭제됩니다.  따라서 이 옵션에 대해서 잘 체크해주시면 됩니다. (Delete on Termination))

볼륨 생성

 

 

스냅샷을 이용하면 다른 가용영역(AZ)으로도 볼륨을 옮길 수 있습니다.

> 용량을 미리 결정해야 하고 원하는 양의 GB 및 IOPS(단위 초당 전송수)도 미리 정해야 합니다.

 

미리 셋팅하면 관련 프로비젼 용량에 따라 요금이 청구되며 더 좋은 성능이나 큰 사이즈가 필요하면 이후에도 용량을 늘릴 수 있습니다.

같은 AZ 영역에서는 여러 EBS 볼륨을 한 인스턴스에 엮을 수 있습니다.

그렇지만 다른 AZ 영역은 가져다 사용할 수 없습니다.   이를 해결하기 위해 나온 것이 스냅샷입니다.

 

 


EBS 볼륨

: EC2 인스턴스를 생성할 때 콘솔에서 EBS 볼륨을 생성하면 Root Volume은 Default로 체크가 되어 있고 인스턴스가 종료될 때

자동으로 볼륨도 삭제된다고 옵션이 걸려져 있습니다.

그렇지만 커스텀으로 만든 EBS 볼륨은 기본 값이 해당 Delete on Termination 옵션 박스가 체크가 되어 있지 않기 때문에

인스턴스가 종료되더라도 EBS 볼륨은 남아 있습니다.

따라서 인스턴스의 종료와 별개로 EBS 볼륨을 남기고 싶다면 Delete On Termination 옵션을 비활성화하면 됩니다.

 

EBS SnapShot

: 원하는 시점에 대한 백업이며, 해당하는 시점의 상태를 백업으로 남겨둔 상태를 말합니다.

EBS 볼륨이 추후 삭제가 되어도 백업을 통해 복구가 가능합니다.

백업 설정을 위해 백업 전 볼륨을 분리시킬 필요는 없지만 분리를 권장합니다.

복구에도 쓰이지만 여러 가용 영역과 리전 간의 복제에도 쓰입니다.

 

 

원래 EBS 볼륨 자체는 타 AZ나 Region에는 복제할 수 없지만, 스냅샷을 이용한다면 가능합니다.

스냅샷을 통해 현재 만든 EBS 볼륨을 복제하고 타 AZ 또는 Region에 대해 해당 EBS 스냅샷을 복구하여 생성할 수 있습니다.

EBS 스냅샷은 인스턴스(a)에 대해 잠시 중단하고 스냅샷을 생성할 수 있고 중단없이 스냅샷을 생성할 수도 있습니다.

 


EBS 스냅샷 특징으로 2가지가 있습니다.

1) EBS Snapshot Archive

: 스냅샷을 또 다른 스토리지 티어인 "아카이브 티어"로 옮길 수 있고 가격인 75%나 저렴하다.

스냅샷을 일괄적으로 저장하는 공간으로 복구하는데 24~72시간이 소요됩니다.

복구하는데 시간이 오래 걸리기 때문에 급히 복구하지 않아도 되는 중요도가 조금 떨어지는 스냅샷을 저장해두면 됩니다.

비용을 낮추는 것이 목적이며, 스냅샷을 아카이브로(스토리지 티어 -> 아카이브 티어) 이동하게 된다면 해당 스냅샷은

이용할 수 없습니다.  다시 사용하려면 필히 복구는 해야합니다.

 

2) EBS 스냅샷 휴지통(Recycling Bin)

: 스냅샷을 삭제하면 다시 복구는 불가능하지만, 휴지통을 설정해두면 삭제한 모든 스냅샷은 휴지통에 일정 기간 보관됩니다.

(설정한 기간 만큼)

 

스냅샷은 볼륨과 인스턴스에 대해서 만들 수 있습니다. 

복제한 스냅샷은 모든 Region에 대해서 복사할 수 있으며 이는 DR 목적으로 데이터를 백업해두는 것입니다. 

 

 

스냅샷 생성은 볼륨과 인스턴스를 선택해서 처리할 수 있습니다.

스냅샷 생성

 

이렇게 생성한 스냅샷은 복사를 해서 다른 지역 또는 가용 영역에 대해서 복제해 인스턴스를 생성할 수 있습니다.

 

스냅샷 복사

해당 스냅샷에서 볼륨이나 이미지를 생성한 다음에 이를 인스턴스와 연결하여 사용할 수 있습니다.

스냅샷에서 볼륨을 생성한다면 생성된 볼륨은 볼륨 탭에 있을 것이고 그걸 인스턴스에 연결해서 사용하면 됩니다.

마찬가지로 스냅샷에서 이미지를 생성한다면 AMI로 인스턴스를 연결해서 생성할 수 있습니다.

 

 

AMI나 볼륨 모두 Retention 규칙을 설정하게 된다면 삭제할 경우 휴지통으로 이동하게 됩니다. 

설정한 기간 만큼 휴지통에 있기 때문에 바로 복구는 가능하지만 기간이 지나면 자동으로 영구 삭제가 됩니다. 

휴지통에서 보존규칙 셋팅(1)
보존규칙 생성(2)

 

이렇게 보존 규칙을 설정하면 AMI나 볼륨을 삭제할 때 휴지통에 거쳐 들어가기 때문에 복구하기 좋습니다. 

스토리지  티어가 아카이브인 경우, 즉 아카이브를 통해서 스냅샷을 저장해두려고 했을 경우는 복구 시간이 꽤나 걸리기 때문에

중요도가 떨어지는 스냅샷에 대해서만 아카이브 저장을 하고 반대로 휴지통에 들어간 스냅샷은 곧장 복구가 가능하기 때문에

다른 면에서 유용하기도 합니다. 


 

EBS Volume Type

1) gp2

2) gp3

3) io1

4) io2

5) st1

6) sc1

 

 

gp2와 gp3은 범용 SSD 볼륨으로 다양한 워크로드에 대해 가격과 성능이 절충된 볼륨입니다.

io1과 io2는 최고 성능의 SSD 볼륨으로 크리티컬한 업무에 대해서 쓰이며 지연시간이 낮고 대용량 워크로드에 쓰입니다.

st1은 저비용 HDD Volume으로 잦은 접근과 처리량이 많은 워크로드에 쓰입니다.

sc1은 가장 비용이 적게드는 HDD 볼륨으로 접근 빈도가 낮은 워크로드를 위해 설계가 되었습니다.

 

범용SSD 

gp2 gp3
짧은 지연 시간, 효율적인 비용의 스토리지 최신 세대의 볼륨으로 3,000 IOPS를 처리하며 초당 125MB의 처리량을 제공함
시스템 부트 볼륨에서 가상 데스크탑, 개발, 테스트 환경에서 사용 가능 각각의 IOPS는 최대 16,000 IOPS, 처리량은 초당 1,000MB까지
증가 가능하며 각 볼륨은 독립적
1GB~16TB, 최대 3,000 IOPS
볼륨과 IOPS가 연결되어 있어서 IOPS가 증가하면 볼륨(GB)의 수를
늘릴 때에도 같이 증가(IOPS와 Volume은 연결되어 있음)
IOPS와 Volume(처리량)은 독립적으로 설정

 

프로비져닝된 IOPS SDD

- io1

- io2

 

: IOPS 성능을 유지할 필요가 있는 주요 비즈니스 애플리케이션이나 16,000 IOPS 이상을 필요로 하는 애플리케이션에 적합

데이터 베이스 워크로드에 잘맞고 스토리지에도 사용

스토리지 성능과 일관성에 대해서 민감하므로 범용 볼륨에서 프로비져닝 된 볼륨으로 업그레이드 할 것

4GB ~ 16TB까지 사용 가능하며 최대 64,000 IOPS를 소화하는 Nitro IOPS를 사용하면 더 큰 워크로드에 프로세싱이 잘 됨

cf:) Nitro EC2 Instance가 아니면 최대 32,000 IOPS까지 지원

 

io1, io2는 gps3 볼륨처럼 프로비져닝 된 IOPS를 스토리지와 독립적으로 분리시켜 사이즈를 증가시킬 수 있음

 

[범용SSD 볼륨과 IOPS 프로비져닝 된 SSD 볼륨 비교]

 

io2가 io1에 비해서 좋은점

- 동일한 비용임에도 불구하고 내구성과 GB당 IOPS 수가 더 높음(초당 I/O 처리 량이 더 많음)

- 4GB ~ 64TB

- 고성능 유형의 볼륨

- 지연 시간이 밀리초(ms) 미만

- IOPS 대 GB 비율이 1000:1 이라면, 최대 256,000 IOPS를 소화할 수 있음

 


ST1(Throughput Optimized HDD) SC1(Cold HDD)
부트 볼륨이 없고 125MiB ~ 16TB HDD 볼륨
처리량 최적화된 HDD
> 빅데이터나 데이터 웨어하우징, 로그 처리에 적합
> 최대 처리량은 초당 500mb이며 최대 IOPS는 500
아카이브 데이터용
> 접근 빈도가 낮은 데이터에 적합하며 최저 비용으로 데이터를 저장
> 최대 처리량은 초당 250mb이며 최대 IOPS는 250
   
   
32,000 IOPS 이상을 요구할 경우 io1 or io2의 EC2 Nitro Instance를 활용할 것 
EBS 볼륨 다중 연결을 위해서는 프로비저닝 IOPS를 활용할 것

 

HDD 비교

 

 

 


프로비져닝된 IOPS의 EBS 볼륨은 인스턴스와 다중 연결이 가능합니다.

한 가용영역에 대해서 여러 인스턴스가 있고 하나의 다중 연결이 가능한 io2 볼륨이 있다고 합시다.

각 EC2 인스턴스는 볼륨에 대해 전체 읽기 및 쓰기 권한을 가집니다.

TeraData와 같이 클러스터 된 Linux 애플리케이션에서 애플리케이션의 가용성을 높여야 할 경우가 있기에,

모든 애플리케이션에 대해서는 가능하지 않으나, 해당 애플리케이션 내에서는 동일한 볼륨에서 동시 쓰기 작업을 관리할 수 있어야 합니다.

 

> 특정 워크로드에만 해당하고 특정 유형의 EBS 볼륨에 대해서만 가능

> 반드시 클러스터 인식 파일시스템을 사용 --> XFS나 EX4는 사용할 수 없고 특별한 파일 시스템이 필요

> EBS는 io1, io2와 같이 프로비저닝된 IOPS 볼륨에 대해서 여러 EC2 인스턴스에 연결이 가능하단 점 

반응형

'Cloud' 카테고리의 다른 글

AWS - EFS  (1) 2023.01.17
AWS - AMI  (1) 2023.01.17
AWS - EC2 Instance 구매 옵션  (0) 2023.01.17
AWS - Security group  (2) 2023.01.17
AWS - EC2  (0) 2023.01.17