

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# の開始方法 AWS Database Migration Service
<a name="CHAP_GettingStarted"></a>

次のチュートリアルでは、 AWS Database Migration Service () を使用してデータベース移行を実行する方法について説明しますAWS DMS。

データベース移行を実行するには、次の手順を実行します：

1. 「」の手順に従って AWS アカウントを設定します[のセットアップAWS Database Migration Service](CHAP_GettingStarted.SettingUp.md)。

1. サンプル データベースと Amazon EC2 クライアントを作成して、ソース データベースを作成し、レプリケーションをテストします。また、Amazon 仮想プライベートクラウド (Amazon VPC) サービスに基づいて Virtual Private Cloud (VPC) を作成し、チュートリアルのリソースコンテナとします。これらのリソースを作成するには、[セットアップの前提条件を満たす AWS Database Migration Service](CHAP_GettingStarted.Prerequisites.md) のステップに従います。

1. [[sample database creation script]](https://github.com/aws-samples/aws-database-migration-samples) (サンプルデータベース作成スクリプト) を使用して、ソースデータベースに代入します。

1. DMS Schema Conversion を使用して、ソースデータベースからターゲットデータベースにスキーマを変換します。「[DMS Schema Conversion の開始方法](getting-started.md)」のステップを実行してください。または、 legacy AWS Schema Conversion Tool (AWS SCT) を使用している場合は、「」の手順に従います[スキーマの移行](CHAP_GettingStarted.SCT.md)。

1. 移行のすべてのプロセスを実行するレプリケーション インスタンスを作成します。これおよび次のタスクを実行するには、[レプリケーション](CHAP_GettingStarted.Replication.md) の手順を実行します。

1. ソースとターゲットのエンドポイントを指定します。エンドポイントの作成については、「[ソースおよびターゲットエンドポイントの作成](CHAP_Endpoints.Creating.md)」をご参照ください。

1. 使用するテーブルとレプリケーションプロセスを定義するタスクを作成し、レプリケーションをスタートします。データベース移行タスクの作成については、「[[Creating a task] (タスクの作成)](CHAP_Tasks.Creating.md)」をご参照ください。

1. ターゲットデータベースでクエリを実行して、レプリケーションが機能していることを確認します。

## の使用の詳細については、こちらを参照してください。 AWS Database Migration Service
<a name="CHAP_GettingStarted.References"></a>

このガイドの後半では、 AWS DMS を使用して、最も広く使用されている商用データベースとオープンソースデータベースとの間でデータを移行する方法について説明します。

また、データベース移行プロジェクトの準備と実行時に、次のリソースを確認することをお勧めします：
+ [AWS DMS Step-by-Step移行ガイド](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html) – このガイドでは、データの移行プロセスを説明するstep-by-stepのチュートリアルを提供します AWS。
+ [AWS DMS API リファレンス](https://docs.aws.amazon.com/dms/latest/APIReference/Welcome.html) – このリファレンスでは、 のすべての API オペレーション AWS Database Migration Service について詳しく説明します。
+ [AWS CLI for AWS DMS](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html) – このリファレンスでは、 で AWS Command Line Interface (AWS CLI) を使用する方法について説明します AWS DMS。

# のセットアップAWS Database Migration Service
<a name="CHAP_GettingStarted.SettingUp"></a>

## にサインアップするAWS アカウント
<a name="sign-up-for-aws"></a>

がない場合はAWS アカウント、次の手順を実行して作成します。

**にサインアップするにはAWS アカウント**

1. [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup) を開きます。

1. オンラインの手順に従います。

   サインアップ手順の一環として、電話またはテキストメッセージを受け取り、電話キーパッドで検証コードを入力します。

   にサインアップするとAWS アカウント、 *AWS アカウントのルートユーザー* が作成されます。ルートユーザーには、アカウントのすべての AWS のサービス とリソースへのアクセス権があります。セキュリティベストプラクティスとして、ユーザーに管理アクセス権を割り当て、[ルートユーザーアクセスが必要なタスク](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)の実行にはルートユーザーのみを使用するようにしてください。

AWSサインアッププロセスが完了すると、 から確認メールが送信されます。[https://aws.amazon.com/](https://aws.amazon.com/) の **[マイアカウント]** をクリックして、いつでもアカウントの現在のアクティビティを表示し、アカウントを管理することができます。

## 管理アクセスを持つユーザーを作成する
<a name="create-an-admin"></a>

にサインアップしたらAWS アカウント、日常的なタスクにルートユーザーを使用しないようにAWS アカウントのルートユーザー、 を保護しAWS IAM アイデンティティセンター、 を有効にして管理ユーザーを作成します。

**を保護するAWS アカウントのルートユーザー**

1.  **ルートユーザー**を選択し、AWS アカウントE メールアドレスを入力して、アカウント所有者[AWS マネジメントコンソール](https://console.aws.amazon.com/)として にサインインします。次のページでパスワードを入力します。

   ルートユーザーを使用してサインインする方法については、「*AWS サインイン ユーザーガイド*」の「[ルートユーザーとしてサインインする](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)」を参照してください。

1. ルートユーザーの多要素認証 (MFA) を有効にします。

   手順については、*IAM* [ユーザーガイドのAWS アカウント「ルートユーザー (コンソール) の仮想 MFA デバイス](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)を有効にする」を参照してください。

**管理アクセスを持つユーザーを作成する**

1. IAM アイデンティティセンターを有効にします。

   手順については、「AWS IAM アイデンティティセンター ユーザーガイド」の「[AWS IAM アイデンティティセンター の有効化](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)」を参照してください。

1. IAM アイデンティティセンターで、ユーザーに管理アクセスを付与します。

   を ID ソースIAM アイデンティティセンターディレクトリとして使用する方法のチュートリアルについては、*AWS IAM アイデンティティセンター「 ユーザーガイド*」の[「デフォルトを使用してユーザーアクセスを設定するIAM アイデンティティセンターディレクトリ](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html)」を参照してください。

**管理アクセス権を持つユーザーとしてサインインする**
+ IAM アイデンティティセンターのユーザーとしてサインインするには、IAM アイデンティティセンターのユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。

  IAM Identity Center ユーザーを使用してサインインする方法については、*AWS サインイン「 ユーザーガイド*[」のAWS「 アクセスポータルにサインイン](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)する」を参照してください。

**追加のユーザーにアクセス権を割り当てる**

1. IAM アイデンティティセンターで、最小特権のアクセス許可を適用するというベストプラクティスに従ったアクセス許可セットを作成します。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)」を参照してください。

1. グループにユーザーを割り当て、そのグループにシングルサインオンアクセス権を割り当てます。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[グループの追加](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html)」を参照してください。

# セットアップの前提条件を満たす AWS Database Migration Service
<a name="CHAP_GettingStarted.Prerequisites"></a>

このセクションでは、ソースデータベースとターゲットデータベースの設定など AWS DMS、 の前提条件タスクについて説明します。これらのタスクの一環として、Amazon VPC サービスに基づいて Virtual Private Cloud (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 を作成します。 AWS リソースを使用する場合、VPC を使用することがベストプラクティスです。これにより、データベース、Amazon EC2 インスタンス、セキュリティグループなどが論理的に整理され、安全になります。

チュートリアルリソースに VPC を使用すると、チュートリアルの終了時に使用するすべてのリソースも削除するようにしてください。VPC に含まれるすべてのリソースを削除してからVPC を削除できます。

**で使用する VPC を作成するには AWS DMS**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) で Amazon VPC コンソールを開きます。

1. ナビゲーションペインで、**[VPC ダッシュボード]** を選択して、**[VPC の作成]** をクリックします。

1. **[VPC の作成]** ページで、次のオプションを入力します。
   + **作成するリソース**: **VPC など**
   + **名前タグの自動生成**: [**自動生成**] を選択して、**DMSVPC** と入力する
   + **IPv4 ブロック**: **10.0.1.0/24**
   + **IPv6 CIDR ブロック**: **IPv6 CIDR ブロックなし**
   + **テナンシー**: **デフォルト**
   + **アベイラビリティーゾーンの数**: 2
   + **パブリックサブネットの数**: 2
   + **プライベートサブネットの数**: 2
   + **NAT ゲートウェイ (\$1)**: **なし**
   + **VPC エンドポイント**: **なし**

   **[Create VPC]** (VPC作成) を選択します。

1. ナビゲーションペインで **VPC** を選択します。**DMSVPC** の VPC ID を書き留めます。

1. ナビゲーションペインで**[Security Groups]** (セキュリティグループ) を選択します。

1. **DMSVPC**について書き留めた ID と一致する**VPC ID**の**[default]** (デフォルト) という名前のグループを選択します。

1. **[Inbound rules]** (インバウンドルール) タブを選択し、**[Edit inbound rules]** (インバウンドルールの編集) を選択します。

1. **[Add rule]** (ルール追加) を選択します。**[MySQL/Aurora]** のルールタイプを追加して、**[ソース]** には **Anywhere-IPv4** を選択します。

1. **[Add rule]** (ルールの追加) を選択しなおします。**[PostgreSQL]** のルールタイプを追加して、**[ソース]** には **Anywhere-IPv4** を選択します。

1. **[Save Rules]** (ルールの保存) を選択します。

## Amazon RDS パラメータグループの作成
<a name="CHAP_GettingStarted.Prerequisites.params"></a>

のソースデータベースとターゲットデータベースの設定を指定するには AWS DMS、Amazon RDS パラメータグループを使用します。データベース間の初期および継続的なレプリケーションを許可するには、次の構成を必ず行ってください：
+ ソースデータベースのバイナリログ。これにより、 AWS DMS はレプリケートする必要がある増分更新を決定できます。
+ ターゲットデータベースのレプリケーションロール。これにより、 は最初のデータ転送中に外部キーの制約 AWS DMS を無視します。この設定では、 はデータを順序どおりに移行 AWS DMS できます。

**で使用するパラメータグループを作成するには AWS DMS**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで **[Parameter groups]** (パラメータグループ) を選択します。

1. **[Parameter groups]** (パラメータグループ) ページで**[Create parameter group]** (パラメータグループの作成) を選択します。

1. **[Create parameter group]** (パラメータグループ作成) ページで、次の設定を入力します：
   + **パラメータグループファミリー**: **mariadb10.6**
   + **[Group name]** (グループ名): **dms-mariadb-parameters**
   + **[Description]** (説明): **Group for specifying binary log settings for replication**

   **[作成]** を選択します。

1. **[パラメータグループ]** ページで、**[dms-mariadb-parameters]** を選択して、**[dms-mariadb-parameters]** ページで、**[編集]** をクリックします。

1. 次のパラメータを次の値に設定します：
   + **binlog\$1checksum**:**[NONE]** (無し)
   + **binlog\$1format**:**[ROW]** (行)

   **[Save changes]** (変更を保存) を選択します。

1. **[Parameter groups]** (パラメータグループ) ページで**[Create parameter group]** (パラメータグループの作成) を選択します。

1. **[Create parameter group]** (パラメータグループ作成) ページで、次の設定を入力します：
   + **パラメータグループファミリー**: **postgres16**
   + **[Group name]** (グループ名): **dms-postgresql-parameters**
   + **[Description]** (説明): **Group for specifying role setting for replication**

   **[作成]** を選択します。

1. **[Parameter groups]** (パラメータグループ) ページで **dms-postgresql-parameters** を選択します。

1. **[dms-postgresql-parameters]** ページで、**[編集]** をクリックして、**[session\$1replication\$1role parameter]** を **[レプリカ]** と設定します。**session\$1replication\$1role** のパラメータが、パラメータの最初のページにないことに注意します。このパラメータを見つけるには、ページ割りコントロールまたは検索フィールドを使用します。

1. **[Save changes]** (変更の保存) をクリックします。

## ソース Amazon RDS データベースを作成する
<a name="CHAP_GettingStarted.Prerequisites.sdatabase"></a>

次の手順に従って、ソース Amazon RDS データベースを作成します。

**ソースの Amazon RDS for MariaDB データベースを作成するには**

1. Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. **[Dashboard]** (ダッシュボード) ページで**[Database]** (データベース) セクションの**[Create Database]** (データベースの作成) を選択します。ページ上部の **[MySQL と PostgreSQL 用の新しい Amazon RDS マルチ AZ 配置オプションを試す]** セクションにある **[データベースの作成]** はクリックしないでください。

1. **[Create Database]** (データベースの作成) ページで、次の詳細を設定します：
   + **データベース作成方法を選択**: **[標準作成]** を選択する。
   + **エンジンのオプション**: **[エンジンタイプ]** では、**[MariaDB]** を選択する。**[バージョン]** は、**[MariaDB 10.6.14]** が選択されたままにする。
   + **[Templates]** (テンプレート): **[Dev/Test]** (開発/テスト) を選択します。
   + **[Settings]** (設定)：
     + **[DB instance identifier]** (DB インスタンス識別子)： **dms-mariadb** を入力します。
     + **[認証情報の設定]** セクションで、次を入力する。
       + **[Master username]** (マスター ユーザーネーム): **admin** のままにしておきます。
       + ** AWS Secrets Manager のマスター認証情報の管理**はオフのままにします。
       + **[Auto generate a password]** (パスワードの自動生成): 選択を解除したままにします。
       + **[Master password]** (マスターパスワード): **changeit** と入力します。
       + **[Confirm password]** (パスワードを確認): 再び **changeit** と入力します。
   + **インスタンスの設定**: 
     + **[DB instance class]** (DB インスタンスクラス): **[Standard classes]** (標準クラス) を選んだままにします。
     + **[DB instance class]** (DB インスタンスクラス) で**db.m5.large**を選択します。
   + **[Storage]** (ストレージ)：
     + **[Enable storage autoscaling]** (ストレージのオートスケーリングの有効化) ボックスをクリアします。
     + 残りの設定はそのままにします。
   + **アベイラビリティーおよび耐久性**: **[スタンバイインスタンスを作成しない]** が選択されたままにする。
   + **接続**:
     + **コンピューティングリソース** **[EC2 コンピューティングリソースに接続しない]** のままにする。
     + **ネットワークタイプ**: **[IPv4]** が選択されたままにする。
     + **仮想プライベートクラウド**: **DMSVPC-vpc**
     + **[Public access]** (公開アクセス)：**[Yes]** (はい)。 AWS Schema Conversion Toolを使用するには、公開アクセスを有効にする必要があります。
     + **[Availability zone]** (アベイラビリティーゾーン)：**us-west-2a**
     + 残りの設定はそのままにします。
   + **データベース認証**: **[パスワード認証]** が選択されたままにする。
   + **[モニタリング]** の **[Performance Insights を有効にする]** のチェックボックスはオフにする。**[その他の設定]** セクションを展開して、**[拡張モニタリングの有効化]** チェックボックスをオフにする。
   + **[Additional configuration]** (追加設定) を展開します：
     + **[Database options]** (データベースオプション) で**[Initial database name]** (初期データベース名) として **dms\$1sample** と入力します。
     + **[DB パラメータグループ]** では **[dms-mariadb-parameters]** を選択する。
     + **[オプショングループ]** では、**[default:mariadb-10-6]** が選択されたままにする。
     + 「**バックアップ**」 で、次の作業を行います。
       + **[自動バックアップの有効化]** はオンのままにする。継続的なレプリケーションをサポートするには、ソースデータベースで自動バックアップが有効になっている必要があります。
       + **[バックアップ保持期間]** では、**[1 日]** を選択する。
       + **[バックアップウィンドウ]** では、**[指定なし]** が選択されたままにする。
       + **[スナップショットにタグをコピー]** チェックボックスをオフにする。
       + **別の AWS リージョンでレプリケーションを有効にする** はオフのままにします。
     + **[Encryption]** (暗号化) で**[Enable encryption]** (暗号化有効) ボックスをクリアします。
     + **[ログのエクスポート]** セクションはそのままにする。
     + **[メンテナンス]** の **[マイナーバージョン自動アップグレードの有効化]** チェックボックスをオフにして、**[メンテナンスウィンドウ]** 設定を **[指定なし]** のままにする。
     + **[削除保護の有効化]** をオフのままにする。

1. **[Create database]** (データベースの作成) を選択します。

## ターゲットの Amazon RDS データベースを作成します。
<a name="CHAP_GettingStarted.Prerequisites.tdatabase"></a>

上記の手順を繰り返して、以下の変更を加えターゲットの Amazon RDS データベースを作成します。

**PostgreSQL データベース用のターゲット RDS を作成するには**

1. 前述の手順のステップ 1 と 2 を繰り返します。

1. **[Create database]** (データベースの作成) ページで、次の場合を除き、同じオプションを設定します：

   1. **[Engine options]** (エンジンオプション) で **PostgreSQL** を選択します。

   1. **[バージョン]** で、利用可能な **PostgreSQL 16** のバージョンを選択します。

   1. **[DB instance identifier]** (DB インスタンス識別子) に**dms-postgresql** と入力します。

   1. [**管理ユーザー名**] では **postgres** を選択したままにする

   1. **[DB parameter group]** (DB パラメータグループ) で、**dms-postgresql-parameters** を選択します。

   1. **[Enable automatic backups]** (自動バックアップ有効) をクリアします。

1. **[Create database]** (データベースの作成) を選択します。

## Amazon EC2 クライアントを作成する
<a name="CHAP_GettingStarted.Prerequisites.client"></a>

このセクションでは、Amazon EC2を作成します。このクライアントを使用して、レプリケートするデータをソースデータベースに入力します。また、このクライアントを使用して、ターゲットデータベースでクエリを実行してレプリケーションを検証します。

Amazon EC2 クライアントを使用してデータベースにアクセスすると、インターネットからデータベースにアクセスするよりも、次のような利点があります：
+ データベースへのアクセスを同じ VPC 内のクライアントに制限できます。
+ このチュートリアルで使用するツールは、このチュートリアルで推奨される Amazon Linux 2023 で動作し、簡単にインストールできることが確認されている。
+ VPC 内のコンポーネント間のデータオペレーションは、通常、インターネット経由のコンポーネントよりも優れたパフォーマンスを発揮します。

**Amazon EC2 クライアントを作成して構成し、ソースデータベースに取り込むには**

1. Amazon EC2 コンソール [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)を開きます。

1. **[Dashboard]** (ダッシュボード) で、**[Launch instance]** (インスタンスの起動) を選択します。

1. **[インスタンスを起動]** ページで、次の値を入力します。

   1. **[名前とタグ]** セクションの **[名前]** には、**DMSClient** と入力する。

   1. **アプリケーションと OS のイメージ (Amazon マシンイメージ)** セクションの設定はそのままにする。

   1. **[インスタンスタイプ]** セクションで **[t2.xlarge]** を選択する。

   1. **[キーペア (ログイン)]** セクションで、**[新しいキーペアを作成する]** を選択する。

   1. **[キーペアの作成]** ページで、次のとおり設定する。
      + **キーペア名:** **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 マネジメントコンソール し、[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/) で Amazon RDS コンソールを開きます。

1. ナビゲーションペインで、**[Databases]** (データベース) を選択します。

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 を使用している場合は、**[Connection]** (接続) 設定で TCP キープアライブを有効にし、接続が非アクティブ状態からタイムアウトしないようにします。

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 分かかります。スクリプトが表示するエラーや警告は無視して構いません。

# を使用したソーススキーマのターゲットデータベースへの移行 AWS SCT
<a name="CHAP_GettingStarted.SCT"></a>

DMS Schema Conversion を使用してソースデータベーススキーマを変換することをお勧めします。詳細については、「[DMS Schema Conversion の開始方法](getting-started.md)」を参照してください。レガシーを使用する場合は AWS Schema Conversion Tool、以下の手順に従います。

**を使用してソーススキーマをターゲットデータベースに移行するには AWS SCT**

1. をインストールします AWS Schema Conversion Tool。詳細については、*AWS Schema Conversion Tool ユーザーガイド*、「[AWS SCTのインストール、確認、および更新](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.Procedure)」をご参照ください。

   MySQL 用と PostgreSQL 用の JDBC ドライバーをダウンロードする際は、ツールに場所の入力を求められる場合に備えて、ドライバーの保存場所をメモしておきます。

1. を開きます AWS Schema Conversion Tool。**[ファイル]** をクリックして、**[新しいプロジェクト]** を選択します。

1. **[New project]** (新規プロジェクト) ウィンドウで以下の値を設定します：
   + **[Project name]** (プロジェクト名) を **DMSProject** に設定します。
   +  AWS SCT プロジェクトをデフォルトフォルダに保存する場合は、**場所**をそのままにしておきます。

   [**OK**] を選択してください。

1. **[ソースを追加]** をクリックし、ソースの MySQL データベースをプロジェクトに追加して、**[MySQL]** を選択し、**[次へ]** をクリックします。

1. **[ソースを追加]** ページで、次の値を設定します。
   + **接続名**: **source**
   + **[Server name]** (サーバー名): 以前にメモした MySQL データベースのエンドポイントを入力します。
   + **[Server port]** (サーバーポート)：**3306**
   + **[User name]** (ユーザー名)：**admin**
   + **[Password]** (パスワード)：**changeit**

1. **[ターゲットの追加]** をクリックして、ターゲットの Amazon RDS for PostgreSQL データベースをプロジェクトに追加して、**[Amazon RDS for PostgreSQL]** を選択します。[**次へ**] を選択します。

1. **[ターゲットの追加]** ページで、次の値を設定します。
   + **接続名**: **target**
   + **[Server name]** (サーバー名): 以前にメモした PostgreSQL データベースのエンドポイントを入力します。
   + **[Server port]** (サーバーポート)：**5432**
   + **データベース**: 作業中の PostgreSQL データベース名を入力する。
   + **[User name]** (ユーザー名)：**postgres**
   + **[Password]** (パスワード)：**changeit**

1. 左側のペインで、**[スキーマ]** の下にある **[dms\$1sample]** を選択します。右側のペインで、ターゲットの Amazon RDS for PostgreSQL データベースを選択します。[**マッピングの作**]を選択します。1 つの AWS SCT プロジェクトに複数のマッピングルールを追加できます。マッピングルールの詳細については、「[Creating mapping rules](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Mapping.html)」を参照してください。

1. **[メインビュー]** をクリックします。

1. 左側のペインで、**[スキーマ]** の下にある **[dms\$1sample]** を選択します。コンテキスト (右クリック) メニューを開いて、**[スキーマを変換]** を選択します。アクションを確認します。

   ツールがスキーマを変換したら、右側のペインに **[dms\$1sample]** スキーマが表示されます。

1. 右側のペインの **[スキーマ]** の下で、**[dms\$1sample]** のコンテキストメニュー (右クリック) を開き、**[Apply to database]** を選択します。アクションを確認します。

スキーマの移行が完了していることを確認します。以下のステップを実行します。

**スキーマの移行を確認するには**

1. Amazon EC2 クライアントに接続します。

1. PSQL クライアントを起動するには、次のコマンドを使用します。PostgreSQL データベースエンドポイントを指定し、プロンプトが表示されたらデータベースパスワードを入力します。

   ```
   psql \
      --host=dms-postgresql.abcdefg12345.us-west-2.rds.amazonaws.com \
      --port=5432 \
      --username=postgres \
      --password \
      --dbname=dms_sample
   ```

1. (空の) テーブルの 1 つをクエリして、 がスキーマを正しく AWS SCT 適用したことを確認します。

   ```
   dms_sample=> SELECT * from dms_sample.player;
    id | sport_team_id | last_name | first_name | full_name
   ----+---------------+-----------+------------+-----------
   (0 rows)
   ```

# のレプリケーションを設定する AWS Database Migration Service
<a name="CHAP_GettingStarted.Replication"></a>

このトピックでは、ソースデータベースとターゲットデータベース間のレプリケーションを設定します。

## ステップ 1: AWS DMS コンソールを使用してレプリケーションインスタンスを作成する
<a name="CHAP_GettingStarted.Replication.ReplicationInstance"></a>

で作業を開始するには AWS DMS、レプリケーションインスタンスを作成します。

*[replication instance]* (レプリケーション インスタンス) はソースとターゲットのエンドポイント間で実際のデータ移行を行います。インスタンスにはソースデータベースからターゲットデータベースにデータを移行するタスクを実行するのに十分なストレージと処理能力が必要です。このレプリケーション インスタンスの規模は、移行するデータの量と、インスタンスで実行する必要があるタスク量によって異なります。レプリケーション インスタンスの詳細については、「[AWS DMS レプリケーションインスタンスの使用](CHAP_ReplicationInstance.md)」をご参照ください。

![\[レプリケーション インスタンスの作成\]](http://docs.aws.amazon.com/ja_jp/dms/latest/userguide/images/datarep-create-replication-30a.png)


**コンソールを使用してレプリケーション インスタンスを作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/dms/v2/](https://console.aws.amazon.com/dms/v2/) で AWS DMS コンソールを開きます。

1. ナビゲーションペインで、**[Replication instances]** (レプリケーション インスタンス) を選択し、次に**[Create replication instance]** (レプリケーション インスタンスの作成) を選択します。

1. **レプリケーション インスタンスの作成**ページで、レプリケーション インスタンス構成を指定します：

   1. **[Nam]** (名前) に**DMS-instance**と入力します。

   1. **[Description]** (説明) には、レプリケーション インスタンスの短い説明を入力します (オプション)。

   1. **[Instance class]** (インスタンスクラス)には、**dms.t3.medium**を選択されたままにします。

      インスタンスには移行に十分なストレージ、ネットワーキング、および処理能力が必要です。インスタンスクラスの選択方法の詳細については、「[移行に適した DMS AWS レプリケーションインスタンスの選択](CHAP_ReplicationInstance.Types.md)」をご参照ください。

   1. **[Engine version]** (エンジンバージョン)はデフォルト値のままにします。

   1. **[マルチ AZ]** には **[開発またはテストワークロード (シングル AZ)]** を選択する。

   1. **[Allocated storage (GiB)] (GiB)** (割り当てられたストレージ)ではデフォルトの 50 GiB を受け入れます。

      では AWS DMS、ストレージは主にログファイルとキャッシュされたトランザクションによって使用されます。キャッシュされたトランザクションでは、ストレージはキャッシュされたトランザクションをディスクに書き込む必要があるときのみ使用されます。そのため、 は大量のストレージを使用し AWS DMS ません。

   1. **[ネットワークタイプ]** では **[IPv4]** を選択する。

   1. **VPC**では**DMSVPC**を選択します。

   1. **[Replication subnet group]** (レプリケーションサブネットグループ) では、レプリケーション サブネットグループを現在の選択のままにします。

   1. **[パブリックアクセス可能]** はオフにする。

1. 必要がある場合は、**[Advanced security and network configuration]** (アドバンストセキュリティとネットワークの設定) タブを選択して、ネットワークおよび暗号化設定の値を設定します：

   1. **[Availability zone]** (アベイラビリティーゾーン) では、**us-west-2a** を選択します。

   1. **[VPC security group(s)]** (VPC セキュリティグループ) では、**[Default]** (デフォルト) セキュリティグループ (まだ選択されていない場合) を選択します。

   1. **AWS KMS key** では、**(Default) aws/dms** (デフォルト aws/dm) を現在の選択のままにします。

1. **[Maintenance]** (メンテナンス)タブの設定はそのままにします。デフォルトは、各 AWS リージョンの 8 時間の時間ブロックからランダムに選択された 30 分のウィンドウであり、ランダムな曜日に発生します。

1. **[作成]** を選択します。

AWS DMS は、移行を実行するレプリケーションインスタンスを作成します。

## ステップ 2: ソースとターゲットのエンドポイントを指定する
<a name="CHAP_GettingStarted.Replication.Endpoints"></a>

レプリケーション インスタンスの作成時に、作成済み Amazon RDS データベース用のソースとターゲットデータベースのエンドポイントを指定できます。各エンドポイントは別々に作成します。

![\[エンドポイントの作成\]](http://docs.aws.amazon.com/ja_jp/dms/latest/userguide/images/datarep-create-endpoint-30a.png)


**AWS DMS コンソールを使用してソースエンドポイントとデータベースエンドポイントを指定するには**

1. コンソールで、ナビゲーションペインから**[Endpoints]** (エンドポイント) を選択し、次に**[Create Endpoint]** (エンドポイントの作成) を選択します。

1. **[Create endpoint]** (エンドポイントの作成) ページで、**[Source]** (ソース) エンドポイント タイプを選択します｡ **[RDS DB インスタンスの選択]** チェックボックスをオンにして、**[dms-mariadb]** インスタンスを選択します。

1. **[Endpoint configuration]** (エンドポイント設定) セクションで、**dms-mysql-source** を **[Endpoint identifier]** (エンドポイント識別子) に入力します。

1. **[Source engine]** (ソースエンジン) では **MySQL** を選択されたままにしておきます。

1. **[Access to endpoint database]** (エンドポイントデータベースへのアクセス) では、**[Provide access information manually]** (アクセス情報を手動で提供) を選択します。**[ポート]**、**[Secure Socket Layer (SSL) モード]**、**[ユーザー名]**、**[パスワード]** が正しいことを確認します。

1. **[Test endpoint connection (optional)]** (エンドポイント接続のテスト (オプション)) タブを選択します。**VPC**では**DMSVPC**を選択します。

1. **[Replication instance]** (レプリケーション インスタンス) では、**dms-instance** が選ばれたままにしておきます。

1. **[Run test]** (テストの実行) を選択します。

   **テストの実行**を選択すると、 は指定した詳細でエンドポイント AWS DMS を作成し、接続します。接続が失敗した場合は、エンドポイント定義を編集して、接続を再度テストします。エンドポイントを手動で削除することもできます。

1. テストが成功したら、**[Create endpoint]** (エンドポイントの作成) を選択します。

1.  AWS DMS コンソールを使用してターゲットデータベースエンドポイントを指定します。これを行うには、次の設定を使用して、前の手順を繰り返します:
   + **[Endpoint type]** (エンドポイント タイプ)：**[Target endpoint]** (ターゲット エンドポイント)
   + **[RDS Instance]** (RDS インスタンス):**dms-postgresql**
   + **[Endpoint identifier]** (エンドポイント識別子)：**dms-postgresql-target**
   + **[Target engine]** (ターゲットエンジン)：**PostgreSQL** を選ばれたままにしておきます。

エンドポイントのすべての情報の提供が終了すると、 はデータベース移行中に使用するソースエンドポイントとターゲットエンドポイント AWS DMS を作成します。

## ステップ 3: タスクを作成してデータを移行する
<a name="CHAP_GettingStarted.Replication.Tasks"></a>

このステップでは、作成したデータベース間でデータを移行するタスクを作成します。

![\[移行タスクを作成するには\]](http://docs.aws.amazon.com/ja_jp/dms/latest/userguide/images/datarep-create-task-20a.png)


**移行タスクを作成してデータベースの移行を開始するには**

1. コンソールのナビゲーションペインで、**[Database migration tasks]** (データベース移行タスク) を選択してから、**[Create task]** (タスクの作成) を選択します。**[Create database migration task]** (データベース移行タスクの作成) ページが開きます。

1. **[Task configuration]** (タスクの設定) セクションで、次のタスクオプションを指定します：
   + **[Task identifier]** (タスク識別子): **dms-task** と入力します。
   + **[Replication instance]** (レプリケーション インスタンス): レプリケーション インスタンスを選択します (**dms-instance-vpc-*<vpc id>***)。
   + **[Source database endpoint]** (ソースデータベースのエンドポイント): **dms-mysql-source** を選択します。
   + **[Target database endpoint]** (ターゲットデータベースエンドポイント): **dms-postgresql-target** を選択します。
   + **[Migration type]** (移行タイプ): **[Migrate existing data and replicate on-going changes]** (既存データ移行と実行中変更のレプリケーション) を選択します。

1. **[Task settings]** (タスク設定) タブを選択します。以下の設定をします：
   + **[Target table preparation mode]** (ターゲットテーブル作成モード)：**[Do nothing]** (何もしない)
   + **[Stop task after full load complete]** (全ロードの完了後にタスクを停止)：**[Don't stop]** (停止しない)

1. **[Table mappings]** (テープル マッピング) を選択し、**[Selection rules]** (選択ルール) を展開します。**[Add new selection rule]** (新規選択ルールの追加) を選択します。以下の設定をします：
   + **[Schema]** (スキーマ)：**スキーマを入力**
   + **[Schema name]** (スキーマ名)：**dms\$1sample**

1. **移行タスクの起動設定**タブを選択します。**移行前評価の開始 (推奨)** を選択して、タスクを開始する前に評価を実行します。または、**作成時に自動的に開始**して移行をすぐに開始するか、**評価のみを実行して**タスクを開始せずに評価することもできます。  
![\[移行タスクを作成するには\]](http://docs.aws.amazon.com/ja_jp/dms/latest/userguide/images/datarep-create-task-21.png)

1. **[Create task]** (タスクの作成) を選択します。

AWS DMS 次に、 によって移行タスクが作成され、開始されます。最初のデータベースレプリケーションには約 10 分かかります。前にチュートリアルの次のステップを必ず実行してから AWS DMS はデータの移行を終了します。

## ステップ 4: レプリケーションテスト
<a name="CHAP_GettingStarted.Replication.Monitoring"></a>

このセクションでは、最初のレプリケーション中およびその後にデータをソースデータベースに挿入し、挿入されたデータをターゲットデータベースに照会します。

**レプリケーションをテストするには**

1. データベース移行タスクのステータスが **[Running]** (実行中) を示すが、前のステップでスタートした最初のデータベース レプリケーションは完了していないことを確認してください。

1. Amazon EC2 クライアントに接続し、次のコマンドを使用して MySQL クライアントをスタートします。MySQL データベースのエンドポイントを指定します。

   ```
   mysql -h dms-mysql.abcdefg12345.us-west-2.rds.amazonaws.com -P 3306 -u admin -pchangeit dms_sample
   ```

1. 次のコマンドを実行して、ソースデータベースにレコードを挿入します。

   ```
   MySQL [dms_sample]> insert person (full_name, last_name, first_name) VALUES ('Test User1', 'User1', 'Test');
   Query OK, 1 row affected (0.00 sec)
   ```

1. MySQL クライアントを終了します。

   ```
   MySQL [dms_sample]> exit
   Bye
   ```

1. レプリケーションが完了する前に、ターゲットデータベースに新しいレコードをクエリします。

   Amazon EC2 インスタンスから、次のコマンドを使用してターゲットデータベースに接続し、ターゲットデータベース エンドポイントを指定します。

   ```
   psql \
      --host=dms-postgresql.abcdefg12345.us-west-2.rds.amazonaws.com \
      --port=5432 \
      --username=postgres \
      --password \
      --dbname=dms_sample
   ```

   プロンプトが表示されたらパスワード(**changeit**) を入力します。

1. レプリケーションが完了する前に、ターゲットデータベースに新しいレコードをクエリします。

   ```
   dms_sample=> select * from dms_sample.person where first_name = 'Test';
    id | full_name | last_name | first_name
   ----+-----------+-----------+------------
   (0 rows)
   ```

1. 移行タスクの実行中に、データベース移行の進捗をモニタリングできます。
   + DMSコンソールのナビゲーションペインで**[Database migration tasks]** (データベースの移行タスク) を選択します。
   + **dms-task**を選択します。
   + **[Table statistics]** (テーブルの統計) を選択します。

   モニタリングの詳細については、「[DMS AWS タスクのモニタリング](CHAP_Monitoring.md)」をご参照ください。

1. レプリケーションが完了したら、ターゲットデータベースに新しいレコードを再度クエリします。 は、最初のレプリケーションが完了した後に新しいレコードを AWS DMS 移行します。

   ```
   dms_sample=> select * from dms_sample.person where first_name = 'Test';
      id    | full_name  | last_name | first_name
   ---------+------------+-----------+------------
    7077784 | Test User1 | User1     | Test
   (1 row)
   ```

1. psqlクライアントを終了します。

   ```
   dms_sample=> quit
   ```

1. 手順 1 を繰り返して、ソースデータベースに再接続します。

1. 別のレコードを `person` テーブルに挿入します。

   ```
   MySQL [dms_sample]> insert person (full_name, last_name, first_name) VALUES ('Test User2', 'User2', 'Test');
   Query OK, 1 row affected (0.00 sec)
   ```

1. 手順 3 と 4 を繰り返して、ソースデータベースから切断し、ターゲットデータベースに接続します。

1. レプリケートされたデータをターゲットデータベースに対して再度クエリします。

   ```
   dms_sample=> select * from dms_sample.person where first_name = 'Test';
      id    | full_name  | last_name | first_name
   ---------+------------+-----------+------------
    7077784 | Test User1 | User1     | Test
    7077785 | Test User2 | User2     | Test
   (2 rows)
   ```

## ステップ 5: AWS DMS リソースをクリーンアップする
<a name="CHAP_GettingStarted.Replication.Deleting"></a>

スタート方法のチュートリアルを完了したら、作成したリソースを削除できます。 AWS コンソールを使用して削除できます。レプリケーション インスタンスとエンドポイントを削除する前に、移行タスクを削除してください。

**コンソールを使用して移行タスクを削除するには**

1.  AWS DMS コンソールのナビゲーションペインで、**データベース移行タスク**を選択します。

1. **dms-task**を選択します。

1. **[Actions]** (アクション) で**[Delete]** (削除) を選択します。

**コンソールを使用してレプリケーション インスタンスを削除するには**

1.  AWS DMS コンソールのナビゲーションペインで、**レプリケーションインスタンス**を選択します。

1. **[DMS-instance]** (DMSインスタンス) を選択します。

1. **[Actions]** (アクション) で**[Delete]** (削除) を選択します。

AWS DMS はレプリケーションインスタンスを削除し、**レプリケーションインスタンス**ページから削除します。

**コンソールを使用してエンドポイントを削除するには**

1.  AWS DMS コンソールのナビゲーションペインで、**エンドポイント**を選択します。

1. **dms-mysql-source** を選択します。

1. **[Actions]** (アクション) で**[Delete]** (削除) を選択します。

 AWS DMS リソースを削除したら、次のリソースも必ず削除してください。他のサービスのリソースを削除するヘルプについては、各サービスのドキュメントをご参照ください。
+ RDS データベース。
+ RDS データベース パラメータグループ。
+ RDS サブネット グループ。
+ データベースおよびレプリケーション インスタンスとともに作成された Amazon CloudWatch ログ。
+ Amazon VPC および Amazon EC2 クライアント用に作成されたセキュリティグループ。受信ルールを **launch-wizard-1** セキュリティグループの**[Default]** (デフォルト) から必ず削除してください。この操作は削除できるようにするために必要です。
+ Amazon EC2 クライアント。
+ Amazon VPC 。
+ Amazon EC2 クライアント用 Amazon EC2キーペア。