

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 설정을 위한 사전 조건 완료 AWS Database Migration Service
<a name="CHAP_GettingStarted.Prerequisites"></a>

이 섹션에서는 소스 및 대상 데이터베이스 설정 AWS DMS과 같은의 사전 필수 작업을 배울 수 있습니다. 이러한 작업의 일부로 Amazon VPC 서비스 기반의 가상 프라이빗 클라우드(VPC)를 설정하여 리소스를 포함시킵니다. 또한 소스 데이터베이스를 채우고 대상 데이터베이스에서 복제를 확인하는 데 사용할 Amazon EC2 인스턴스를 설정합니다.

**참고**  
소스 데이터베이스를 채우는 데 최대 45분이 걸립니다.

이 자습서에서는 MariaDB 데이터베이스를 소스로 생성하고 PostgreSQL 데이터베이스를 대상으로 생성합니다. 이 시나리오에서는 일반적으로 사용되는 저렴한 데이터베이스 엔진을 사용하여 복제를 시연합니다. 서로 다른 데이터베이스 엔진을 사용하면 이기종 플랫폼 간에 데이터를 마이그레이션하는 AWS DMS 기능을 보여줍니다.

이 자습서의 리소스에서는 미국 서부(오리곤) 리전을 사용합니다. 다른 AWS 리전을 사용하려면 미국 서부(오레곤)가 나타날 때마다 선택한 리전을 대신 지정합니다.

**참고**  
단순성을 위해 이 자습서에서 생성하는 데이터베이스는 암호화 또는 기타 고급 보안 기능을 사용하지 않습니다. 프로덕션 데이터베이스를 안전하게 보호하려면 보안 기능을 사용해야 합니다. 자세한 내용은 [Amazon RDS의 보안](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.html)을 참조하세요.

사전 조건 단계는 다음 항목을 참조하세요.

**Topics**
+ [VPC 생성](#CHAP_GettingStarted.Prerequisites.VPC)
+ [Amazon RDS 파라미터 그룹 생성](#CHAP_GettingStarted.Prerequisites.params)
+ [소스 Amazon RDS 데이터베이스 생성](#CHAP_GettingStarted.Prerequisites.sdatabase)
+ [대상 Amazon RDS 데이터베이스 생성](#CHAP_GettingStarted.Prerequisites.tdatabase)
+ [Amazon EC2 클라이언트 생성](#CHAP_GettingStarted.Prerequisites.client)
+ [소스 데이터베이스 채우기](#CHAP_GettingStarted.Prerequisites.Populate)

## VPC 생성
<a name="CHAP_GettingStarted.Prerequisites.VPC"></a>

이 섹션에서는 AWS 리소스를 포함할 VPC를 생성합니다. VPC 사용은 AWS 리소스를 사용할 때 데이터베이스, Amazon EC2 인스턴스, 보안 그룹 등이 논리적으로 구성되고 안전하도록 하는 모범 사례입니다.

VPC를 자습서 리소스로 사용하면 자습서를 완료했을 때 사용한 모든 리소스도 삭제됩니다. VPC를 삭제하려면 먼저 VPC에 포함된 모든 리소스를 삭제해야 합니다.

**와 함께 사용할 VPC를 생성하려면 AWS DMS**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) Amazon VPC 콘솔을 엽니다.

1. 탐색 창에서 **VPC 대시보드**, **대시보드 생성**을 차례로 선택합니다.

1. **VPC 생성** 페이지에서 다음 옵션을 선택합니다.
   + **생성할 리소스**: **VPC 등**
   + **이름 태그 자동 생성**: **자동 생성**을 선택하고 **DMSVPC**을 입력합니다.
   + **IPv4 블록**: **10.0.1.0/24**
   + **IPv6 CIDR 블록**: **IPv6 CIDR 블록 없음**
   + **테넌시**: **기본값**
   + **가용 영역 수**: 2
   + **퍼블릭 서브넷 수**: 2
   + **프라이빗 서브넷 수**: 2
   + **NAT 게이트웨이(\$1)**: **없음**
   + **VPC 엔드포인트**: **없음**

   **VPC 생성**을 선택합니다.

1. 탐색 창에서 **VPC**를 선택합니다. **DMSVPC**의 VPC ID를 적어둡니다.

1. 탐색 창에서 **보안 그룹**을 선택합니다.

1. **DMSVPC**에 대해 적어둔 ID와 일치하는 **VPC ID**를 가진 **default**라는 그룹을 선택합니다.

1. **인바운드 규칙** 탭을 선택하고 **인바운드 규칙 편집**을 선택합니다.

1. **규칙 추가**를 선택합니다. **MySQL/Aurora** 유형의 규칙을 추가하고 **소스**로 **Anywhere-IPv4**를 선택합니다.

1. **규칙 추가**를 다시 선택합니다. **PostgreSQL** 유형의 규칙을 추가하고 **소스**로 **Anywhere-IPv4**를 선택합니다.

1. **규칙 저장**을 선택합니다.

## Amazon RDS 파라미터 그룹 생성
<a name="CHAP_GettingStarted.Prerequisites.params"></a>

소스 및 대상 데이터베이스의 설정을 지정하려면 Amazon RDS 파라미터 그룹을 AWS DMS사용합니다. 데이터베이스 간 초기 복제와 지속적 복제를 허용하려면 다음을 구성해야 합니다.
+ 가 복제해야 하는 증분 업데이트를 결정할 AWS DMS 수 있도록 소스 데이터베이스의 바이너리 로그입니다.
+ 대상 데이터베이스의 복제 역할로,는 초기 데이터 전송 중에 외래 키 제약 조건을 AWS DMS 무시합니다. 이 설정을 사용하면가 데이터를 순서에 맞지 않게 마이그레이션할 AWS DMS 수 있습니다.

**와 함께 사용할 파라미터 그룹을 생성하려면 AWS DMS**

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **파라미터 그룹**을 선택합니다.

1. **파라미터 그룹** 페이지에서 ** 파라미터 그룹 생성**을 선택합니다.

1. **파라미터 그룹 생성**페이지에서 다음 설정을 입력합니다.
   + **파라미터 그룹 패밀리**: **mariadb10.6**
   + **그룹 이름:** **dms-mariadb-parameters**
   + **설명:** **Group for specifying binary log settings for replication**

   **생성**을 선택합니다.

1. **파라미터 그룹** 페이지에서 **dms-mariadb-parameters**를 선택하고, **dms-mariadb-parameters** 페이지에서 **편집**을 선택합니다.

1. 다음 파라미터를 다음 값 중 하나로 설정합니다.
   + **binlog\$1checksum**: **없음**
   + **binlog\$1format**: **행**

   **변경 사항 저장**을 선택합니다.

1. **파라미터 그룹** 페이지에서 ** 파라미터 그룹 생성**을 다시 선택합니다.

1. **파라미터 그룹 생성**페이지에서 다음 설정을 입력합니다.
   + **파라미터 그룹 패밀리**: **postgres16**
   + **그룹 이름:** **dms-postgresql-parameters**
   + **설명:** **Group for specifying role setting for replication**

   **생성**을 선택합니다.

1. **파라미터 그룹** 페이지에서 **dms-postgresql-parameters**를 선택합니다.

1. **dms-postgresql-parameters** 페이지에서 **편집**을 선택하고 **session\$1replication\$1role 파라미터**를 **복제본**으로 설정합니다. 참고로, **session\$1replication\$1role ** 파라미터는 파라미터의 첫 페이지에 없습니다. 페이지 매김 컨트롤 또는 검색 필드를 사용하여 이 파라미터를 찾으세요.

1. **변경 사항 저장**을 선택합니다.

## 소스 Amazon RDS 데이터베이스 생성
<a name="CHAP_GettingStarted.Prerequisites.sdatabase"></a>

다음 절차에 따라 소스 Amazon RDS 데이터베이스를 생성합니다.

**소스 Amazon RDS for MariaDB 데이터베이스를 생성하려면**

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. **대시보드** 페이지의 **데이터베이스** 섹션에서 **데이터베이스 생성**을 선택합니다. 페이지 상단의 **새로운 MySQL 및 PostgreSQL용 Amazon RDS Multi-AZ 배포 옵션 사용해 보기** 섹션에서 **데이터베이스 생성**을 선택하지 마세요.

1. **데이터베이스 생성** 페이지에서 다음 옵션을 선택합니다.
   + **데이터베이스 생성 방법 선택**: **표준 생성**을 선택합니다.
   + **엔진 옵션**: **엔진 유형**에서 **MariaDB**를 선택합니다. **버전**의 경우 **MariaDB 10.6.14**를 선택한 상태로 둡니다.
   + **템플릿**: **개발 및 테스트**를 선택합니다.
   + **설정**: 
     + **DB 인스턴스 식별자**: **dms-mariadb**를 입력합니다.
     + **자격 증명 정보 설정** 섹션에서 다음을 입력합니다.
       + **마스터 사용자 이름**: **admin**을 그대로 둡니다.
       + ** AWS Secrets Manager에서 마스터 자격 증명 관리를** 선택하지 않은 상태로 둡니다.
       + **암호 자동 생성**: 선택하지 않은 상태로 둡니다.
       + **마스터 암호**: **changeit**을 입력합니다.
       + **암호 확인**: **changeit**을 다시 입력합니다.
   + **인스턴스 구성**: 
     + **DB 인스턴스 클래스**: **표준 클래스**가 선택된 상태로 둡니다.
     + **DB 인스턴스 클래스**에서 **db.m5.large**를 선택합니다.
   + **스토리지**: 
     + **스토리지 자동 조정 활성화** 확인란의 선택을 취소합니다.
     + 나머지 설정은 그대로 둡니다.
   + **가용성 및 내구성**: **대기 인스턴스를 생성하지 않음**을 선택한 상태로 둡니다.
   + **연결**:
     + **컴퓨팅 리소스** **EC2 컴퓨팅 리소스에 연결하지 않음**을 그대로 둡니다.
     + **네트워크 유형**: **IPv4**를 선택한 상태로 둡니다.
     + **가상 프라이빗 클라우드**: **DMSVPC-vpc**
     + **퍼블릭 액세스**: **예**. AWS Schema Conversion Tool를 사용하려면 퍼블릭 액세스를 활성화해야 합니다.
     + **가용 영역**: **us-west-2a**
     + 나머지 설정은 그대로 둡니다.
   + **데이터베이스 인증**: **암호 인증**을 선택한 상태로 둡니다.
   + **모니터링**에서 **Performance Insights 켜기** 확인란의 선택을 취소합니다. **추가 구성** 섹션을 확장하고 **향상된 모니터링 활성화** 확인란의 선택을 취소합니다.
   + **추가 구성**을 확장합니다.
     + **데이터베이스 옵션**에서 **초기 데이터베이스 이름**에 **dms\$1sample**을 입력합니다.
     + **DB 파라미터 그룹**에서 **dms-mariadb-parameters**를 선택합니다.
     + **옵션 그룹**에서 **default:mariadb-10-6**을 선택한 상태로 둡니다.
     + **백업**에서 다음을 수행합니다.
       + **자동 백업 활성화**를 선택한 상태로 둡니다. 지속적 복제를 지원하려면 소스 데이터베이스에 자동 백업이 활성화되어 있어야 합니다.
       + **백업 보존 기간**으로 **1일**을 선택합니다.
       + **백업 기간**에서 **기본 설정 없음**을 선택된 상태로 둡니다.
       + **스냅샷에 태그 복사** 확인란의 선택을 취소합니다.
       + **다른 AWS 리전에서 복제 활성화**를 선택하지 않은 상태로 둡니다.
     + **암호화**에서 **암호화 활성화** 확인란의 선택을 취소합니다.
     + **로그 내보내기** 섹션은 그대로 둡니다.
     + **유지 관리**에서 **자동 마이너 버전 업그레이드 활성화** 확인란의 선택을 취소하고 **유지 관리 기간** 설정을 **기본 설정 없음**으로 유지합니다.
     + **삭제 방지 활성화**를 선택하지 않은 상태로 둡니다.

1. **데이터베이스 생성**을 선택합니다.

## 대상 Amazon RDS 데이터베이스 생성
<a name="CHAP_GettingStarted.Prerequisites.tdatabase"></a>

이전 절차를 반복하되 다음과 같이 변경하여 대상 Amazon RDS 데이터베이스를 생성합니다.

**대상 RDS for PostgreSQL 데이터베이스를 생성하려면**

1. 이전 절차의 1 및 2단계를 반복합니다.

1. **데이터베이스 생성** 페이지에서 다음을 제외하고 동일한 옵션을 설정합니다.

   1. **엔진 옵션**에서 **PostgreSQL**을 선택합니다.

   1. **버전**의 경우 사용 가능한 **PostgreSQL 16** 버전을 선택합니다

   1. **DB 인스턴스 식별자**에 **dms-postgresql**을 입력합니다.

   1. **마스터 사용자 이름**은 **postgres**을 선택된 상태로 둡니다.

   1. **DB 파라미터 그룹**에서 **dms-postgresql-parameters**를 선택합니다.

   1. **자동 백업 활성화** 확인란의 선택을 취소합니다.

1. **데이터베이스 생성**을 선택합니다.

## Amazon EC2 클라이언트 생성
<a name="CHAP_GettingStarted.Prerequisites.client"></a>

이 섹션에서는 Amazon EC2 클라이언트를 생성합니다. 이 클라이언트를 사용하여 복제할 데이터로 소스 데이터베이스를 채웁니다. 또한 이 클라이언트를 사용하여 대상 데이터베이스에서 쿼리를 실행하여 복제를 확인할 수 있습니다.

Amazon EC2 클라이언트를 사용하여 데이터베이스에 액세스하면 인터넷을 통해 데이터베이스에 액세스하는 것에 비해 다음과 같은 이점이 있습니다.
+ 데이터베이스에 대한 액세스를 동일한 VPC에 있는 클라이언트로만 제한할 수 있습니다.
+ 이 자습서에서 사용하는 도구는 Amazon Linux 2023에서 작동하고 설치하기도 쉽다는 것을 확인했으므로 이 자습서에서는 이 도구를 권장합니다.
+ VPC의 구성 요소 간 데이터 작업은 일반적으로 인터넷을 통한 작업보다 성능이 좋습니다.

**Amazon EC2 클라이언트를 생성 및 구성하여 소스 데이터베이스를 채우려면**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. **대시보드**에서 **인스턴스 시작**을 선택합니다.

1. **인스턴스 시작** 페이지에서 다음 값을 입력합니다.

   1. **이름 및 태그** 섹션에서 **이름**에 **DMSClient**를 입력합니다.

   1. **애플리케이션 및 OS 이미지(Amazon Machine Image)** 섹션에서 설정을 그대로 유지합니다.

   1. **인스턴스 유형** 섹션에서 **t2.xlarge**를 선택합니다.

   1. **키 페어(로그인)** 섹션에서 **새 키 페어 생성**을 선택합니다.

   1. **키 페어 생성** 페이지에서 다음을 입력합니다.
      + **Key pair name:** **DMSKeyPair**
      + **키 페어 유형**: **RSA**를 그대로 둡니다.
      + **프라이빗 키 파일 형식**: MacOS 또는 Linux의 OpenSSH에는 **pem**을 선택하고, Windows의 PuTTY에는 **ppk**를 선택합니다.

      메시지가 표시되면 키 파일을 저장합니다.
**참고**  
새 키 페어를 생성하는 대신 기존 Amazon EC2 키 페어를 사용할 수도 있습니다.

   1. **네트워크 설정** 섹션에서 **편집**을 선택합니다. 다음 설정을 선택합니다.
      + **VPC - *필수***: **DMSVPC-vpc** VPC에 대해 적어둔 ID가 있는 VPC를 선택합니다.
      + **서브넷**에서 첫 번째 퍼블릭 서브넷을 선택합니다.
      + **퍼블릭 IP 자동 할당**: **활성화**를 선택합니다.

      나머지 설정은 그대로 두고 **인스턴스 시작**을 선택합니다.

## 소스 데이터베이스 채우기
<a name="CHAP_GettingStarted.Prerequisites.Populate"></a>

이 섹션에서는 나중에 사용할 소스 및 대상 데이터베이스의 엔드포인트를 찾고 다음 도구를 사용하여 소스 데이터베이스를 채웁니다.
+ Git - 소스 데이터베이스를 채우는 스크립트를 다운로드합니다.
+ MariaDB 클라이언트 - 이 스크립트를 실행합니다.

### 엔드포인트 가져오기
<a name="CHAP_GettingStarted.Prerequisites.Populate.Hosts"></a>

나중에 사용할 수 있도록 RDS for MariaDB 및 RDS for PostgreSQL DB 인스턴스의 엔드포인트를 찾아 적어둡니다.

**DB 인스턴스 엔드포인트를 찾으려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/) Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스**를 선택합니다.

1. **dms-mariadb** 데이터베이스를 선택하고 데이터베이스의 **엔드포인트** 값을 적어둡니다.

1. **dms-postgresql** 데이터베이스에 대해 이전 단계를 반복합니다.

### 소스 데이터베이스 채우기
<a name="CHAP_GettingStarted.Prerequisites.Populate.Git"></a>

그런 다음 클라이언트 인스턴스에 연결하고, 필요한 소프트웨어를 설치하고, Git에서 AWS 샘플 데이터베이스 스크립트를 다운로드하고, 스크립트를 실행하여 소스 데이터베이스를 채웁니다.

**소스 데이터베이스를 채우려면**

1. 이전 단계에서 저장한 호스트 이름 및 퍼블릭 키를 사용하여 클라이언트 인스턴스에 연결합니다.

   Amazon EC2 인스턴스에 연결에 대한 자세한 내용은 *Amazon EC2 사용 설명서*에서 [인스턴스 액세스](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html)를 참조하세요.
**참고**  
PuTTY를 사용하는 경우 비활성 상태로 인해 연결이 시간 초과되지 않도록 **연결** 설정 페이지에서 TCP keepalive를 활성화합니다.

1. Git, MariaDB 및 PostgreSQL을 설치합니다. 필요에 따라 설치를 확인합니다.

   ```
   $ sudo yum install git
   $ sudo dnf install mariadb105
   $ sudo dnf install postgresql15
   ```

1. 다음 명령을 실행하여 GitHub에서 데이터베이스 생성 스크립트를 다운로드합니다.

   ```
   git clone https://github.com/aws-samples/aws-database-migration-samples.git
   ```

1. 디렉터리를 `aws-database-migration-samples/mysql/sampledb/v1/`로 변경합니다.

1. 다음 명령을 실행합니다. 이전에 적어둔 소스 RDS 인스턴스의 엔드포인트를 제공합니다(예: `dms-mariadb.cdv5fbeyiy4e.us-east-1.rds.amazonaws.com`).

   ```
   mysql -h dms-mariadb.abcdefghij01.us-east-1.rds.amazonaws.com -P 3306 -u admin -p dms_sample < ~/aws-database-migration-samples/mysql/sampledb/v1/install-rds.sql
   ```

1. 데이터베이스 생성 스크립트를 실행합니다. 이 스크립트가 스키마를 생성하고 데이터를 채우는 데 최대 45분이 걸립니다. 스크립트에 표시되는 오류 및 경고는 무시해도 됩니다.