Amazon Web Services 한국 블로그
Amazon EBS Volume Clones 출시: EBS 볼륨의 즉각적인 복사본 생성 기능
저는 ZFS가 발명된 Sun Microsystems에서 근무했던 경험이 있으며, 개발 및 테스트 요구 사항에 맞게 즉각적인 볼륨 복사본을 제공하는 스토리지 시스템을 사용하는 것을 항상 좋아합니다.
오늘, AWS가 동일한 가용 영역 내에서 EBS 볼륨의 특정 시점 복사본을 즉시 생성할 수 있는 새로운 기능인 Amazon EBS Volume Clones를 출시하여 Amazon Elastic Block Store(Amazon EBS)에 유사한 기능을 제공한다는 소식을 전하게 되어 기쁩니다.
고객이 별도의 비 프로덕션 환경에서 개발 및 테스트 작업을 지원하기 위해 프로덕션 데이터의 복사본을 생성해야 하는 경우가 많습니다. 지금까지는 이 프로세스를 수행하려면 EBS 스냅샷(Amazon Simple Storage Service(Amazon S3)에 저장됨)을 생성한 다음 해당 스냅샷에서 새 볼륨을 생성해야 했습니다. 이 방법은 효과가 있지만 여러 단계를 거치기 때문에 프로세스에서 운영 오버헤드가 발생합니다.
Amazon EBS Volume Clones를 사용하면 이제 한 번의 API 직접 호출 또는 콘솔 클릭으로 EBS 볼륨의 복사본을 생성할 수 있습니다. 복사된 볼륨은 몇 초 만에 사용할 수 있으며 10밀리초의 지연 시간으로 데이터에 바로 액세스할 수 있습니다. 따라서 Volume Clones는 프로덕션 데이터를 사용하여 테스트 환경을 신속하게 설정하거나 개발 목적으로 데이터베이스의 임시 복사본을 생성하는 데 특히 유용합니다.
지금부터 Volume Clones가 어떻게 작동하는지 보여드리겠습니다.
이 게시물을 위해 볼륨이 연결된 작은 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 하나 생성했습니다. echo "Hello CopyVolumes" > hello.txt
명령을 사용하여 루트 파일 시스템에 파일을 하나 생성했습니다.
복사를 시작하기 위해 AWS Management Console에서 브라우저를 열고 EC2, Elastic Block Store, Volumes로 이동합니다. 복사할 볼륨을 선택합니다.
참고로 이 게시물을 게시한 시점 기준으로 암호화된 볼륨만 복사할 수 있습니다.
Actions 메뉴에서 Copy Volume 옵션을 선택합니다.
다음으로 대상 볼륨의 세부 정보를 선택합니다. Volume type을 변경하고 Size, IOPS 및 Throughput 파라미터를 조정할 수 있습니다. Copy volume을 선택하여 볼륨 복제 작업을 시작합니다.
복사된 볼륨은 Creating 상태로 전환되며 몇 초면 사용할 수 있게 됩니다. 그러면 이 볼륨을 EC2 인스턴스에 연결하여 즉시 사용을 시작할 수 있습니다.
소스 볼륨에서 데이터 블록이 복사되고 백그라운드에서 볼륨 복사본에 기록됩니다. 프로세스가 완료될 때까지 볼륨은 Initializing 상태로 유지됩니다. describe-volume-status
API를 사용하여 진행 상황을 모니터링할 수 있습니다. 초기화 작업은 소스 볼륨의 성능에 영향을 주지 않습니다. 복사 프로세스 중에도 정상적으로 계속 사용할 수 있습니다.
복사된 볼륨을 즉시 사용할 수 있다는 점이 마음에 듭니다. 초기화가 완료될 때까지 기다릴 필요가 없습니다. 초기화 단계에서 복사된 볼륨은 기준 3,000IOPS 및 125MiB/s, 소스 볼륨의 프로비저닝된 성능 또는 복사된 볼륨의 프로비저닝된 성능 중 가장 낮은 값을 기준으로 성능을 제공합니다.
초기화가 완료되면 복사된 볼륨이 소스 볼륨과 완전히 독립되어 프로비저닝된 성능을 온전히 제공합니다.
또는 AWS Command Line Interface(AWS CLI)를 사용하여 복사를 시작할 수 있습니다.
aws ec2 copy-volumes \
--source-volume-id vol-1234567890abcdef0 \
--size 500 \
--volume-type gp3
볼륨 복사본이 생성되면 이를 EC2 인스턴스에 연결하고 탑재합니다. 처음에 생성한 파일이 있는지 확인할 수 있습니다.
먼저 노트북에서 attach-volume
명령을 사용하여 볼륨을 연결합니다.
aws ec2 attach-volume \
--volume-id 'vol-09b700e3a23a9b4ad' \
--instance-id 'i-079e6504ad25b029e' \
--device '/dev/sdb'
그런 다음 인스턴스에 연결하여 다음 명령을 입력합니다.
$ sudo lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1
├─nvme0n1p1 xfs / 49e26d9d-0a9d-4667-b93e-a23d1de8eacd 6.2G 22% /
└─nvme0n1p128 vfat FAT16 3105-2F44 8.6M 14% /boot/efi
nvme1n1
├─nvme1n1p1 xfs / 49e26d9d-0a9d-4667-b93e-a23d1de8eacd
└─nvme1n1p128 vfat FAT16 3105-2F44
$ sudo mount -t xfs /dev/nvme1n1p1 /data
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 924M 0 924M 0% /dev/shm
tmpfs 370M 476K 369M 1% /run
/dev/nvme0n1p1 8.0G 1.8G 6.2G 22% /
tmpfs 924M 0 924M 0% /tmp
/dev/nvme0n1p128 10M 1.4M 8.7M 14% /boot/efi
tmpfs 185M 0 185M 0% /run/user/1000
/dev/nvme1n1p1 8.0G 1.8G 6.2G 22% /data
$ cat /data/home/ec2-user/hello.txt
Hello CopyVolumes
알아야 할 사항
Volume Clones는 소스 볼륨과 동일한 가용 영역 내에 복사본을 생성합니다. 암호화된 볼륨에서만 복사본을 생성할 수 있으며 복사본의 크기는 소스 볼륨과 같거나 커야 합니다.
Volume Clones는 스냅샷과 마찬가지로 장애 시 일관성이 보장되는 볼륨 복사본을 생성합니다. 애플리케이션 일관성을 위해 복사본을 생성하기 전에 애플리케이션 I/O 작업을 일시 중지해야 합니다. 예를 들어 PostgreSQL 데이터베이스의 경우 pg_start_backup()
및 pg_stop_backup()
함수를 사용하여 쓰기를 일시 중지하면 일관된 복사본을 생성할 수 있습니다. XFS를 사용하는 Linux의 운영 체제 수준에서 xfs_freeze
명령을 사용하면 파일 시스템에 대한 액세스를 일시적으로 일시 중단했다가 다시 시작하고 캐시된 모든 업데이트가 디스크에 기록되도록 할 수 있습니다.
Volume Clones는 특정 시점 복사본을 생성하지만 백업 목적으로 EBS 스냅샷을 대체하기보다는 보완하는 역할입니다. EBS 스냅샷은 여전히 AZ 수준 및 볼륨 장애에 대한 데이터 백업 및 보호 권장 솔루션입니다. EBS 볼륨 내구성(io2의 경우 99.999%, 다른 볼륨 유형의 경우 99.9%)을 유지하는 Volume Clones에 비해, 스냅샷은 99.999999999%의 내구성으로 Amazon S3 증분 백업을 제공합니다. 특히 볼륨 복사본에 즉시 액세스해야 하는 테스트 및 개발 환경 시나리오에는 Volume Clones를 사용하는 것이 좋습니다.
복사된 볼륨은 소스 볼륨과 독립적으로 존재하며 삭제할 때까지 표준 EBS 볼륨 요금이 계속 발생합니다. 비용을 효과적으로 관리하려면 개발 또는 테스트 활동에 더 이상 필요하지 않은 복사된 볼륨을 식별 및 제거하는 거버넌스 규칙을 구현해야 합니다.
요금 및 가용성
Volume Clones는 모든 EBS 볼륨 유형을 지원하며 동일한 AWS 계정 및 가용 영역의 볼륨과 함께 작동합니다. 이 새로운 기능은 모든 AWS 상용 리전, 일부 로컬 영역 및 AWS GovCloud(미국)에서 사용할 수 있습니다.
요금의 경우 시작 시 소스 볼륨의 데이터에 대해 GiB당 일회성 요금이 부과되고 새 볼륨에 대해 표준 EBS 요금이 부과됩니다.
Volume Clones는 데이터베이스 워크로드 및 지속적 통합(CI) 시나리오에 특히 유용할 것으로 생각합니다. 예를 들어, 프로덕션 환경에 영향을 주지도 않고 Amazon S3에서 데이터가 하이드레이트되기를 기다릴 필요도 없이 새로운 특성을 테스트하거나 문제를 해결하기 위해 프로덕션 데이터베이스의 복사본을 빠르게 생성할 수 있습니다.
Amazon EBS Volume Clones를 시작하려면 콘솔의 Amazon EBS 섹션 또는 EBS 설명서를 참조하세요. 여러분이 이 기능을 사용하여 개발 워크플로를 개선한 이야기를 들을 수 있기를 기대하겠습니다.