Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

Study_note

[AWS] DB Server - DMS - S3 - Glue - Athena 마이그레이션 - ETL - 쿼리 (1) 본문

AWS

[AWS] DB Server - DMS - S3 - Glue - Athena 마이그레이션 - ETL - 쿼리 (1)

Study_note 2022. 8. 19. 18:44

 

아래와 같이 rds가 아닌 ec2위에 db가 있다는 가정으로 data가있는 db를 서버에서 생성해준다.

 

DMS를 통해 data를 받을 taget인 버킷을 생성해주고 아래와 같이 2개의 폴더를 생성해준다. 

 

후 dms에서 s3에 관한 정책을 부여할수 있게 다음과 같은 json문에 정책을 생성 후 생성한 정책을 사용하여 dms 역할을 생성해준다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:PutObjectTagging"
            ],
            "Resource": [
                "arn:aws:s3:::dmstargetbucket-yourinitial-1111111111*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::dmstargetbucket-yourinitial-1111111111*"
            ]
        }
    ]
}

dms로 넘어가 복제 인스턴스를 생성해준다.

이번 과정에서는 multi az를 생성하지 않고 퍼블릭 엑세스도 가능하지 않게 설정한다

 

복제 인스턴스 :  마이그레이션 작업 수행 등 여러 작업 지원 가능 multi az도 지원해서 가용성 높힘

 

아래와 같이 임의로 이름, 설명 입력 후 사용할 인스턴스와 버전, 스토리지 현재 db가있는 서버에 vpc 선택해준다.

복제 인스턴스를 생성했다면 source, target 엔드포인트를 생성해주어 데이터를 넘길수 있게 마이그레이션 준비한다.

 

source 엔드포인트일 경우 엔진은 서버의 올려둔 엔진 선택 서버 이름의 경우 DB가 올려진 서버의 PrivateDNS

또한 수동으로 엑세스 정보 제공을 선택한다. 그 외 포트, 아이디, 비번은 사용하는 DB에 맞게 설정

아래로 내려보면 연결 테스트를 할수있는데 복제 인스턴스가 있는 VPC와 복제인스턴스를 선택 후

테스트 실행 시  successful 나오면 문제 없이 생성 된다.

 

다음으로 target 엔드포인트 선택 후 위에서 생성했던 역할 arn을 넣어주고 저장할 장소인 버킷 이름과 폴더를 넣어준다. 

target 도 마찬가지로 source처럼 연결 테스트 가능하고 successful시 문제 없이 생성 된다.

 

source, target 엔드포인트을 생성했다면 아래와 같이 2개의 엔드포인트를 확인할 수 있다.

이제 마지막으로 dms task를 통해 서버에 있던 data들을 s3로 넘겨본다.

 

우선 생성했던 복제 인스턴스, source, target 엔드포인트 선택 후 마이그레이션 유형에서 기존에 있는 데이터만 옮길건지 변경되는 사항까지도 복제할것인지 선택 해준다.

여기선 기존 데이터와 변경 사항들도 복제하기 때문에

변경 데이터 캡처(CDC)중지를 가능한지 선택가능하며 여기서는 비활성화한다.

또한 기존에 타겟에 테이블이 있다면 드롭하고 새 테이블을 만들기 위해 대상에서 테이블 삭제

(아무 작업 안함 선택 해도 테이블이 없다면 테이블 생성 가능)

마지막으로 마이그레이션 중지 안할거여서 중지 안함 선택

(적용 전 중지 : 보조 인덱스를 추가하여 변경 사항을 빠르게 적용 but 처음부터 다시 적용)

(적용 후 중지 : 트랜잭션 적용을 사용하는 경우 외래 키, 트리거 등을 추가 다시 마이그레이션 해도 빠르다)

 

이제 어떤 테이블들을 가져올건지 메핑 해준다.

여기서는 모든 스키마와 테이블을 가져오기 때문에 %로 지정 

아래에서 스키마는 선택이 없는것 같다 (확인 필요)

 

위와 같이 task를 생성해주면 아래와 같이 생성된것을 확인 가능하며 테스크 선택 후 테이블 통계를 Click하여 Migration 상황을 확인합니다

s3 또한 마찬지로 폴더를 확인해보면 파일이 생성된것을 확인할 수 있다.

Comments