AWS

[AWS] 스냅샷 공유를 이용한 계정간 rds 데이터 이동 /백업 / 복원 , KMS 키 발급

문앵 2022. 8. 17. 17:29

준비물 : 루트 계정이면 그냥 하면 되지만,, IAM 계정인 경우 권한을 부여받아야 한다

kms키(키 생성 권한 : AWSKeyManagementServicePowerUser) , rds ( 권한 : RDSFullAccess) ,

 

kms 키는 암호화된 스냅샷을 복사할때 필요하다. kms 키를 공유하고있는 계정만 이 스냅샷 복사가 가능하기 때문이다

 

스냅샷은 DB 인스턴스의 순간을 포착해서 그 순간의 데이터를 파일형태로 간직하고 있는것이다.

후에 이 스냅샷을 복원해서 DB 인스턴스를 생성할 수 있다. (원복은 불가능 , 새로운 인스턴스 생성)

 

나는 계정간 데이터 이동을 목적으로 하고 있기때문에,

 

1. 계정간 스냅샷 공유 

2. 공유 받은 계정에서 해당 계정에 다시 스냅샷 복사 - 공유한(from) 계정을 삭제하더라도 공유받은 계정(to)의 스냅샷은 유지하기 위해서

3. 스냅샷 복원하여 새로운 DB 인스턴스 생성 및 데이터 확인

 

간단하게 위 3단계 과정으로 데이터 이관을 진행했다.

 

**** 주의 ****

사전 작업 - KMS 발급

 

보통은 자동 생성된 스냅샷을 복사해서 공유하게 되는데 , 수동으로 생성된 스냅샷이 존재할 경우에도 해당 스냅샷을 복사 후 공유해야 한다.

-> 그 이유는 스냅샷을 공유받은 계정에서 다시 그걸 그 계정에 재복사하려면,

해당 원본 스냅샷을 생성할때 사용했던 kms 키와 같은 키를 가지고 있어야 하기 때문.

 

만약 기존에 생성되어있던 수동 스냅샷의 kms 키를 공유받는 계정에서 가지고 있다면 문제가 안되겠지만 ,

나같은 경우는 다른 사람이 생성했던 스냅샷을 이관만 해야했기 때문에.

 

1️⃣ 새로운 kms 를 발급 , kms 소유자에 공유받는 계정ID 추가 

🔻

2️⃣ 원하는 스냅샷을 자기 계정에 복사 

🔻

3️⃣ 이관하고픈 계정에 공유

 

이런 과정이 되어야하는것임.

 

그래서 먼저 kms 키 발급 

 

[ KMS ]

Key Management Service (KMS) > 고객관리형 키 > 키생성

 

Default 설정 에서 그대로 다음버튼 클릭 (리전을 바꾸고싶으면 다중 리전) -> 키 별칭과 설명등 자유롭게 작성, 다음 -> 권한 설정 (IAM 계정의 경우 자기자신) -> 완료

 

고객 관리형 키 섹션에서 원하는 키 선택 후 -> 아래로 스크롤 (키 정책) -> 다른 AWS 계정 추가 버튼 선택후 스냅샷 공유 받을 계정 아이디 추가해준다.

 

그럼 키작업은 완료.

 

1. 계정간 스냅샷 공유 

 

 [ aws - 서비스검색 - rds - 스냅샷 ]

(여기서 리전을 한번 확인하자. 잘못된 리전에서 확인할 경우에는 있는 데이터도 조회가 안돼서 헤맬수 있다.)

 

 

수동으로 생성되어있는 스냅샷이 없다면, 직접 생성해도 되지만 보통 자동으로 스냅샷을 생성하도록 되어 있을것이다.

자동생성 탭에 가보면 스냅샷이 있다.

 

필요한 스냅샷을 눌러서 오른쪽 상단 작업을 눌러보면 공유작업이 비활성화 되어있을 것이다.

왜냐면 자동으로 생성한 스냅샷은 공유하지 못하도록 되어있다.

 

따라서 이 스냅샷을 한번 복사 한 다음, 해당 복사본을 다른 계정으로 공유해야 한다.

복사는 한 계정 내에서 같은 스냅샷을 생성하는것이다 (다른 계정으로 바로 복사는 불가능)

 

그대로 스냅샷 복사 클릭

 

 

 

 

 

식별자는 이름같은거니까 조건에 맞게 아무거나 적으면 됨.

 

 

 

 

 

 

 

 

 

그리고 밑으로 내려보면 암호화를 설정하는 부분이 보인다.

 

여기서 사전에 생성해놓은 kms 키를 선택

 

 

2. 공유 받은 계정에서 해당 계정에 다시 스냅샷 복사

 

공유가 완료됐으면 , 대상 계정으로 가서 확인해본다.

Amazon RDS > snapshot (스냅샷) > shared( 나와 공유됨 ) 탭에서 확인 가능하다 (이때도 리전 확인 필수 )

 

정상적으로 공유된게 맞다면 그상태에서 작업 > 복사

 

** 이때 원본 스냅샷 생성당시 사용한 kms 키가 없다면 복사가 안될수있음. 

이 과정이 완료되면 이제 끝이다.

 

3. 스냅샷 복원하여 새로운 DB 인스턴스 생성 및 데이터 확인

스냅샷을 이용해서 새로운 데이터베이스를 생성할 수 있다. (기존 사용하던 인스턴스를 다시 살려내는건 불가능)

 

3-1. 스냅샷 복원

원하는 스냅샷 선택하여 작업 > 스냅샷 복원

인스턴스 식별자 (인스턴스 이름)설정 -> 나중에 수정 가능

 

이후 옵션 정보를 설정한다.

** 이때 

데이터베이스 이름과 포트 , 비밀번호를 따로 메모해둔다 (후에 디비 확인할때 필요)

사용자는 데이터베이스 관리 정보에서 확인이 가능하다.

 

네트워크 및 보안 설정

옵션 그룹 ,  서브넷 그룹 , VPC 보안 그룹 을 모두 기존 인스턴스 (원본) 과 동일하게 해야 도중에 오류가 안난다고 하니 

확실히 체크를 해봐야 한다.

 

3-2. 복원된 인스턴스 접속 및 데이터 확인

이제 최종 단계로 복원된 데이터를 확인해본다.

준비물은 원격 접속툴 (윈도우-heidiSql / 맥북- squel pro 등. 근데 squel pro는 계속 이상하게 오류가 나서 접속이 안됐다 ㅠ 같은 정보로 heidi에서 하니 바로 접속 가능.... )

 

접속을 하기 몇가지 설정이 필요하다. 

a. 퍼블릭엑세스 허용

b. 보안그룹 인바운드 포트 열기

 

이후 접속 과정은.... 따로 적어야겠다 글이 너무 길고 .. 지금 일해야됨. 귀찮음.

 

만약 정보 서치 하다가 이글을 발견할 사람들을 위해서..... 나중에 적고 링크를 연결해놓도록 하겠음. (지금은 아님 ㅋ 나중에)

 

 

 

 

 

 

** RDS 인스턴스 데이터베이스 삭제할때 주의할 점 - 데이터 베이스를 삭제하면 자동으로 스냅샷이 남게 되는데 , 스냅샷만 있어도 

어느정도 요금이 부과됨. 따라서 데이터베이스 삭제하고 난 뒤에 반드시 스냅샷 확인 후 꼭 지워줄 것 !!!

반응형