안녕하세요 오늘은 BESPIN GLOBAL SRE1실 이창훈님이 작성해주신 ‘암호화된 AMI 및 EBS 볼륨을 리전 및 계정간 마이그레이션 가이드’ 대해 소개해드리도록 하겠습니다.
목차
- 개요
- 배경
- 작업 절차
1. 개요
암호화된 볼륨 및 인스턴스를 다른 계정이나 같은 계정의 다른 리전으로 공유 및 복사하는 방법입니다.
AWS 에서는 AWS Key Management Service 를 2 가지 방식의 키를 제공합니다. 여기서는 AWS 관리형 키로 볼륨을 암호화한
케이스를 다루겠습니다.
- AWS Key Management Service 는 2 가지 키 방식
○ AWS 관리형 키
○ 고객 관리형 키
2. 배경
- 볼륨 암호화를 할 때 확인되는 KMS 키 별칭이 기본값 aws/ebs 는 각 AWS 계정의 각 리전에 고유한 AWS 관리형 Key 입니다. 그렇기 때문에 암호화된 볼륨 스냅샷 및 AMI 를 바로 다른 리전이나 계정에 공유하면 사용이 불가능합니다.
- 다른 계정 및 다른 리전에서 해당 볼륨 스냅샷 및 AMI 를 사용하기 위해서는 먼저 볼륨의 암호화를 해제 작업 진행후에 볼륨 스냅샷을 생성하여 복사를 해야 합니다.
- 볼륨 및 인스턴스 이미지를 생성하는 메뉴에서는 기존 EBS 볼륨의 활성화된 암호화를 해제할 수 없습니다.
- 기존 볼륨의 암호화를 해제하기 위해서는 암호화된 볼륨의 데이터를 암호화되지 않은 볼륨으로 옮겨주는 별도의 작업이 필요합니다.
3. 작업 절차
3-1. 암호화된 볼륨 분리
- 먼저 암호화된 볼륨을 분리가 필요합니다. 암호화된 볼륨이 연결된 인스턴스를 중지합니다.
- 서비스 중지가 안될 경우에 암호화된 볼륨을 스냅샷 생성하여 복제본을 생성할 수 있습니다.
- 여기서는 서비스 중지가 안될 경우를 가정하여 스냅샷을 생성하여 암호화된 볼륨의 복제본을 생성하였습니다.

3-2. 분리된 암호화 볼륨 스냅샷 생성
- 다른 계정으로 마이그레이션 후 인스턴스를 생성해야 하기에, root, data 디바이스 전부 스냅샷을 생성하여 복제본을 생성합니다.
- 스냅샷 생성과 스냅샷으로 복제 볼륨을 생성할 때 혼동을 방지하기 위해 볼륨 ID 와 이름, 디바이스 명과 가용영역을 메모하는 것을 권고 드립니다. (여기서부터 스냅샷으로 복제된 암호화 볼륨을 편의상 암호화 볼륨으로 명명합니다.)

3-3. 암호화되지 않는 신규 블록 볼륨 생성
- 암호화된 볼륨의 데이터를 복사할 암호화되지 않은 볼륨을 신규 생성합니다. (같은 용량 크기로 생성)
- 암호화되지 않은 신규 볼륨을 생성 후, 데이터를 복사할 임시 인스턴스를 하나 생성합니다. 그리고, 임시 인스턴스에 암호화된 볼륨과 암호화되지 않은 볼륨 연결합니다
3-4. 임시 인스턴스 생성하여 암호화 및 암호화되지 않은 볼륨 모두 연결
- 암호화 및 암호화되지 않은 볼륨들 모두 임시 인스턴스에 연결합니다.

3-5. 인스턴스에 접근하여 디바이스 확인 후 블록 장치간 복사 진행
- 볼륨 연결 후 인스턴스에 접속하여 fdisk -l 명령과 lsblk 명령으로 블록 디바이스 장치를 확인합니다.

- 파일 단위로 복사가 아닌, 블록 단위로 디바이스 간 데이터 복사 명령을 사용하여 디바이스간 복사를 실행합니다.
$ dd if=/dev/xvdg of=/dev/xvdi status=progress
- 루트볼륨과 데이터 볼륨 디바이스 복사가 완료되면 lsblk 로 확인 후에 임시 인스턴스를 종료하고 볼륨 디바이스를
- 전부 연결 해제합니다.
3-6. 암호화되지 않은 볼륨 스냅샷 생성 및 권한 수정하여 공유 설정
- 암호화되지 않은 root 볼륨 및 데이터 볼륨 스냅샷 생성합니다.
- 스냅샷 복사 기능과 AMI 복사 기능은 같은 계정 안에서 다른 리전으로 대상을 복사하는 기능입니다.
- 다른 계정으로 마이그레이션을 하려면 이미지 AMI 를 생성하여 공유하거나 스냅샷을 공유하여 대상 계정에서 AMI 를 생성하는 방법이 있습니다. 여기서는 root, data 볼륨 스냅샷을 마이그레이션 진행합니다.

3-7. 생성된 볼륨 스냅샷 공유 후 대상 AWS 계정에서 스냅샷 복사
- 스냅샷 메뉴에서 공유할 스냅샷를 선택하고 [작업 -> 권한 편집 -> 공유계정 – 계정 ID 추가]에 대상 AWS Account 를 입력합니다.
- 위 작업을 진행하면 스냅샷을 공유받을 계정의 스냅샷 메뉴에서 프라이빗 스냅샷 항목에서 확인 가능합니다.
- 확인 후, 구분을 위해 Name 과 태그 설정을 진행합니다.

3-8. 공유된 스냅샷을 활용하여 암호화 적용된 볼륨 생성
- 공유된 스냅샷을 사용하여 바로 볼륨 생성은 가능합니다. 하지만, 공유된 스냅샷으로 바로 AMI 이미지 생성은 불가능합니다. (스냅샷 소유자가 다르기 때문에 공유된 스냅샷을 복사해와서 소유자를 변경해야 합니다.)
- 암호화 활성화는 스냅샷에서 ‘볼륨 생성’과 ‘스냅샷 복사’에서 활성화 가능합니다.
[볼륨 생성 기능에서 암호화 활성화 옵션 확인]
![[볼륨 생성 기능에서 암호화 활성화 옵션 확인]](https://i0.wp.com/bespin-wordpress-bucket.s3.ap-northeast-2.amazonaws.com/wp-content/uploads/2025/04/image-115-1024x635.png?resize=1024%2C635&ssl=1)
- 즉, AMI 생성을 위해서는 공유된 root 볼륨 스냅샷은 스냅샷 복사(암호화 활성화 진행) 후 암호화된 AMI 생성하고, 데이터 볼륨 생성은 공유된 data 볼륨 스냅샷으로 암호화된 볼륨 생성 가능 (암호화 활성화 진행)
3-9. 암호화 적용된 볼륨 root 볼륨으로 암호화 적용된 AMI 생성
- 해당 작업 진행 후 root 볼륨 스냅샷으로 AMI 생성하고, AMI 생성하면서 데이터 볼륨을 스냅샷 생성하여 추가 볼륨으로 설정하거나, AMI 먼저 생성 후에 인스턴스 생성하여 데이터 볼륨을 추가하면 됩니다.
여기까지 ‘암호화된 AMI 및 EBS 볼륨을 리전 및 계정간 마이그레이션 가이드’에 대해 소개해드렸습니다. 유익한 정보가 되셨길 바랍니다. 감사합니다.
Written by 이 창훈/ SRE1실
BESPIN GLOBAL