현재 분리되어 있던 AWS 서비스들을 한 계정으로 이동하는 작업 중인데 굉장히 쉬울 것이라 생각한 RDS 이전에 생각보다 복잡한 부분들이 있어 정리해 본다.
공식과 여러 블로그에서 나오는 방법을 보면 굉장히 쉽게 나온다.
RDS 서비스로 이동 후 데이터베이스 메뉴에서 원하는 데이터베이스 인스턴스 선택 후 작업을 누르고 스냅샷 생성 버튼 클릭
원하는 DB 인스턴스 선택 후 스냅샷 이름 지정 후 스냅샷 생성 버튼 클릭
생성된 스냅샷 선택 후 작업 버튼 클릭하고 스냅샷 공유 버튼 클릭
이전받을 AWS 계정의 ID를 입력하면 된다. 여기서는 숫자로 구성된 ID(AWS 서비스 우측 상단 본인 계정 클릭하면 숫자로 된 ID 확인가능)를 입력하면 된다. 여기서 가장 중요한 부분이 빨간색 네모 박스로 구성된 부분인데 여기에 관련된 설명을 내가 찾아본 어떠한 글에도 존재하지 않았고 나는 이 사실을 알지 못한 채 그냥 진행했다.. 일단 진행.... 저장 버튼 누르면 공유 완료
이제 공유받은 계정의 스냅샷 메뉴에서 나와 공유됨 서비스로 이동하면 스냅샷이 성공적으로 공유된 걸 확인할 수 있다. 하지만 작업을 눌러서 복원을 하려고 하면 스냅샷 복원 메뉴가 막혀있다. 왜 그런 것일까?? 진짜 이거 때문에 하루는 꼬박 날린 것 같다... 블로그와 공식에서는 그냥 바로 되던데.... 이 문제를 해결하려면 좀 전에 스냅샷을 공유할 때 빨간 박스로 확인한 KMS라는 서비스에 대해 이해를 해야 한다.
이 화면은 최근 RDS 인스턴스 생성 시 기본으로 붙어있는 옵션 있은데 이 옵션에 대해 알지 않는 이상 그냥 기본 옵션을 그대로 적용해서 DB인스턴스를 생성하게 된다. 문제가 거기서부터 인데 이게 생성하고 나서는 변경이 불가능하다. 그렇다면 KMS가 도대체 멀까??
AWS Key Management Service(AWS KMS)는 데이터를 보호하는 데 사용하는 암호화 키를 쉽게 생성하고 제어할 수 있게 해주는 관리형 서비스입니다.
공식에 굉장히 쉽게 설명되어 있고 RDS 인스턴스 데이터를 보호하는 용도로 DB 인스턴스 생성 시에는 사용되고 있다고 생각하면 된다.
KMS 서비스로 이동해서 보면 왼쪽 메뉴에 AWS 관리형 키, 고객 관리형 키가 있는 데 AWS 관리형 키는 권한 조정이 불가능하다. 결론적으로 옮기고자 하는 DB인스턴스의 스냅샷을 생성하고 공유할 때 KMS까지 같이 공유되는데 이것에 대한 권한이 없다 보니까 복원이 불가능한 것이다!!! 근데 이미 DB인스턴스는 생성 돼 있고 KMS 키를 변경할 수도 없고 그렇다고 AWS 관리형 키는 권한 조정도 불가능한데 어떻게 해야 할까??? 이거에 대해 진짜 얼마나 힘들게 알아냈는지 ㅠㅠ 바로 KMS 고객 관리형 키를 발급하고 초기에 만든 스냅샷을 바로 공유하는 것이 아닌 한 번 복사를 하는데 그 과정에서 KMS 키를 내가 만든 고객 관리형 키로 교체하고 복사 후 그 스냅샷을 공유하면 된다. 바로 확인해 보자
KMS 고객 관리형 키 메뉴로 이동후 오른쪽 상단 키 생성 버튼 클릭
그대로 놔두고 바로 다음 버튼 클릭
별칭에 원하는 이름 작성 후 다음 버튼 클릭
원하는 관리 권한 선택 후 다음 버튼 클릭
원하는 사용 권한 선택 후 밑에 다른 AWS 계정에서 다른 AWS 계정 추가 버튼 선택 후 이전받을 AWS ID입력 후 다음 버튼 클릭하면 검토 화면으로 넘어가는 데 그냥 확인하고 끝내면 돼서 생략
그럼 이렇게 생성된 고객 관리형 키가 확인 가능하다.
다시 스냅샷 메뉴로 이동 후 아까 만들었던 스냅샷 버튼 클릭 후 작업에서 공유가 아닌 복사 버튼 클릭
원하는 이름 작성하고 밑에 AWS KMS 키에서 기본 옵션 말고 아까 생성한 KMS 고객 관리형 키로 선택 후 스냅샷 복사 버튼 클릭
그 후 생성된 스냅샷을 아까와 같은 과정으로 공유하고 확인 후 작업 버튼을 눌러보면 복원 버튼이 활성화된 걸 확인할 수 있을 것이다.
마지막으로 저번에도 말했듯이 AWS 공식문서는 처음에는 진짜 이해안되고 무슨 설명을 이렇게 해놓았나 싶지만 결국은 공식으로 해결하는 매직?을 경험하게 된다... 참고 했던 공식문서들 링크로 마무리!
https://repost.aws/ko/knowledge-center/account-transfer-rds
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ShareSnapshot.html
https://repost.aws/ko/knowledge-center/share-encrypted-rds-snapshot-kms-key
https://docs.aws.amazon.com/ko_kr/kms/latest/developerguide/key-policy-modifying.html
'개발 > devOps' 카테고리의 다른 글
AWS API Gateway와 Lambda 연동하기: Cognito로 보안까지 챙기자!🚀 (1편 Lambda 세팅) (0) | 2024.12.18 |
---|---|
Redis Key Naming: 성능과 유지보수를 동시에 잡는 방법(실전 개발자의 필수 가이드) 🎯 (1) | 2024.11.23 |
[AWS] EC2 HTTPS적용 (Load Balancer, Target Group) (0) | 2023.05.18 |
[AWS] CloudFront 배포 완전정복!!! (0) | 2023.05.16 |
[AWS] ACM(AWS Certificate Manager) 발급 (0) | 2023.05.15 |
댓글