EBS

박기원·2022년 5월 27일
0

AWS

목록 보기
4/11
post-thumbnail

Amazon Elastic Block Store(EBS)
작동 방식
Amazon Elastic Block Store(Amazon EBS)는 사용이 쉽고 확장 가능한 고성능 블록 스토리지 서비스로서 Amazon Elastic Compute Cloud(Amazon EC2)용으로 설계되었습니다.

EBS란?

EBS란 Elastic Block Store의 약자로 일종의 하드디스크라고 생각하면 된다.

EBS의 특징은 아래와 같다.

필요한 용량에 맞게 구입 할 수 있다.

이를테면 EC2 인스턴스를 웹서버의 용도로만 쓰고 파일 저장은 S3를 사용한다면 넉넉 잡고 1기가바이트만 구입하면 된다.

필요에 따라서 즉시 생성하고, 제거 할 수 있다.

사용한 만큼 과금 되는 종량제다.

내부적으로 데이터를 실시간 복제하고 있기 때문에 하드디스크에 비해서 데이터를 잃어버릴 확률이 현저히 낮다.

스냅샷 기능을 제공해서 EBS의 현재 상태 그대로 보존 할 수 있다.

CloudWatch를 통해서 EBS의 통계를 열람 할 수 있다.

EC2 인스턴스를 제거해도 EBS는 독립적이기 때문에 데이터가 유지 된다.

Volume이란?

EBS로 생성한 (말하자면) 디스크 하나 하나를 볼륨이라고 부른다.

Linux OS 에서 EBS볼륨을 확장

  1. 파티션 확장 (growpart 명령어)

  2. 파일 시스템 확장 (xfs_growfs or resize2fs)

sudo file -s /dev/xvd*

sudo file -s /dev/nvme?n*

growpart /dev/xvda 1

growpart /dev/xvda 1

growpart /dev/nvme0n1 1

sudo xfs_growfs -d /

sudo resize2fs /dev/xvda1

볼륨 생성

Amazon EBS 볼륨을 생성한 다음 동일한 가용 영역에 있는 EC2 인스턴스에 연결할 수 있습니다. 볼륨을 인스턴스에 연결한 후 물리적 하드 드라이브를 사용하는 것처럼 사용할 수 있습니다.

Amazon EBS는 다음과 같은 볼륨 유형을 제공합니다.

범용 SSD(gp2)
범용 SSD(gp3)
프로비저닝된 IOPS SSD(io1)
프로비저닝된 IOPS SSD(io2)
처리량에 최적화된 HDD(st1)
콜드 HDD(sc1)
마그네틱(표준)
볼륨 유형은 성능 특성과 가격이 다르므로 애플리케이션의 필요에 맞게 스토리지 성능과 비용을 조정할 수 있습니다.

범용 SSD

범용 SSD(gp2 및 gp3) 볼륨은 광범위한 워크로드에 적합한 비용 효율적인 스토리지를 제공합니다.

프로비저닝된 IOPS SSD

프로비저닝된 IOPS SSD(io1 및 io2) 볼륨은 짧은 지연 시간을 제공하며 I/O 집약적 워크로드 요구 사항을 충족하도록 설계되었습니다. EBS 최적화 인스턴스에 가장 적합합니다.

처리량에 최적화된 HDD

처리량에 최적화된 HDD(st1) 볼륨은 대용량 순차 워크로드에 적합한 저렴한 마그네틱 스토리지를 제공합니다.

콜드 HDD

콜드 HDD(sc1) 볼륨은 st1보다 낮은 처리량을 제공하는 저비용 마그네틱 스토리지를 제공합니다. sc1은 데이터에 자주 액세스하지 않는 대용량 순차 콜드 데이터 워크로드에 적합합니다.

마그네틱

마그네틱(표준) 볼륨은 데이터에 자주 액세스하지 않는 워크로드에 가장 적합합니다.

볼륨 크기

프로비저닝된 IOPS SSD
프로비저닝된 IOPS SSD(io1 및 io2) 볼륨은 최소 4GiB 및 최대 16TiB(16,384GiB)를 지원합니다.

범용 SSD
범용 SSD(gp2 및 gp3) 볼륨은 최소 1GiB 및 최대 16TiB(16,384GiB)를 지원합니다.

처리량에 최적화된 HDD 및 콜드 HDD
처리량에 최적화된 HDD(st1) 및 콜드 HDD(sc1) 볼륨은 최소 125GiB 및 최대 16TiB(16,384GiB)를 지원합니다.

마그네틱
마그네틱(표준) 볼륨은 최소 1GiB 및 최대 1TiB(1024GiB)를 지원합니다.

IOPS

볼륨이 지원할 수 있는 요청된 초당 I/O 작업 수입니다.

프로비저닝된 IOPS SSD(io1 및 io2) 및 범용 SSD(gp2 및 gp3) 볼륨의 경우에만 적용됩니다.

프로비저닝된 IOPS SSD(io1 및 io2) 볼륨은 볼륨 크기에 따라 100~64,000 IOPS를 지원합니다.

io1 볼륨의 경우 GiB당 최대 50 IOPS까지 프로비저닝할 수 있습니다.

io2 볼륨의 경우 GiB당 최대 500 IOPS까지 프로비저닝할 수 있습니다.

범용 SSD(gp2) 볼륨의 경우 기준 성능은 GiB당 3 IOPS 단위로 최소 100 IOPS(33.33GiB 이하)에서 최대 16,000 IOPS(5,334GiB 이상)까지 선형적으로 확장됩니다.

범용 SSD(gp3)볼륨은 3,000 IOPS의 기본 성능을 지원합니다.

또한 GiB당 500 IOPS, 최대 16,000 IOPS까지 프로비저닝할 수 있습니다.

마그네틱(표준) 볼륨은 평균적으로 약 100 IOPS를 제공하며 최대 수백 IOPS의 버스트 기능을 제공합니다.

처리량에 최적화된 HDD(st1) 및 콜드 HDD(sc1) 볼륨의 경우 성능은 처리량(MiB/s)으로 측정됩니다.

처리량

볼륨이 지원할 수 있는 처리량 성능입니다.

이는 MiB/s 단위의 성능 척도입니다.

처리량에 최적화된 HDD(st1), 콜드 HDD(sc1) 및 범용 SSD(gp3) 볼륨에만 적용됩니다.

처리량에 최적화된 HDD(st1) 볼륨의 기준 성능은 TiB당 40MiB/s이고 콜드 HDD(sc1) 볼륨의 기준 성능은 TiB당 12MiB/s입니다.

범용 SSD(gp3)볼륨의 기준 성능은 125MiB/s입니다.

프로비저닝된 IOPS당 0.25MiB/s의 추가 처리량으로 최대 1,000MiB/s(4,000 IOPS 이상)까지 프로비저닝할 수 있습니다.

범용 SSD(gp2) 및 프로비저닝된 IOPS SSD(io1 및 io2) 볼륨의 경우 성능은 IOPS로 측정됩니다.

가용 영역

볼륨을 생성할 가용 영역입니다.

볼륨을 생성한 후에는 동일한 가용 영역에 있는 인스턴스에만 볼륨을 연결할 수 있습니다.

스냅샷

볼륨을 생성할 스냅샷입니다.

스냅샷에서 새 볼륨을 생성할 때 스냅샷이 생성된 시점의 원본 볼륨과 정확히 일치합니다.

암호화된 스냅샷에서 생성된 EBS 볼륨은 자동으로 암호화됩니다.

암호화되지 않은 스냅샷에서 볼륨을 복원하는 동안 이 볼륨 암호화를 선택하여 즉시 볼륨을 암호화할 수 있습니다.

볼륨을 즉시 암호화하도록 선택하는 경우 볼륨을 암호화할 KMS 키를 선택해야 합니다.

암호화된 볼륨은 EBS 암호화를 지원하는 인스턴스 유형에만 연결할 수 있습니다.

암호화

Amazon EBS 암호화는 EBS 볼륨을 위한 암호화 솔루션입니다.

Amazon EBS 암호화는 AWS KMS 키를 사용하여 볼륨을 암호화합니다.

고려 사항:

계정이 기본적으로 암호화에 대해 활성화된 경우 암호화되지 않은 볼륨을 생성할 수 없습니다.
암호화된 스냅샷을 선택한 경우 암호화되지 않은 볼륨을 생성할 수 없습니다.
계정의 암호화가 기본적으로 활성화되어 있지 않고 스냅샷을 선택하지 않았거나 암호화되지 않은 스냅샷을 선택한 경우 암호화는 선택 사항입니다.
암호화된 볼륨을 생성하는 경우 지원되는 인스턴스 유형에만 연결할 수 있습니다.

태그

볼륨을 관리하고 분류하는 데 도움이 되도록 각 볼륨에 태그 형태로 고유한 사용자 지정 레이블을 할당할 수 있습니다.

각 태그는 키와 선택적 값 페어로 구성됩니다.

각 볼륨에 대해 각 태그 키는 고유해야 합니다.

각 태그 키는 하나의 값만 가질 수 있습니다. 볼륨에 최대 50개의 태그를 할당할 수 있습니다. 태그 키와 값은 대/소문자를 구분합니다.

볼륨에 태그를 추가하려면 태그 추가(Add tag)를 선택한 다음 태그 키 및 값 페어를 지정합니다. 기존 태그 키에 새 값을 지정하면 이전 값을 덮어씁니다.

볼륨에서 태그를 제거하려면 제거할 태그 옆에 있는 태그 제거(Remove tag)를 선택합니다.

스냅샷 생성

특정 시점 스냅샷을 생성하여 Amazon EBS 볼륨의 데이터를 Amazon S3에 백업할 수 있습니다.

스냅샷은 증분 백업입니다.

즉, 마지막 스냅샷 이후 변경된 디바이스의 블록만 백업됩니다.

생성하는 각 스냅샷에는 EBS 볼륨을 완전히 복원하는 데 필요한 모든 정보가 포함됩니다.

스냅샷을 생성할 때, 볼륨에 이미 기록된 데이터만 백업됩니다.

이렇게 하면 애플리케이션 또는 운영 체제에서 캐시한 데이터가 제외될 수 있습니다.

일관되고 완전한 스냅샷을 보장하려면 볼륨에 대한 쓰기 작업을 일시 중지하거나 스냅샷 생성 전에 인스턴스에서 볼륨의 마운트를 해제하는 것이 좋습니다.

EBS 볼륨의 특정 시점 스냅샷을 생성하여 새 볼륨 또는 데이터 백업의 기준으로 사용합니다. 개별 볼륨에서 스냅샷을 생성하거나 인스턴스에 연결된 모든 볼륨에서 다중 볼륨 스냅샷을 생성할 수 있습니다.

리소스 유형

백업할 리소스의 유형입니다.

특정 볼륨에서 스냅샷을 생성하려면 볼륨을 선택합니다.

인스턴스에 연결된 모든 볼륨에서 스냅샷을 생성하려면 인스턴스를 선택합니다.

인스턴스에 Amazon EBS 볼륨 연결

사용 가능한 EBS 볼륨을 해당 볼륨과 동일한 가용 영역에 있는 하나 이상의 인스턴스에 연결할 수 있습니다.

사전 조건

인스턴스에 연결할 수 있는 볼륨 수를 확인합니다.

볼륨을 여러 인스턴스에 연결할 수 있는지 확인하고 다중 연결을 활성화합니다.

볼륨이 암호화된 경우에는 Amazon EBS 암호화를 지원하는 인스턴스에만 연결할 수 있습니다.

볼륨에 AWS Marketplace 제품 코드가 있는 경우:

중지된 인스턴스에만 볼륨을 연결할 수 있습니다.

이 경우 볼륨에 있는 AWS Marketplace 코드에 구독되어 있어야 합니다.

유형 및 운영 체제와 같은 인스턴스의 구성은 해당 특정 AWS Marketplace 코드를 지원해야 합니다. 예를 들어, Windows 인스턴스의 볼륨을 Linux 인스턴스로 연결할 수 없습니다.

AWS Marketplace 제품 코드는 볼륨에서 인스턴스로 복사됩니다.

Amazon EBS 다중 연결을 사용하여 여러 인스턴스에 볼륨 연결

Amazon EBS 다중 연결을 사용하면 단일 프로비저닝된 IOPS SSD(io1 또는 io2) 볼륨을 동일한 가용 영역에 있는 여러 인스턴스에 연결할 수 있습니다.

여러 다중 연결 지원 볼륨을 인스턴스 또는 인스턴스 집합에 연결할 수 있습니다.

볼륨이 연결된 각 인스턴스는 공유된 볼륨에 대한 전체 읽기 및 쓰기 권한을 가집니다.

다중 연결을 사용하면 동시 쓰기 작업을 관리하는 클러스터링된 Linux 애플리케이션에서 더 쉽게 더 높은 애플리케이션 가용성을 얻을 수 있습니다.

Amazon EBS 볼륨에 대한 정보 보기

EBS 볼륨에 대한 설명이 포함된 정보를 볼 수 있습니다.

예를 들어 특정 리전에 있는 모든 볼륨에 대한 정보를 보거나 크기, 볼륨 유형, 볼륨 암호화 여부, 볼륨 암호화에 사용된 마스터 키, 볼륨이 연결된 특정 인스턴스 등 단일 볼륨에 대한 자세한 정보를 볼 수 있습니다.

사용 가능한 디스크 공간 등 EBS 볼륨에 대한 추가 정보를 인스턴스의 운영 체제에서 가져올 수 있습니다.

루트 볼륨 교체 작업 보기

루트 볼륨 교체 작업을 시작한 후, 작업은 다음과 같은 상태가 됩니다.

pending — 교체 볼륨이 생성되고 있습니다.

in-progress — 원래 볼륨이 분리되고 교체 볼륨이 연결되고 있습니다.

succeeded — 교체 볼륨이 인스턴스에 성공적으로 연결되었으며 인스턴스를 사용할 수 있습니다.

failing — 교체 작업이 실패 중에 있습니다.

failed — 교체 작업은 실패했지만 원래 루트 볼륨은 여전히 연결되어 있습니다.

failing-detached — 교체 작업이 실패 중에 있습니다. 인스턴스에 연결된 루트 볼륨이 없을 수 있습니다.

failed-detached — 교체 작업이 실패했으며 인스턴스에 연결된 루트 볼륨이 없습니다.

데이터 볼륨 교체

스냅샷에서 볼륨을 생성하고 새 볼륨의 ID를 기록합니다.

인스턴스 페이지에서 볼륨을 교체할 인스턴스를 선택하고 인스턴스 ID를 기록합니다.

인스턴스가 선택된 상태에서 스토리지(Storage) 탭을 선택합니다. 블록 디바이스(Block devices) 섹션에서 교체할 볼륨을 찾고 볼륨의 디바이스 이름을 기록합니다(예: /dev/sda1).

볼륨 ID를 선택합니다.

볼륨(Volumes) 화면에서 볼륨을 선택하고 작업(Actions), 볼륨 분리(Detach volume), 분리(Detach)를 선택합니다.

1단계에서 생성한 새 볼륨을 선택하고 작업(Actions), 볼륨 연결(Attach volume)을 선택합니다.

인스턴스(Instance) 및 디바이스 이름(Device name)에 2단계에서 적어 둔 인스턴스 ID 및 디바이스 이름을 입력한 다음 볼륨 연결(Attach volume)을 선택합니다.

인스턴스에 연결하고 볼륨을 탑재합니다.

Amazon EBS 스냅샷 생성

EBS 볼륨의 특정 시점 스냅샷을 생성하여 새 볼륨이나 데이터 백업의 기준으로 사용할 수 있습니다.

볼륨의 스냅샷이 주기적으로 생성되는 경우 스냅샷은 증분식이어서 새 스냅샷은 마지막 스냅샷 이후 변경된 블록만 저장합니다.

스냅샷은 비동기적으로 생성됩니다.

특정 시점 스냅샷은 즉시 생성되지만 스냅샷이 완료될 때까지, 즉 수정된 블록이 pending로 모두 이동할 때까지 스냅샷 상태는 Amazon S3입니다.

따라서 크기가 큰 최초의 스냅샷이나 변경된 블록이 많은 후속 스냅샷의 경우 몇 시간씩 시간이 걸릴 수 있습니다.

완료하는 동안 진행 중인 스냅샷은 볼륨에 대한 지속적인 읽기 및 쓰기의 영향을 받지 않습니다.

연결되어 사용 중인 볼륨의 스냅샷을 만들 수 있습니다.

하지만 스냅샷은 snapshot 명령을 실행할 때 Amazon EBS 볼륨에 기록된 데이터만 캡처합니다.

이때 애플리케이션이나 운영 체제에 의해 캐시된 데이터가 제외될 수 있습니다.

스냅샷을 만들기에 충분한 시간 동안 볼륨에 대한 파일 쓰기 작업을 일시 중지할 수 있는 경우 스냅샷이 완전해야 합니다.

하지만 볼륨에 대한 모든 파일 쓰기를 일시 중지할 수는 없는 경우에는 인스턴스 내에서 볼륨을 분리하고 snapshot 명령을 실행한 다음, 볼륨을 다시 마운트하여 일관되고 완전한 스냅샷이 되도록 해야 합니다.

스냅샷 상태가 pending인 상태에서 볼륨을 다시 마운트하고 사용할 수 있습니다.

스냅샷을 보다 쉽게 관리하기 위해 생성 중에 스냅샷에 태그를 지정하거나 나중에 태그를 추가할 수도 있습니다.

예를 들어, 스냅샷이 생성된 원래 볼륨 또는 원래 볼륨을 인스턴스에 연결하는 데 사용된 디바이스 이름을 설명하는 태그를 적용할 수 있습니다.

스냅샷 암호화

암호화된 볼륨으로 생성한 스냅샷은 자동으로 암호화
암호화된 스냅샷으로 생성한 볼륨도 자동으로 암호화
암호화된 볼륨 및 모든 연관 스냅샷의 데이터는 사용되지 않을 때와 사용될 때 모두 보호
기본적으로 사용자는 자기 소유의 스냅샷에서만 볼륨을 생성

다중 볼륨 스냅샷

EC2 인스턴스에 연결된 모든 EBS 볼륨의 특정 시점 스냅샷인 다중 볼륨 스냅샷을 생성
다중 볼륨 스냅샷의 생성 및 보존을 자동화하는 수명 주기 정책을 생성

0개의 댓글