아래 방법은 실패했다. 그 이유는 다음 글에. 아래 글은 스킵.
Data migration
Data를 migration하는 방법은 여러가지가 있지만
AWS Aurora로 이관하는 것이니 AWS DMS (Data Migration Service)가 가장 편해보인다.
현재 사용 중인 master RW db는 EC2 instance 하나에 postgresql을 설치한 후
3개의 database와 각 database의 owner가 서로 다른 user의 소유로 되어있다.
이를 위해 pgAdmin 4를 이용해 user와 database를 추가해준다.
PgAdmin 4
DBeaver를 사용해도 되지만 난 pgAdmin 4를 사용하겠다.
User 추가
새로운 user를 등록한다.
General 탭에서 Name을 입력하고
Definition 탭에서 password를 설정하고
Privileges 탭에서 role 설정을 하고
Membership 탭에서 role을 설정해준다.
Database 추가
database를 superuser 계정으로 만들고, 수정해서 owner를 바꿔준다.
AWS DMS (Data Migration Service)
DMS란 공식문서에 따르면 이런 구조.
즉, DMS 좌측메뉴에서
1. Replication instance 생성
2. Enpoint → source endpoint (EC2)와 target endpoint (Aurora) 설정
3. 그리고 Database migration task를 설정해주는 순간 자동으로 복사되기 시작한다.
1. Replication instances
Create Replication instance를 클릭하고 적당히 고르면 된다.
변경사항이 있을 때마다 실시간으로 업데이트해주는 용도가 아니라
한 번만 데이터를 이관해주는 용도라 고사양은 필요없다.
2. Endpoints
Create endpoint를 클릭
우선 Source endpoint :
Server name에는 EC2의 Public IPv4 DNS를 적어준다.
예: ec2-xx-xxx-xxx-xxx.ap-northeast-2.compute.amazonaws.com
database name도 적어주고 생성한 후에
위와 같이 Test connection을 실행한다.
약 1분간 테스트 후에 다음과 같이 successful이 뜨면 성공
target endpoint도 위와 마찬가지로 설정해주고 테스트 해준다.
3. Data Migration Task
Create task를 클릭
밑에 Migration type은 3가지가 있는데
Migrate existing data는 한 번만 있는 데이터를 옮기는데 사용된다.
추후 변경 사항만 옮기고 싶을 때는 Replicate data changes only를 선택하면 된다.
Don't include LOB columns를 선택하면 엄청나게 빠른 속도로 복사가 되는데
더 느린 Full LOB를 선택해도 20Gb 옮기는데 20분 정도밖에 안 걸린다.
여기 옵션 중에 가장 중요한 것은 Selection rule이다.
원하는 Database 만 선택한다.
생성하는 순간 바로 migration이 시작되고, 몇 분 기다리면 migration 완료
'DevOps와 Infra > AWS' 카테고리의 다른 글
MacOS에서 EC2에 있는 파일 가져오기 (0) | 2024.03.20 |
---|---|
Postgresql Migration (from EC2 to Aurora) - 3/3편 (0) | 2023.09.23 |
Postgresql Migration (from EC2 to Aurora) - 1/3편 (0) | 2023.09.20 |