AWS

AWS 프리티어 만료 KMS 키 RDS 계정 옮기기

끈끈 2023. 8. 31. 16:42

 

최종 프로젝트가 끝난지 두달이 다 되어간다.

 

몇 개월은 열어두기로 한 우리 사이트.

 

https://makebestie.com/

 

BFFs, 찐친

1인 가구를 위한 찐친 만들기 프로젝트. 때론 같이 놀면서 즐거운 커뮤니티를 만들어가세요!

makebestie.com

 

내 AWS 계정으로 했었는데 프리티어 기간이 이번 달로 마지막,,

 

내배캠 전 22년 여름에 들었던 웹개발 강의 때문이었다ㅜㅜ

 

"Your Amazon Web Services Free Tier expires soon"

 

현재는 월에 만얼마 청구되는데 프리티어 기간이 끝나면 5-6만원대로 훅 올라가는 것 같더라.

 

 

AWS 로그인 후 우측 상단에서 [결제 대시보드]를 들어가서

 

좌측 [Free tier]에서 현재 사용중인 프리티어 목록을 볼 수 있다.

 

 

암튼 AWS 요금 폭탄을 맞지 않기 위해서 프리티어 적용되는 새 계정을 만들어

 

요금의 많은 부분을 차지할 것으로 우려되는 RDS를 옮기기로 했다.

 

그러기 위해서는 먼저 RDS 스냅샷을 생성한 뒤 공유해야 하는데

 

나 같은 경우는 KMS 키로 암호화되어 있어서 공유하는 과정에서 액세스 권한이 없다고 자꾸 떠서 고생을 했는데,

 

결론은 고객 관리형 키를 새로 만든 뒤, 그 키로 스냅샷을 복사한 뒤 공유.

 

먼저, 스냅샷 생성 자체는 매우 간단하다.

 

 

RDS 메뉴에서 [스냅샷] - [스냅샷 생성]

 

 

스냅샷 생성하기 원하는 [DB 인스턴스]를 선택한 후 [스냅샷 이름]을 적어주고 [스냅샷 생성]

 

생성이 시간이 걸리는 동안 AWS 새 계정 가입을 마무리했다.

 

(카드번호 적고 해야해서 ㄱ귀찮.. 일부러 결제 정보 이메일을 기존 계정 이메일로 해두었다. 이 과정에서 100원이 결제되었다가 바로 결제 취소된다.)

 

 

카드 정보 입력까지 완료하고도 24시간이 걸릴 수 있다는 창이 떴는데 거의 1분만에 완료된 듯.

 

 

스냅샷 생성이 완료되면 [스냅샷 공유]

 

 

뭐? ㅎ

 

암호화된 스냅샷을 다른 계정과 공유하려면 KMS를 통해 사용자 지정 마스터 키를 다른 계정과도 공유해야 합니다.

 

근데 일단 그냥 Private로 선택하여 AWS 새 계정의 ID 숫자 12자리를 입력한 후 저장해보았다.

 

새 계정의 RDS 스냅샷에 접속해보면

 

 

[나와 공유됨] 탭에 자동으로 스냅샷이 생성되어 있다!

 

그걸 또 복사해주면 되는데

 

 

역시나 스냅샷 KMS 키에 액세스 권한이 없단다.

 

Amazon RDS DB 인스턴스에서 사용하는 암호화 키는 변경할 수 없습니다. 하지만 RDS DB 인스턴스의 사본을 생성한 다음, 해당 사본에 새 암호화 키를 선택할 수는 있습니다.

 

 

Key Management Service(KMS)

 

기존에 AWS 관리형 키가 두개 생성되어 있었는데

 

고객 관리형 키(CMK)로 새로 생성해주었다.

 

 

 

4번째 단계 [키 사용 권한 정의]에서

 

아래에 [다른 AWS 계정]에 새 계정 ID를 입력하고 다음을 눌러 CMK를 생성해준다.

 

새로 만든 고객 관리형 키(CMK)로 스냅샷이 생성되게 하기 위해서 스냅샷을 하나 더 복사해준다.

 

 

복사한 스냅샷을 다시 공유해서

 

 

새 계정에서 나와 공유된 스냅샷에서 복사.

 

암호화 KMS 키는 [키 ARN 입력]으로 선택해 새로 만든 CMK의 ARN 복사 입력 후 [스냅샷 복사]

 

 

다시 [수동] 탭으로 옮겨와 [스냅샷 복원]을 하면 새 DB 인스턴스 생성 화면이 뜬다.

 

기존 DB 참고해서 db.t3.micro, 20GiB만 신경써주었다.

 

복원은 은근 시간이 걸렸음(상태가 수정중, 백업중 등으로 변경)

 

마무리로 docker-compose.yml의 POSTGRES_HOST 바꿔주고 .env 파일도 수정!

 

 

'AWS' 카테고리의 다른 글

aws  (0) 2023.05.29
AWS RDS DB 연동하기  (1) 2023.05.23
Deploy : Django to EC2  (1) 2023.05.21
AWS의 모든 것 1강  (2) 2023.05.07
AWS Elastic Beanstalk 애플리케이션 생성 설정  (0) 2023.05.03