RDS → S3 마이그레이션 task를 수행하는 중 DMS에서 CDC 작업이 제대로 이루어지는지 검증하는 작업을 수행했다.
DMS로 MySQL DB (RDS) 에서 S3 Bucket으로 Migration 하기
- AWS에서 새로운 RDS 인스턴스 생성
- RDS와 MySQL Workbench 연결하기
RDS 보안그룹에 인바운드 규칙은 다음과 같이 추가되어야 한다. (필요에 따라 내 IP를 선택하거나 모든 트래픽을 선택하면 될 것이다. )
3. 엔드포인트 생성 및 연결 테스트 완료
엔드포인트 생성 시 rds에서 사용하는 마스터키 비밀번호를 정확하게 입력해주어야 한다
4. RDS에서 파라미터 그룹 생성
5. 파라미터 설정에서 binlog_row_image 를 full 로 변경
6. binlog_format 값으로 ROW를 선택한 후 변경 사항을 저장
7. 생성한 파라미터 그룹을 RDS 인스턴스 > 추가 구성 > 데이터베이스 옵션에서 설정
8. RDS 인스턴스를 재부팅한다.
9. 태스크 생성은 다음과 같이 설정한다.
10. 선택규칙은 다음과 같이 작성한다
소스입력에 데이터베이스 명을 적고, 소스 테이블 이름에 마이그래이션 대상인 테이블 이름을 적으면 된다. 와일드카드를 적어 해당 데이터베이스 내의 모든 테이블을 마이그래이션 하는것으로 지정했다.
성공적으로 S3 버킷으로 마이그레이션 되었다.
CDC 테스트
• For CDC, CREATE TABLE, ADD COLUMN, and DROP COLUMNchanging the column data type, and
renaming a column are supported. However, DROP TABLE, RENAME TABLE, and updates made to other attributes, such as column default value, column nullability, character set and so on, are not supported.
https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MySQL.html
AWS 공식 홈페이지에 따르면, DMS가 지원하는 명령어도 있지만, 그렇지 않은 명령어 ex) DROP TABLE 도 있으므로 잘 확인하고 사용해야 할 것이다.
CREATE TABLE 명령어
INSERT INTO 명령어
'Cloud Engineering > AWS' 카테고리의 다른 글
AWS Kendra 란? (0) | 2023.08.16 |
---|---|
[AWS] Python boto3 로 S3 Bucket에 파일 업로드하기 (0) | 2023.07.23 |
[AWS] EC2 와 S3 Bucket 를 PrivateLink 로 연결하기 (0) | 2023.05.25 |
AWS Private Link 생성하는 방법 (VPC Endpoint) (0) | 2023.05.17 |
[AWS] RDS 생성하기 & EC2 인스턴스에서 RDS 접속하기 (0) | 2023.03.10 |