Browsing Tag

비암호화 볼륨

AWS

[AWS] 계정 이전 – 암호화 볼륨 to 비암호화 볼륨, 암호화 해제

안녕하세요. ManVSCloud 김수현입니다.

저의 AWS 계정이 올해 12월말에 프리티어 종료로 계정 이전을 하려고 합니다.

물론 다음 계정에서는 이전없이 비용을 내며 사용할 예정이지만
특수한 상황으로 인해 계정을 이전해야하는 경우를 경험을 해보려합니다.

물론 제가 현재 AWS 계정에서 사용하고 있는 서비스는 그다지 많은 편이 아닙니다.
데이터 이동이라 해봤자 EC2, RDS, S3를 이동시켜주는 것 말곤 크게 없을 것같네요.

우선 제 블로그를 운영하고 있는 EC2를 이미지 생성하여 해당 이미지를 다른 계정으로 공유할 것입니다.
우선 AMI는 리전 리소스라 공유를 하려면 동일 리전이어야합니다.
저같은 경우 같은 한국 리전으로 이동할 것이라 다른 리전으로 AMI 복사 작업은 필요가 없는 상태입니다.

하지만 제 블로그가 운영되고 있는 인스턴스에 추가된 볼륨은 AWS 관리형 CMK로 암호화되어있습니다.
AWS 관리형 CMK로 암호화된 볼륨이 있는 AMI는 공유가 불가능합니다.

EC2 인스턴스 생성 시 스토리지 추가나 볼륨 생성 시 볼륨 암호화를 할 때
KMS 키 별칭이 (기본값)aws/ebs이 나오는데 이것이 각 리전에 고유한 AWS 관리형 CMK 입니다.

불가능할 줄 알았지만 리눅서님께서 가능한 방법을 알려주셨습니다.
아래 링크의 방법으로 가능한 것을 알게 되었습니다.

https://www.programmersought.com/article/85916155401/

이 글은 암호화 해제 방법의 글로 봐주시면 감사하겠습니다.

그래서 오늘 주제는 볼륨에 적용된 암호화를 해제하는 방법이 되겠습니다.

암호화 볼륨 TO 비암호화 볼륨

인스턴스 이미지를 생성하는 곳에서는 활성화된 암호화를 해제할 수 없습니다.
그러므로 해당 볼륨의 암호화를 해제하기 위해서는 따로 해제 작업이 필요합니다.

우선 해당 볼륨을 분리하기 위해서 암호화 해제할 인스턴스를 중지하였습니다.
(서비스가 중지되면 안될 경우 암호화된 볼륨을 스냅샷 생성하여 해당 스냅샷으로 볼륨을 생성하는 방법도 있습니다.)

해당 볼륨을 분리할 것입니다. (스냅샷으로 볼륨을 따로 생성할 경우 분리할 필요 없습니다.)
볼륨 ID, 가용 영역, 디바이스 명은 기억해두는 것이 좋습니다.

암호화된 볼륨을 분리해줍니다.

[인스턴스 시작]을 눌러 인스턴스 하나를 추가로 생성해줍니다.
이 인스턴스는 암호화된 볼륨의 데이터를 암호화되지 않은 볼륨으로 데이터를 이동시켜줄 작업을 할 인스턴스 입니다.

암호화된 볼륨(분리된 볼륨)을 새로 생성한 인스턴스로 연결합니다.
인스턴스 – 새로 생성한 복구용 인스턴스
디바이스 – 디바이스 명 타입에 따라 /dev/xvdf 또는 /dev/sdf
(우분투나 CentOS의 경우 /dev/sdx, 아마존 리눅스의 경우 /dev/xvdx가 일반적입니다.)

비암호화 된 볼륨을 생성합니다.

[볼륨 생성] 으로 암호화된 볼륨의 크기와 동일하게 생성하나 이 볼륨은 생성 시 암호화 하지않습니다.

새로 생성한 비암호화 볼륨도 새로 생성한 인스턴스인 복구용 인스턴스에 연결해줍니다

복구용 인스턴스로 접속하여 lsblk 명령어로 디스크가 정상적으로 잘 추가되었는지 확인하고
아래와 같은 작업을 진행합니다.

dd 는 파일 복사 및 변환을 블록 단위로 하는 명령어입니다.

dd if=출발지 볼륨 of=도착지 볼륨 bs=한번에 읽고 쓸 최대 바이트 크기 status=progress (진행률 확인)
bs의 경우 저는 4096으로 했는데 어느 정도 수치로 하는게 좋을까 고민이시라면 bs=auto로 주면 최적의 수치로 설정됩니다.

복사 작업이 완료된 비암호화 볼륨을 다시 분리합니다.
분리된 비암호화 볼륨을 중지된 기존 인스턴스에 /dev/xvda로 연결해줍니다.
중지된 인스턴스에 비암호화 볼륨을 장착 후 상태를 보게되면
비암호화 볼륨을 장착했음에도 불구하고 스토리지 상태가 암호화됨에 “예”라고 표기되어있습니다.

스토리지 상태가 여전히 암호화 상태로 보이는 이유는 커널에 파티션 변경 사항이 등록되지 않았기때문입니다.
이를 적용하기 위해서는 해당 인스턴스를 시작하거나 재부팅 작업이 필요합니다.

중지된 인스턴스를 시작하니 정상적으로 비암호화된 불륨으로 설정되었습니다.

마지막으로 암호화 볼륨을 비암호화 시켰으니 해당 볼륨이 정상적으로 잘 복사되었고
서비스가 이상없이 잘 운영되는가 확인을 해야합니다.

기존 블로그를 운영하던 인스턴스에 접속하여 문제가 없음을 확인하고,
블로그도 정상적으로 잘 운영되고 있는 것으로 확인됩니다.

이로써 암호화된 볼륨을 비암호화 된 볼륨으로 복사하는 암호화 해제 작업이 잘 되었습니다.

계정 이전 작업은 이렇게 하나의 단계씩 진행될 예정입니다.

따로 이미지 생성하여 추가 인스턴스를 올려서 작업하면 블로그가 DOWN 되지않은 상태로 운영되면서 작업들이 가능하겠지만 그렇게 하지않은 이유는 저의 귀찮음 문제이므로…

장시간 블로그가 올라오지 않을 경우 “아.. 이 사람 귀찮아하더니 결국…” 하고 생각하시면 될 것같습니다.

이상 [AWS] 계정 이전 1 – 암호화 볼륨 TO 비암호화 볼륨, 암호화 해제 마무리하고,
다음 글은 [AWS] 계정 이전 2 – AMI, 특정 다른 AWS 계정에 공유 라는 주제로 찾아뵙겠습니다. …AMI 다른 계정에 공유하는건 정말 너무 간단해서 포스팅하지 않기로 했습니다..

마지막으로 리눅서님께 다시 한 번 감사의 인사 올립니다.

긴 글 읽어주셔서 감사합니다.