AWS

EBS에 대해 조금 더 자세히 알아보자

S_N_Y 2024. 3. 19. 10:54

 

추가 보충되는 자료이니 이전에 정리해둔 아래의 글과 같이 보면 도움이 될 것이다👍

https://670811.tistory.com/48

 

EC2 Instance Storage

# 들어가기 앞서.. - EBS 볼륨이란?🧐 - 네트워크 드라이브(물리적 드라이브 X) : 인스턴스와 EBS 볼륨이 서로 통싢기 위해서는 네틑워크를 필요로 한다. 그리고 네트워크를 사용하기 위해 컴퓨터가

670811.tistory.com

 

#0 EBS 볼륨 - EC2를 종료해도 데이터를 살릴 수 있는 '네트워크 USB' 🖲️

Elastic Block Store(EBS)는 인스턴스가 실행 중인 동안 연결 가능한 네트워크 드라이브이다.

EBS 볼륨을 사용하면 인스턴스가 종료된 후에도 데이터를 지속할 수 있는 점,

이 이유가 EBS 볼륨을 쓰는 목적이다.

=> 인스턴스를 재생성하고 이전 EBS 볼륨을 마운트하면 데이터를 다시 받을 수가 있기 때문

또 다른 특징은 다음과 같다.

1. EBS 볼륨을 생성할 때는 특정 가용 영역에만 기능하다. (1A에 생성했는데 1B에 연결 불가능)

2. 볼륨이기 때문에 용량을 미리 결정해야 한다.

3. 1개의 EBS 볼륨에 2개의 인스턴스 X🙅‍♂️ -> 1개의 인스턴스에 EBS 볼륨 2개 O 🙆 (고유의 EBS와 연결 가능)

4. EBS 볼륨 생성 후 연결하지 않고 그대로 둘 수 있다 => 꼭 EC2에만 연결되는게 아니기 때문

+) EBS 볼륨 생성 시 '종료시 삭제'라는 속성을 추가하면 삭제시 같이 삭제할 수도 있다!

 

#1 EBS Snapshots(스냅샷) - 사진 찍듯이 특정 시점에 대한 백업📸

스냅샷은 EBS 볼륨의 특정 시점에 대한 백업을 하는 서비스이다.

...

EBS 볼륨 그대로 쓰면 되는데 굳이 스냅샷이 또 왜 필요할까?🤷‍♀️

EC2 인스턴스에 EBS 볼륨을 분리할 필요는 없지만 권장사항으로 자리잡고 있다.

그리고 더해서 EBS Snapshots은 다른 가용영역이나 다른 region에도 복사할 수 있다는 점이 가장 큰 사용 목적이다.

=> EBS 볼륨을 한 AZ에서 다른 AZ로 전송 가능

 

<스냅샷의 상세 기능>

☑️ EBS Snapshots Archive(EBS 스냅샷 아카이브) : 스냅샷을 옯길 수 있는 기능

스냅샷을 아카이브 티어인 스냅샷 아카이브로 바꾸면 싸지만

아카이브를 복원하는데 최소 24시간 이상이 걸리기 때문에 즉시 복원이 불가능하니 주의해야 한다.

☑️ EBS 스냅샷 휴지통 : 영구 삭제하는 대신 유예 삭제 기능

실수로 삭제했을 때 등의 다시 복원할 수 있는 여지를 만들어두는 기능이고 기간도 설정이 가능하다.

(1일~1년 사이의 유예기간을 따로 설정가능)

☑️ Fast Snapshots Restore(FSR)(빠른 스냅샷 복원) : 완전 초기화해서 첫 사용의 지연 시간 없애는 기능

=>스냅샷이 아주 크고 EBS 볼륨 또는 EC2 인스턴스를 빠르게 초기화할 때 유용 (비용은 많이 드니 주의)

EC2 인스턴스 탭에서 확인 가능

 

#2 AMI

Amazon Machine Image의 약자로 EC2 인스턴스를 통해 만든 이미지를 통칭한다.

=> AMI로 AWS를 구축할 수 있고 우리가 원하는 대로 변경할 수도 있다. 

 

AMI에 원하는 소프트웨어나 설정파일을 추가하거나 별도의 운영 체제를 설치할 수 있고 모니터링 툴을 추가할 수도 있다.

그래서 AMI를 따로 구성하면 부팅 및 설정에 드는 시간을 줄일 수 있다.

=> 우리가 EC2 인스턴스에 설치하고자 하는 모든 소프트웨어를 AMI가 미리 패키징해주기 때문

 (유지보수하기 힘들겠지만 AMI를 자신이 직접 구축해서 사용하거나 AWS 마켓 플레이스를 통해 다른 사람이 구축한 이미지를 쓸 수도 있다)

 

🧐 AMI는 EC2 인스턴스에서 어떻게 처리될까?🧐

먼저 가정을 EC2 인스턴스를 원하는 대로 설정해주고 그 다음에 인스턴스를 중지해서(데이터 무결성 확보)

이 인스턴스를 바탕으로 AMI를 구축한다.

그 과정에서 EBS 스냅샷이 생성되는데 그러면 다른 AMI에서 인스턴스를 실행할 수 있다.

+)

이렇게 us-east-1a가 아닌 다른 us-east-1b에 인스턴스를 만들고 us-east-1a에 있는 인스턴스를 실행하고 설정을 변경한 다음 거기서 커스텀 AMI를 만들고 이 AMI에서 us-east-1b를 실행하면 이 안에 EC2 인스턴스 복사본이 생성된다!

 

#3 EC2 Instance Store(EC2 인스턴스 스토어) - 임시 스토리지⬇️⬆️

때로 더 높은 성능을 요구할 때도 있고 이때에는 EC2 인스턴스에 연결된 하드웨어 디스크 성능이 향상되어야 한다.

EC2 인스턴스는 가상 머신이지만 실제로는 하드웨어 서버에 연결되어 있다.

이와 같은 서버에는 해당 서버에 물리적으로 연결된 디스크 공간을 갖는다.

따라서 특정 유형의 EC2 인스턴스는 'EC2 인스턴스 스토어'라고 불리고 I/O 성능 향상을 위해 활용할 수 있다.

이들이 훌륭한 처리량을 갖추고 있어서 엄청 향상된 디스크 성능을 필요로 할 때, 활용할 수 있도록 확보할 필요가 있다.

...

⚠️ 주의할 점 ⚠️

EC2 인스턴스 스토어를 중지하거나 종료하면 해당 스토리지다 같이 손실된다..!

그래서 EC2 인스턴스 스토어 네이밍 의미대로 임시 스토리지라고 부르고

장기적으로 데이터를 보관할 장소 자체가 아니니 주의해야 한다.

(버퍼, 캐시, 스크래치 데이터, 임시 콘텐츠를 사용하는 경우에 좋긴 하지만 장기적인 관점의 스토리지는 X)

+) 장기 스토리지 같은 경우에는 EBS가 적합하다👍

 

#4 EBS 볼륨 유형 알아보기

총 6개 타입이 있는데 간단하게라도 정리해보려고 한다.

1. gp2/gp3(=범용 SSD 볼륨) :

다양항 워크로드에 대해 가격과 성능의 절충안이 되어준다.

☑️ gp2 -> 짧은 지연 시간과 비용도 괜찮은 스토리지, IOP와 처리량이 연결되어 있다. 

           (시스템 부팅 볼륨에서 가상 데스크톱, 개발, 테스트 환경에서 사용)

☑️ gp3 -> gp2보다 최신 모델, IOPS와 처리량을 개별로 설정할 수 있다.

2. io/io2(=최고 성능의 SSD 볼륨) :

지연 시간이 낮고 대용량의 워크로드에 쓰이는데 당연히 비싸다.

io/io2를 이용하면 gp3 볼륨처럼 프로비저닝된 IOPS를 스토리지 크기와 독자적으로 증가시킬 수 있다.

이것도 마찬가지로 예전 세대인 io보다 io2 쓰는게 내구성과 IOPS 수에서 더 이득이다.

3. st(=저비용 HDD 볼륨) :

잦게 접근되거나 처리량이 많은 워크로드에 쓰인다.

4. sc1(=초저비용 HDD 볼륨) :

접근 빈도가 낮은 워크로드에 쓰인다.

 

#5 EBS 볼륨의 Multi-Attach(다중 연결) 기능

다중 연결 기능은 하나의 EBS 볼륨을 같은 가용 영역에 있는 여러 EC2 인스턴스에 연결할 수 있게 해준다.

=> 이 말인 즉슨, 여러 EC2 인스턴스가 있고 다중 연결 기능이 활성화된 io2 볼륨이 있을 때 이 볼륨 자체를 여러 개 EC2 인스턴스에 동시에 연결할 수가 있다..!

(⭐다만 io1/io2에서만 활성화된 기능⭐)

각 인스턴스는 동시에 고성능 볼륨에 대한 읽기, 쓰기 권한을 가지고 있다

(예 : Teradata처럼 클러스터링된 Linux 애플리케이션에서 사용하거나 애플리케이션이 동시 쓰기 작업을 관리해야 할 때 사용)

 

+)

참고로 다중 연결 기능은 당연히 해당 가용 영역 내에서만 사용할 수 있고 한 AZ에서 다른 AZ로 EBS볼륨을 연결할 수 없다는 점한 번에 16개의 EC2 인스턴스만 같은 볼륨에 연결할 수 있다는 것 기억해두어야 한다.

 

#6 EBS 볼륨 Encryption(암호화) 🔏

EBS 볼륨을 생성하면 즉시 저장 데이터가 볼륨 내부에 암호화되고 스냅샷 뿐만 아니라 스냅샷으로 생성한 볼륨 역시 모두 암호화된다! 백그라운드에서 암호화 메커니즘은 보이지 않게 사용자가 아무 처리 하지 않도록 EC2와 EBS가 알아서 모두 처리한다.

EBS Encryption을 사용해야 하는 이유지연 시간에는 거의 영향이 없는데 KMS에서 암호화 키를 생성한다.

스냅샷을 복사해서 암호화를 푼 걸 다시 암호화 활성화를 하는 것이다.

 

<EBS 볼륨을 암호화하거나 복호화하는 방법🔒 -> 🔑>

우선 볼륨의 EBS 스냅샷을 생성하고 복사 기능을 통해서 EBS 스냅샷을 암호화한다.

(스냅샷을 이용해 새 EBS 볼륨을 생성하면 해당 볼륨도 암호화된다)

그 다음 암호화된 볼륨을 인스턴스 원본에 연결한다.

...

아래 AWS 사진을 통해 이해하면 더 쉬울 것이다.

 

+) 스냅샷 복사를 통해 EBS 볼륨 암호화하기

EC2-볼륨생성-암호화 체크박스 x
만든 볼륨의 암호화 여부 확인 - 암호화되지 않음
해당 볼륨에서 작업 - 스냅샷 생성 클릭
암호화되지 않음 확인 - 암호화되지 않은 EBS 볼륨에서 생성한 스냅샷은 암호화되지 않는다.
스냅샷 들어가서 작업 - 스냅샷 복사 클릭

동일한 region에 암호화를 활성화하면 스냅샷이 암호화될 것이다.

동일할 region에 암호화 체크박스 클릭 & KMS 설정

이렇게 완성한 암호화 스냅샷에서 볼륨을 생성하려면

만든 '복사 스냅샷'을 클릭하고 작업 - 스냅샷에서 볼륨 생성 클릭

 

결과  :

이런 식으로 볼륨을 만들 때 기초가 되는 스냅샷이 암호화되어 있어서 볼륨도 자동으로 암호화된다..!

👍