

# AWS Database Migration Service를 사용하여 EC2 데이터베이스를 Amazon RDS로 자동 마이그레이션
<a name="USER_DMS_migration"></a>

RDS 콘솔을 사용하여 EC2 데이터베이스를 RDS로 마이그레이션할 수 있습니다. RDS는 AWS Database Migration Service(AWS DMS)를 사용하여 소스 EC2 데이터베이스를 마이그레이션합니다. AWS DMS를 사용하면 관계형 데이터베이스를 AWS 클라우드로 마이그레이션할 수 있습니다. AWS Database Migration Service에 대한 자세한 내용은 *AWS Database Migration Service 사용 설명서*의 [AWS Database Migration Service이란 무엇인가요?](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)를 참조하세요.

마이그레이션을 시작하려면 데이터를 마이그레이션하기 위해 상응하는 RDS DB 인스턴스를 만들어야 합니다. 대상 데이터베이스를 만든 후 EC2 데이터베이스를 가져올 수 있습니다. 1TiB보다 작은 소스 데이터베이스의 경우 이 마이그레이션 작업은 데이터를 RDS로 마이그레이션하는 데 필요한 시간과 리소스를 줄입니다.

## 개요
<a name="USER_DMS_migration-overview"></a>

RDS 콘솔을 사용하면 EC2 데이터베이스를 상응하는 RDS 데이터베이스로 마이그레이션할 수 있습니다. 콘솔에서 마이그레이션을 활성화하려면 RDS 데이터베이스를 만들어야 합니다.

다음 데이터베이스 엔진의 EC2 데이터베이스를 마이그레이션할 수 있습니다.
+ MySQL
+ MariaDB
+ PostgreSQL

마이그레이션 프로세스는 다음과 같은 단계로 구성됩니다.
+ RDS에서 상응하는 데이터베이스를 만듭니다. 데이터베이스가 상응하려면 데이터베이스 엔진과 호환되는 엔진 버전이 동일해야 합니다. 또한 동일한 VPC에 있어야 합니다. 데이터베이스 만들기에 대한 지침은 [Amazon RDS DB 인스턴스 생성](USER_CreateDBInstance.md) 섹션을 참조하세요.
+ 데이터베이스의 복제 유형을 선택합니다.
  + **전체 로드 마이그레이션** - RDS가 전체 소스 데이터베이스를 대상 데이터베이스에 복사하며 필요한 경우 대상에 새 테이블을 만듭니다.
**참고**  
이 옵션을 사용하면 RDS 데이터베이스가 중단됩니다.
  + **전체 로드 및 변경 데이터 캡처(CDC) 마이그레이션** - 전체 로드 마이그레이션과 마찬가지로 이 옵션을 사용하면 RDS가 전체 소스 데이터베이스를 대상으로 복사합니다. 그러나 전체 로드 마이그레이션 후 RDS는 소스에서 캡처된 변경 사항을 대상 데이터베이스에 적용합니다. 변경 데이터 캡처는 데이터베이스 엔진의 기본 API를 사용하여 데이터베이스 로그에 대한 변경 사항을 수집합니다.
**참고**  
이 옵션을 사용하면 RDS 데이터베이스가 중단됩니다.
  + **변경 데이터 캡처(CDC)** - 마이그레이션 과정 내내 대상 데이터베이스를 계속 사용할 수 있도록 하려면 이 옵션을 사용합니다. RDS는 소스 데이터베이스의 진행 중인 변경 사항을 대상 데이터베이스로 마이그레이션합니다.
+ RDS는 마이그레이션을 용이하게 하는 데 필요한 네트워킹 리소스를 만듭니다. RDS가 필요한 리소스를 만들면 만들어진 리소스에 대해 사용자에게 알리고, 사용자는 데이터 전송을 시작할 수 있습니다.

  마이그레이션을 완료하는 데 필요한 시간은 복제 유형과 소스 데이터베이스 크기에 따라 다릅니다.

## 사전 조건
<a name="USER_DMS_migration-Prerequisites"></a>

### MySQL및 MariaDB
<a name="USER_DMS_migration-Prerequisites.MySQL"></a>

소스 데이터베이스로 MySQL 또는 MariaDB 데이터베이스를 사용하기 전에 다음 사전 조건을 충족하는지 확인해야 합니다. 이러한 사전 요구 사항은 AWS 관리형 소스에 적용됩니다.

Replication Admin 역할이 할당된 AWS DMS용 계정이 있어야 합니다. 역할에는 다음 권한이 있어야 합니다.
+ **REPLICATION CLIENT** - 이 권한은 변경 데이터 캡처(CDC) 작업에만 필요합니다. 즉, 전체 로드 전용 작업에서는 이 권한이 필요하지 않습니다.
+ **REPLICATION SLAVE** - 이 권한은 변경 데이터 캡처(CDC) 작업에만 필요합니다. 즉, 전체 로드 전용 작업에서는 이 권한이 필요하지 않습니다.

또한, AWS DMS 사용자에게는 복제를 위해 지정된 원본 테이블에 대해 SELECT 권한이 있어야 합니다.

MySQL별 사전 마이그레이션 평가를 사용하는 경우 다음 권한을 부여합니다.

```
grant select on mysql.user to <dms_user>;
grant select on mysql.db to <dms_user>;
grant select on mysql.tables_priv to <dms_user>;
grant select on mysql.role_edges to <dms_user>  #only for MySQL version 8.0.11 and higher
```

### PostgreSQL
<a name="USER_DMS_migration-Prerequisites.PostgreSQL"></a>

AWS 관리형 PostgreSQL 소스 데이터베이스에서 데이터를 마이그레이션하기 전에 다음을 수행합니다.
+ PostgreSQL DB 인스턴스에 필요한 최소 권한이 있는 AWS 사용자 계정을 AWS DMS의 PostgreSQL 소스 엔드포인트 사용자 계정으로 사용하는 것이 좋습니다. 마스터 계정을 사용하는 것은 권장되지 않습니다. 계정에는 `rds_superuser` 역할과 `rds_replication` 역할이 있어야 합니다. `rds_replication` 역할은 논리적 슬롯을 관리하고 논리적 슬롯을 사용하여 데이터를 스트리밍할 수 있는 권한을 부여합니다.

**참고**  
일부 AWS DMS 트랜잭션은 DMS 엔진에서 다시 사용하기 전까지 얼마 동안 유휴 상태입니다. PostgreSQL 버전 9.6 이상에서 `idle_in_transaction_session_timeout` 파라미터를 사용하면 유휴 트랜잭션이 시간 초과되어 실패하도록 할 수 있습니다.

## 제한 사항
<a name="USER_DMS_migration-Limitations"></a>

자동 마이그레이션 프로세스에는 다음 제한 사항이 적용됩니다.
+ 소스 데이터베이스 마이그레이션을 시작하려면 대상 데이터베이스 상태가 **사용 가능**이어야 합니다.
+ MySQL 소스 데이터베이스에서 마이그레이션할 때 RDS 계정에 복제 관리자 역할이 있어야 합니다. 또한 해당 역할에 적절한 권한이 적용되어 있어야 합니다.
+ EC2 인스턴스와 대상 데이터베이스는 동일한 VPC에 있어야 합니다.
+ **EC2 데이터베이스에서 데이터 마이그레이션** 작업을 사용할 때는 EC2 데이터베이스를 다음 대상 데이터베이스로 마이그레이션할 수 없습니다.
  + 클러스터의 멤버인 데이터베이스
  + Oracle, SQL Server 및 Db2 데이터베이스
  + MySQL 버전이 5.7 미만인 데이터베이스
  + PostgreSQL 버전이 10.4 미만인 데이터베이스
  + MariaDB 버전이 10.2 미만인 데이터베이스

# 동종 마이그레이션을 위한 IAM 리소스 만들기
<a name="USER_DMS_migration-IAM"></a>

RDS는 AWS DMS를 사용하여 데이터를 마이그레이션합니다. 데이터베이스에 액세스하고 데이터를 마이그레이션하기 위해 AWS DMS는 동종 데이터 마이그레이션을 위한 서버리스 환경을 생성합니다. 이 환경에서 AWS DMS는 VPC 피어링, 라우팅 테이블, 보안 그룹 및 기타 AWS 리소스에 대한 액세스가 필요합니다. 또한 AWS DMS는 Amazon CloudWatch에 각 데이터 마이그레이션에 대한 로그, 지표 및 진행 상황을 저장합니다. 데이터 마이그레이션 프로젝트를 생성하려면 AWS DMS는 이러한 서비스에 대한 액세스 권한이 필요합니다.

또한 AWS DMS에서는 소스 및 대상 연결에 대한 데이터베이스 연결을 인증하기 위해 사용자 자격 증명 세트를 나타내는 보안 암호에 대한 액세스 권한이 필요합니다.

**참고**  
**EC2 인스턴스에서 데이터 마이그레이션** 작업을 사용하면 RDS 콘솔을 사용하여 이러한 IAM 리소스를 생성할 수 있습니다. 콘솔에서 생성한 IAM 리소스를 사용하는 경우 이 단계를 건너뜁니다.

이 프로세스에는 다음과 같은 IAM 리소스가 필요합니다.

**Topics**
+ [동종 데이터 마이그레이션을 위한 IAM 정책 만들기](#USER_DMS_migration-IAM.iam-policy)
+ [동종 데이터 마이그레이션을 위한 IAM 역할 만들기](#USER_DMS_migration-IAM.iam-role)
+ [보안 암호 액세스 정책 및 역할 만들기](USER_DMS_migration-IAM.secret-iam-role-policy.md)
+ [AWS DMS에 대한 IAM 역할을 만들어 Amazon VPC 관리](USER_DMS_migration-IAM.dms-vpc-role.md)

## 동종 데이터 마이그레이션을 위한 IAM 정책 만들기
<a name="USER_DMS_migration-IAM.iam-policy"></a>

이 단계에서는 Amazon EC2 및 CloudWatch 리소스에 대한 액세스 권한을 AWS DMS에 부여하는 IAM 정책을 생성합니다. 그런 다음, IAM 역할을 생성하고 이 정책을 연결합니다.

**동종 데이터 마이그레이션을 위한 IAM 정책을 만드는 방법**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **정책**을 선택합니다.

1. **정책 생성**을 선택합니다.

1. **정책 생성** 페이지에서 **JSON** 탭을 선택합니다.

1. 다음 JSON을 편집기에 붙여넣습니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:DescribeRouteTables",
                   "ec2:DescribeSecurityGroups",
                   "ec2:DescribeVpcPeeringConnections",
                   "ec2:DescribeVpcs",
                   "ec2:DescribePrefixLists",
                   "logs:DescribeLogGroups"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "servicequotas:GetServiceQuota"
               ],
               "Resource": "arn:aws:servicequotas:*:*:vpc/L-0EA8095F"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogGroup",
                   "logs:DescribeLogStreams"
               ],
               "Resource": "arn:aws:logs:*:*:log-group:dms-data-migration-*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogStream",
                   "logs:PutLogEvents"
               ],
               "Resource": "arn:aws:logs:*:*:log-group:dms-data-migration-*:log-stream:dms-data-migration-*"
           },
           {
               "Effect": "Allow",
               "Action": "cloudwatch:PutMetricData",
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateRoute",
                   "ec2:DeleteRoute"
               ],
               "Resource": "arn:aws:ec2:*:*:route-table/*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateTags"
               ],
               "Resource": [
                   "arn:aws:ec2:*:*:security-group/*",
                   "arn:aws:ec2:*:*:security-group-rule/*",
                   "arn:aws:ec2:*:*:route-table/*",
                   "arn:aws:ec2:*:*:vpc-peering-connection/*",
                   "arn:aws:ec2:*:*:vpc/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:AuthorizeSecurityGroupEgress",
                   "ec2:AuthorizeSecurityGroupIngress"
               ],
               "Resource": "arn:aws:ec2:*:*:security-group-rule/*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:AuthorizeSecurityGroupEgress",
                   "ec2:AuthorizeSecurityGroupIngress",
                   "ec2:RevokeSecurityGroupEgress",
                   "ec2:RevokeSecurityGroupIngress"
               ],
               "Resource": "arn:aws:ec2:*:*:security-group/*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:AcceptVpcPeeringConnection",
                   "ec2:ModifyVpcPeeringConnectionOptions"
               ],
               "Resource": "arn:aws:ec2:*:*:vpc-peering-connection/*"
           },
           {
               "Effect": "Allow",
               "Action": "ec2:AcceptVpcPeeringConnection",
               "Resource": "arn:aws:ec2:*:*:vpc/*"
           }
       ]
   }
   ```

------

1. **다음: 태그**와 **다음: 검토**를 선택합니다.

1. **이름\$1**의 경우, **HomogeneousDataMigrationsPolicy**를 입력한 후 **정책 생성을** 선택합니다.

## 동종 데이터 마이그레이션을 위한 IAM 역할 만들기
<a name="USER_DMS_migration-IAM.iam-role"></a>

이 단계에서는 AWS Secrets Manager, Amazon EC2 및 CloudWatch에 대한 액세스 권한을 제공하는 IAM 역할을 만듭니다.

**데이터 마이그레이션을 위한 IAM 역할을 만드는 방법**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

1. 탐색 창에서 **역할**을 선택합니다.

1. **역할 생성**을 선택합니다.

1. **신뢰할 수 있는 엔터티 선택** 페이지의 **신뢰할 수 있는 엔터티 유형** 아래에서 **AWS 서비스**를 선택합니다. **기타 AWS 서비스 사용 사례**에서 **DMS**를 선택합니다.

1. **DMS** 확인란을 선택하고 **다음**을 선택합니다.

1. **권한 추가** 페이지에서 이전에 만든 **HomogeneousDataMigrationsPolicy**를 선택합니다. **다음**을 선택합니다.

1. **이름 지정, 검토 및 생성** 페이지에서 **역할 이름**에 **HomogeneousDataMigrationsRole**을 입력하고 **역할 생성**을 선택합니다.

1. **역할** 페이지에서 **역할 이름**으로 **HomogeneousDataMigrationsRole**을 입력합니다. **HomogeneousDataMigrationsRole**을 선택합니다.

1. **HomogeneousDataMigrationsRole** 페이지에서 **신뢰 관계** 탭을 선택합니다. **신뢰 정책 편집**을 선택합니다.

1. **신뢰 정책 편집** 페이지에서 기존 텍스트를 대체하여 다음 JSON을 편집기에 붙여넣습니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "dms-data-migrations.amazonaws.com",
                       "dms.your_region.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

   이전 예제에서 *your\$1region*을 AWS 리전의 이름으로 바꾸십시오.

   위의 리소스 기반 정책은 고객 관리형 **HomogeneousDataMigrationsPolicy** 정책에 따라 작업을 수행할 수 있는 권한을 AWS DMS 서비스 위탁자에게 부여합니다.

1. **정책 업데이트**를 선택합니다.

# 보안 암호 액세스 정책 및 역할 만들기
<a name="USER_DMS_migration-IAM.secret-iam-role-policy"></a>

아래 프로시저에 따라 DMS가 소스 및 대상 데이터베이스의 사용자 자격 증명에 액세스할 수 있도록 허용하는 보안 암호 액세스 정책 및 역할을 만듭니다.

**Amazon RDS가 적절한 보안 암호에 액세스하기 위해 AWS Secrets Manager에 액세스하도록 허용하는 보안 암호 액세스 정책 및 역할을 만드는 방법**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 AWS Identity and Access Management(IAM) 콘솔을 엽니다.

1. **정책**을 선택한 후 **정책 생성**을 선택합니다.

1. **JSON**을 선택하고 다음 정책을 입력하여 보안 암호에 대한 액세스 및 암호 해독을 활성화합니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "secretsmanager:GetSecretValue",
               "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:SecretName-ABCDEF"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
                   "kms:DescribeKey"
               ],
               "Resource": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
           }
       ]
   }
   ```

------

   여기서 `secret_arn`은 보안 암호의 ARN(상황에 따라 `SecretsManagerSecretId`에서 가져올 수 있음)이고, `kms_key_arn`은 다음 예시와 같이 보안 암호를 암호화하는 데 사용하는 AWS KMS 키의 ARN입니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "secretsmanager:GetSecretValue",
               "Resource": "arn:aws:secretsmanager:us-east-2:123456789012:secret:MySQLTestSecret-qeHamH"
           },
           {
                "Effect": "Allow",
                "Action": [
                           "kms:Decrypt",
                           "kms:DescribeKey"
                         ],
                "Resource": "arn:aws:kms:us-east-2:123456789012:key/761138dc-0542-4e58-947f-4a3a8458d0fd"
           }
        ]
   }
   ```

------
**참고**  
AWS Secrets Manager에서 생성한 기본 암호화 키를 사용하는 경우, `kms_key_arn`에 대한 AWS KMS 권한을 지정하지 않아도 됩니다.  
정책에서 두 보안 암호에 대한 액세스를 제공하도록 하려면 다른 *secret\$1arn*에 대해 추가 JSON 리소스 객체를 지정하면 됩니다.

1. 기억하기 쉬운 이름과 설명(선택 사항)이 있는 정책을 검토하고 생성합니다.

1. **역할**을 선택한 다음, **역할 생성**을 선택합니다.

1. 신뢰할 수 있는 엔터티 유형으로서 **AWS 서비스**를 선택합니다.

1. 서비스 목록에서 **DMS**를 신뢰할 수 있는 서비스로 선택하고 **다음: 권한**을 선택합니다.

1. 4단계에서 생성한 정책을 찾아 연결한 다음, 계속 진행하여 태그를 추가하고 역할을 검토합니다. 이때 해당 역할의 신뢰 관계를 편집하여 Amazon RDS 리전 서비스 위탁자를 신뢰할 수 있는 엔터티로 사용합니다. 이 위탁자의 형식은 다음과 같습니다.

   ```
   dms.region-name.amazonaws.com
   ```

   여기서 *`region-name`*은 리전의 이름입니다(예: `us-east-1`). 따라서 이 리전의 Amazon RDS 리전 서비스 위탁자는 다음과 같습니다.

   ```
   dms.us-east-1.amazonaws.com
   dms-data-migrations.amazonaws.com
   ```

# AWS DMS에 대한 IAM 역할을 만들어 Amazon VPC 관리
<a name="USER_DMS_migration-IAM.dms-vpc-role"></a>

리소스의 VPC 설정을 관리하려면 AWS DMS에 대한 IAM 역할을 만들어야 합니다. 마이그레이션에 성공하려면 이 역할을 사용할 수 있어야 합니다.

**데이터베이스 마이그레이션을 위해 `dms-vpc-role` 만들기**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 에서 IAM 콘솔을 엽니다.

1. 콘솔의 탐색 창에서 **역할**을 선택한 후 **역할 생성**을 선택합니다.

1. **신뢰할 수 있는 엔터티 선택** 옵션에서 **AWS 서비스** 옵션을 선택합니다.

   **사용 사례**에서 **DMS**를 선택합니다.

1. **권한 추가** 단계에서 `AmazonDMSVPCManagementRole`을 선택하고 **다음**을 선택합니다.

1. **이름 지정, 검토 및 생성** 페이지에서 **역할 이름**을 `dms-vpc-role`로 설정하고 **역할 생성**을 선택합니다.

이렇게 하면 DMS가 마이그레이션을 위한 VPC 설정을 관리하는 데 사용할 역할이 만들어집니다.

# EC2 데이터베이스에 대한 데이터 마이그레이션 설정
<a name="USER_DMS_migration-SetUp"></a>

EC2 소스 데이터베이스에서 데이터 마이그레이션을 시작하려면 상승하는 RDS 데이터베이스를 만들어야 합니다. 데이터베이스 만들기에 대한 지침은 [Amazon RDS DB 인스턴스 생성](USER_CreateDBInstance.md) 섹션을 참조하세요.

대상 데이터베이스를 만든 후 다음 단계에 따라 데이터 마이그레이션을 설정합니다.

**데이터 마이그레이션 프로젝트 설정**

1. RDS 콘솔의 데이터베이스 페이지에서 대상 **데이터베이스를** 선택합니다.

1. **작업** 드롭다운을 선택하고 **EC2 데이터베이스에서 데이터 마이그레이션** 옵션을 선택합니다. 지원되는 대상 데이터베이스는 [제한 사항](USER_DMS_migration.md#USER_DMS_migration-Limitations) 섹션을 참조하세요.

1. **소스 EC2 데이터베이스 선택** 섹션에서 다음을 수행합니다.

   1. **엔진 유형**을 확인하고 소스 데이터베이스와 동일한지 확인합니다.

      또한 엔진 버전이 호환되는지 확인합니다.

   1. **EC2 인스턴스**에서 소스 데이터베이스가 있는 EC2 인스턴스를 선택합니다.

   1. **포트**에 소스 데이터베이스가 트래픽을 허용하는 포트를 입력합니다.

   1. 기존 보안 암호가 없는 경우 **보안 암호**에서 **새 보안 암호를 만들고 사용하기**를 선택합니다. 소스 데이터베이스의 **사용자 이름**과 **암호**를 입력합니다. 또한 보안 암호를 암호화할 KMS 키를 선택합니다.

      기존 보안 암호가 있는 경우 **기존 보안 암호 사용**을 선택한 후 드롭다운 메뉴에서 보안 암호를 선택합니다.

   1. **보안 암호의 IAM 역할**의 경우 기존 IAM 역할이 있으면 **기존 IAM 역할 사용**을 선택하고 드롭다운에서 이전 단계의 보안 암호 ID에 액세스할 수 있는 IAM 역할을 선택합니다.

      기존 IAM 역할이 없는 경우 **새 IAM 역할을 만들고 사용하기**를 선택합니다. **IAM 역할 이름에 새 역할의 이름을 입력합니다. 아래 링크에서 이 역할과 연결된 권한을 볼 수 있습니다.**

1. **대상 RDS 데이터베이스 보기** 섹션에서 다음을 수행합니다.

   1. 섹션 상단에서 대상 데이터베이스의 설정을 확인합니다.

   1. 대상 데이터베이스 자격 증명을 보유한 기존 보안 암호가 없는 경우 **보안 암호**에서 **새 보안 암호를 만들고 사용하기**를 선택합니다.

      기존 보안 암호가 있는 경우 드롭다운에서 보안 암호를 선택합니다.

   1. **보안 암호의 IAM 역할**의 경우 이전 단계에서 보안 암호에 액세스할 수 있는 IAM 역할을 선택합니다. 기존 IAM 역할이 없는 경우 새 IAM 역할을 만들 수도 있습니다.

      드롭다운에 IAM 역할이 채워지지 않으면 **IAM 역할 ARN**을 `arn:aws:iam:account_id:role/roleName` 형식으로 지정합니다.

1. **데이터 마이그레이션 구성** 섹션에서 다음을 수행합니다.

   1. **전체 로드**, **전체 로드 및 변경 데이터 캡처(CDC)** 또는 **변경 데이터 캡처(CDC)** 중에서 선택하여 데이터 마이그레이션 유형을 선택합니다. 이러한 옵션에 대한 자세한 내용은 [개요](USER_DMS_migration.md#USER_DMS_migration-overview) 섹션을 참조하세요.

      마이그레이션이 시작된 후에는 마이그레이션 유형을 수정할 수 없습니다.

   1. **데이터 마이그레이션의 IAM 역할**의 경우 기존 IAM 역할이 있는 경우 **기존 IAM 역할 사용**을 선택하고 드롭다운에서 마이그레이션에 필요한 리소스를 만들 수 있는 권한을 DMS에 부여하는 IAM 역할을 선택합니다. 기존 IAM 역할이 없는 경우 **새 IAM 역할을 만들고 사용하기**를 선택합니다.

1. **마이그레이션 설정 보기** 탭에 데이터 마이그레이션을 성공적으로 설정하는 데 필요한 설정이 표시되는지 확인합니다.

1. **마이그레이션**을 선택하여 마이그레이션 설정을 완료합니다.

이 단계를 완료한 후 콘솔의 진행률 배너에서 **세부 정보 보기**를 선택하여 데이터 마이그레이션을 위해 설정되고 있는 리소스를 확인할 수 있습니다. 필요한 리소스가 설정되면 마이그레이션이 자동으로 시작됩니다. 만드는 경우 

여러 데이터베이스를 대상 데이터베이스로 마이그레이션하려면 새 EC2 데이터베이스에 대한 세부 정보를 사용하여 이 프로세스를 다시 시작합니다.

# 데이터 마이그레이션 관리
<a name="USER_DMS_migration.Managing"></a>

RDS 콘솔에서 **EC2 데이터베이스에서 데이터 마이그레이션** 작업을 사용하면 RDS가 마이그레이션을 자동으로 시작합니다.

AWS DMS 콘솔을 사용하여 마이그레이션 리소스를 만든 경우 마이그레이션 프로세스를 시작할 수 있습니다.

## 데이터 마이그레이션 시작
<a name="USER_DMS_migration.Managing.Start"></a>

다음 단계에 따라 데이터 마이그레이션을 시작합니다.

**데이터 마이그레이션 시작**

1. RDS 콘솔의 **데이터베이스** 페이지에서 대상 데이터베이스를 선택합니다.

1. 데이터베이스 세부 정보 페이지에서 **데이터 마이그레이션** 탭을 선택합니다.

1. **데이터 마이그레이션** 탭에서 **연결된 데이터 마이그레이션**에는 사용 가능한 데이터 마이그레이션이 나열됩니다.

   RDS 콘솔을 사용하여 설정된 마이그레이션은 필요한 리소스가 설정되면 자동으로 시작됩니다.

   DMS 콘솔을 사용하여 설정된 마이그레이션은 **준비 완료**로 설정됩니다.

   이러한 마이그레이션을 시작하려면 **작업** 드롭다운을 선택하고 **시작**을 선택합니다.

1. 그러면 EC2 데이터베이스의 데이터 마이그레이션이 시작됩니다.

## 데이터 마이그레이션 중지
<a name="USER_DMS_migration.Managing.Stop"></a>

복제 유형이 전체 로드인 데이터 마이그레이션의 경우 마이그레이션을 중지하면 프로세스가 중지되고 재개할 수 없습니다. 중지하고 나면 마이그레이션을 다시 시작해야 합니다.

복제 유형이 변경 데이터 캡처(CDC) 또는 전체 로드 및 CDC로 설정된 마이그레이션의 경우 연속 복제 프로세스를 중지하고 나중에 프로세스를 재개할 수 있습니다.

**데이터 마이그레이션 중지**

1. RDS 콘솔의 **데이터베이스** 페이지에서 대상 데이터베이스를 선택합니다.

1. 데이터베이스 세부 정보 페이지에서 **데이터 마이그레이션** 탭을 선택합니다.

1. **데이터 마이그레이션** 탭에서 **연결된 데이터 마이그레이션**에는 진행 중인 데이터 마이그레이션이 나열됩니다.

   마이그레이션을 중지하려면 데이터 마이그레이션을 선택하고 **작업** 드롭다운에서 **중지**를 선택합니다.

1. 그러면 EC2 데이터베이스의 데이터 마이그레이션이 중지됩니다.

## 데이터 마이그레이션 재개
<a name="USER_DMS_migration.Managing.Resuming"></a>

복제 유형이 전체 로드 및 변경 데이터 캡처(CDC) 또는 변경 데이터 캡처(CDC) 마이그레이션인 데이터 마이그레이션의 경우 마지막 중지 지점에서 CDC 프로세스를 재개할 수 있습니다.

**데이터 마이그레이션 재개**

1. RDS 콘솔의 **데이터베이스** 페이지에서 대상 데이터베이스를 선택합니다.

1. 데이터베이스 세부 정보 페이지에서 **데이터 마이그레이션** 탭을 선택합니다.

1. **데이터 마이그레이션** 탭에서 **연결된 데이터 마이그레이션**에는 중지된 데이터 마이그레이션이 나열됩니다.

   마이그레이션을 재개하려면 데이터 마이그레이션을 선택하고 **작업** 드롭다운에서 **처리 재개**를 선택합니다.

1. 그러면 EC2 데이터베이스의 데이터 마이그레이션이 재개됩니다.

## 데이터 마이그레이션 삭제
<a name="USER_DMS_migration.Managing.Deleting"></a>

연결된 데이터 마이그레이션을 삭제하려면 다음 지침을 사용합니다.

**데이터 마이그레이션 삭제**

1. RDS 콘솔의 **데이터베이스** 페이지에서 대상 데이터베이스를 선택합니다.

1. 데이터베이스 세부 정보 페이지에서 **데이터 마이그레이션** 탭을 선택합니다.

1. 마이그레이션을 삭제하려면 데이터 마이그레이션을 선택하고 **작업** 드롭다운에서 **삭제**를 선택합니다.

1. 이렇게 하면 데이터 마이그레이션이 삭제됩니다.

진행 중이던 데이터 마이그레이션을 삭제해도 대상 데이터베이스에 이미 로드된 데이터는 영향을 받지 않습니다.

## 데이터 마이그레이션 다시 시작
<a name="USER_DMS_migration.Managing.Restarting"></a>

CDC 시작 지점에서 연결된 데이터 마이그레이션을 다시 시작하려면 다음 지침을 사용합니다.

**데이터 마이그레이션 다시 시작**

1. RDS 콘솔의 **데이터베이스** 페이지에서 대상 데이터베이스를 선택합니다.

1. 데이터베이스 세부 정보 페이지에서 **데이터 마이그레이션** 탭을 선택합니다.

1. 마이그레이션을 다시 시작하려면 데이터 마이그레이션을 선택하고 **작업** 드롭다운에서 **다시 시작**을 선택합니다.

1. 그러면 CDC 시작 지점에서 데이터 마이그레이션이 다시 시작됩니다.

진행 중이던 데이터 마이그레이션을 다시 시작해도 대상 데이터베이스에 이미 로드된 데이터는 영향을 받지 않습니다.

# 데이터 마이그레이션 모니터링
<a name="USER_DMS_migration.Monitoring"></a>

데이터 마이그레이션을 시작한 후 상태 및 진행 상황을 모니터링할 수 있습니다. 대규모 데이터집합의 데이터 마이그레이션은 완료하는 데 몇 시간이 걸립니다. 데이터 마이그레이션의 안정성, 가용성 및 고성능을 유지하려면 데이터 마이그레이션 진행 상태를 정기적으로 모니터링하십시오.

**데이터 마이그레이션의 상태 및 진행 상황을 확인하려면**

1. RDS 콘솔의 **데이터베이스** 페이지에서 대상 데이터베이스를 선택합니다.

1. 데이터베이스 세부 정보 페이지에서 **데이터 마이그레이션** 탭을 선택합니다.

1. **연결된 데이터 마이그레이션** 섹션에는 데이터 마이그레이션이 나열됩니다. **상태** 열을 확인합니다.

1. 실행 중인 데이터 마이그레이션의 경우, **마이그레이션 진행 상황** 열에 마이그레이션된 데이터의 비율(%)이 표시됩니다.

1. CloudWatch에서 프로세스를 모니터링하려면 **CloudWatch** 열에 있는 링크를 사용합니다.

## 마이그레이션 상태
<a name="USER_DMS_migration.Monitoring.status"></a>

실행하는 각 데이터 마이그레이션마다 RDS 콘솔에 **상태**가 표시됩니다. 다음 목록에 상태가 포함되어 있습니다.
+ `Ready`: 데이터 마이그레이션을 시작할 준비가 되었습니다.
+ `Starting`: RDS가 데이터 마이그레이션을 위한 서버리스 환경을 만드는 중입니다.
+ `Load running`: RDS가 전체 로드 마이그레이션을 수행하는 중입니다.
+ `Load complete, replication ongoing`: RDS가 전체 로드를 완료했으며 현재 진행 중인 변경 사항을 복제합니다. 이 상태는 전체 로드 및 CDC 유형 마이그레이션에만 적용됩니다.
+ `Replication ongoing`: RDS가 진행 중인 변경 사항을 복제하고 있습니다. 이 상태는 CDC 유형 마이그레이션에만 적용됩니다.
+ `Stopping`: RDS가 데이터 마이그레이션을 중지하고 있습니다. 이 상태는 **작업** 메뉴에서 데이터 마이그레이션을 중지하도록 선택할 때 적용됩니다.
+ `Stopped`: RDS가 데이터 마이그레이션을 중지했습니다.
+ `Failed`: 데이터 마이그레이션이 실패했습니다. 자세한 내용은 로그 파일을 참조하십시오.
+ `Restarting`: 데이터 마이그레이션이 CDC 시작점에서 진행 중인 데이터 복제를 다시 시작했습니다.