DMS – Database Migration Service
- 온프레미스 시스템에서 AWS 클라우드로 데이터베이스를 마이그레이션하고 싶을 때 DMS를 사용
- DMS는 빠르고 안전한 데이터베이스 서비스이며 온프레미스에서 AWS로 데이터베이스 마이그레이션을 해 줌
- 복원성이 좋고 자가 복구가 된다는 장점이 존재
- 마이그레이션을 하는 과정에서 소스 데이터베이스도 여젼히 사용 가능
- 동종 마이그레이션 등 다양한 엔진을 지원
예) Oracle, Postgre 간에도 지원
이기종 마이그레이션에서도 지원
예) Microsoft SQL 서버를 Aurora로 마이그레이션 - 변경 데이터 캡처(CDC)를 사용한 지속적 데이터 복제를 지원
- DMS를 사용하려면 EC2 인스턴스를 생성해서 복제를 처리하도록 해얗 마
소스 데이터베이스는 온프레미스에 있고 DMS 소프트웨어가 있는 EC2 인스턴스를 실행 중이라면
소스 데이터베이스로부터 데이터를 지속적으로 pull 하며 대상 데이터베이스로 가져감
DMS Sources and Targets
- 무엇이 대상이고 무엇이 소스인가
- Sources
온프레미스와 EC2 인스턴스 데이터베이스 : Oracle, MS SQL Server, MySQL, MariaDB, PostgreSQL, MongoDB, SAP, DB2
Azure : Azure SQL 데이터베이스를 위해 사용
Amazon RDS : 오로라를 포함한 모든 데이터베이스
Amazon S3 - Targets
온프레미스와 EC2 인스턴스 데이터베이스 : Oracle, MS SQL Server, MySQL, MariaDB, PostgreSQL, SAP
Amazon RDS
Amazon Redshift
Amazon DynamoDB
Amazon S3
ElasticSearch Service
Kinesis Data Streams
DocumentDB - 온프레미스에서 대상을 하는 소스를 변환할 수 있고
이 대상은 보통 AWS에 해당하므로 대상들이 AWS에서 흔한 데이터베이스라는 것
AWS Schema Conversion Tool (SCT)
- 소스 데이터베이스와 대상 데이터베이스가 같은 엔진을 갖고 있지 않다면 Schema Conversin Tool이라는 AWS SCT를 사용
반면 같은 엔진을 쓰는 데이터베이스의 마이그레이션에서는 SCT가 필요 없음 - 데이터베이스의 스키마를 다른 엔진으로 변환해 줌
- 예1) OLTP를 사용한다면 SQL 서버나 Oracle을 MySQL, PostgreSQL, Aurora로 마이그레이션 가능
예2) Teradata나 Oracle 등의 분석적 과정에서 Amazon Redshift로 변환도 가능
예3) Oracle에서 Postgres로 보낸다고 하면 SCT가 필요하며 RDS는 단지 데이터베이스 엔진을 실행하기 위해 쓰는 플랫폼
DMS - Continuous Replication
- DMS에서 지속적인 복제 설정
- 기업 데이터 센터가 있고 소스로 Oracle 데이터베이스를 사용할 때
대상은 MySQL DB의 Amazon RDS 데이터베이스이므로 서로 다른 데이터베이스이므로 SCT를 사용해야만 함
AWS SCT를 설치해서 서버를 구축하고 온프레미스를 만들고 MySQL을 실행하는 RDS 데이터베이스에 스키마 변환을 함
그러면 DMS 복제 인스턴스를 설정해 풀로드와 CDC를 사용할 수 있고 지속적 복제가 생겨
온프레미스, 소스, Oracle 데이터베이스를 읽어서 마이그레이션하고 데이터를 사설 서브넷에 삽입
<데이터베이스 마이그레이션 서비스 실습>
- 복제 인스턴스 생성
이름을 FirstReplication으로 붙임
인스턴스 클래스는 EC2 인스턴스의 클래스이며 대상이나 소스로부터 데이터를 끌어오게 되는 인스턴스가 됨
t2.micro부터 r4.8xlarge처럼 큰 인스턴스까지 사용이 가능하며
소스 데이터베이스가 크다면 중앙에 큰 인스턴스 클래스를 배치해서 빠른 속도로 지속적 복제를 할 수 있음
이후 쓰고 싶은 DMS의 엔진 버전을 고르는데 이는 인스턴스의 저장소 크기를 묻는 것이며
로그 파일들을 버퍼하거나 써야 하기 때문에 소스 데이터베이스가 크면 큰 저장소에 좋음
VPC는 데이터베이스를 배포할 VPC를 뜻함
다중 AZ를 선택하면 다중 AZ 배포에서 AZ에 첫 번째 인스턴스를 두고 다른 AZ에는 대기 인스턴스를 두므로 복원력이 좋아짐
그러면 DMS에 다중 AZ 서비스를 만들게 되어, 결함이 적고 고가용성이 됨
DMS 인스턴스를 공용 사용 가능하도록 만들거나 사설 사용이 가능하게 만들 수 있음
이를 위해서는 고급 보안과 네트워크 구성을 통해 서브넷 그룹과 선호하는 AZ를 정하며
VPC 보안 그룹과 암호화를 위한 KMS 키를 만듦
유지 보수를 하면서 DMS 인스턴스도 업데이트해줘야 함
이를 모두 설정하고 나면 Database migration tasks를 생성할 수 있고 작업을 생성할 수 있게 됨
- 데이터베이스 엔드포인트 생성
모든 소스와 대상 엔드 포인트를 지정할 수 있으며
소스와 대상 엔드포인트로는 RDS DB 인스턴스를 선택하거나 정보를 직접 받을 수 있음
소스에는 지원하는 모든 기술을 사용할 수 있고 대상에도 마찬가지로 지원되는 모든 기술이 나와있음
첫 번째 인스턴스가 Oracle이고 MyOracle이라고 한 후 서버 이름이나 포트 사용자명, 비밀번호 등을 넣어
데이터베이스에서 복제할 수 있도록 하며 엔드 포인트 설정이 필요하므로 암호화를 위한 KMS 마스터 키나
작동하는지 확인하기 위한 엔드 포인트 연결 테스트를 진행하면 소스와 대상 엔드 포인트를 생성할 수 있음
- 마이그레이션 테스크 생성
MyTask라고 이름을 한 후
위에서 생성한 복제 인스턴스를 선택한 후 위에서 만든 MyOracle 소스 데이터베이스 엔드 포인트 선택
그리고 존재하는 데이터를 마이그레이션하려면 진행 중인 변화에 대한 복제가 되어야 하므로 변경 데이터 캡쳐를 설정힌 후 생성
만약 소스의 데이터베이스 엔드 포인트가 대상 데이터베이스 엔드 포인트와 다를 경우
내부적으로 스키마 변환 도구인 SCT를 사용해서 소스에 있는 데이터가 호환이 가능한지 확인하게 됨
그리고 대상에 맞는 데이터 형식으로 변형 시킴
'Cloud > AWS' 카테고리의 다른 글
[SAA] DataSync (0) | 2022.05.02 |
---|---|
[SAA] AWS를 통한 온프레미스 전략 (0) | 2022.05.02 |
[SAA] AWS의 재해 복구 (0) | 2022.05.02 |
[SAA] AWS의 네트워킹 비용 (0) | 2022.05.01 |
[SAA] VPC 섹션 (0) | 2022.05.01 |