

# 例: Aurora PostgreSQL と AWS Database Migration Service を使用した論理レプリケーション
<a name="AuroraPostgreSQL.Replication.Logical.DMS-Example"></a>

AWS Database Migration Service 「AWS DMS」 を使用してデータベースまたはその一部をレプリケートできます。AWS DMS を使用して、Aurora PostgreSQL データベースから、別のオープンソースデータベースまたは商用データベースにデータを移行させます。AWS DMS の詳細については、『[AWS Database Migration Service ユーザーガイド](https://docs.aws.amazon.com/dms/latest/userguide/)』を参照してください。

次の例では、Aurora PostgreSQL データベースからの (パブリッシャーとしての) 論理的なレプリケーションを設定し、次に移行のために AWS DMS を使用する方法を示します。この例では、「[例: Aurora PostgreSQL DB クラスターにおける論理レプリケーションの使用](AuroraPostgreSQL.Replication.Logical.PostgreSQL-Example.md)」で作成したのと同じパブリッシャーおよびサブスクライバーを使用しています。

AWS DMS で論理的なレプリケーションを設定するには、Amazon RDS のパブリッシャーとサブスクライバーに関する詳細が必要です。特に、パブリッシャーの書き込み DB インスタンスとサブスクライバーの DB インスタンスに関する詳細が必要です。

パブリッシャーの書き込み DB インスタンスについては以下の情報を取得します。
+ 仮想プライベートクラウド (VPC) の識別子
+ サブネットグループ
+ アベイラビリティーゾーン (AZ)
+ VPC セキュリティグループ
+ DB インスタンス ID

サブスクライバーの DB インスタンスについては以下の情報を取得します。
+ DB インスタンス ID
+ 出典エンジン

**Aurora PostgreSQL での論理的なレプリケーションに AWS DMS を使用するには**

1. AWS DMS を使用するようにパブリッシャーデータベースを準備します。

   これを行うには、PostgreSQL 10.x 以降のデータベースで、AWS DMS ラッパー関数をパブリッシャーデータベースに適用する必要があります。このステップと以降のステップの詳細については、*AWS Database Migration Service ユーザーガイドの*「[AWS DMS のソースとして PostgreSQL バージョン 10.x 以降を使用する](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.v10)」を参照してください。

1. AWS マネジメントコンソール にサインインして、AWS DMS で [https://console.aws.amazon.com/dms/v2](https://console.aws.amazon.com/dms/v2) コンソールを開きます。右上で、パブリッシャーとサブスクライバーがある同じ AWS リージョンを選択します。

1. AWS DMS レプリケーションインスタンスを作成します。

   パブリッシャーの書き込み DB インスタンスと同じ値を選択します。これらには、以下の設定が含まれます。
   + 「**VPC**」 で、書き込み DB インスタンスと同じ VPC を選択します。
   + 「**Replication Subnet Group (レプリケーションのサブネットグループ)**」 で、書き込み DB インスタンスと同じ値のサブネットグループを選択します。必要に応じて新規に作成してください。
   + 「**アベイラビリティーゾーン**」 で、書き込み DB インスタンスと同じゾーンを選択します。
   + 「**VPC セキュリティグループ**」 で、書き込み DB インスタンスと同じグループを選択します。

1. 出典の AWS DMS エンドポイントを作成します。

   次の設定を使用して、パブリッシャーを出典エンドポイントとして指定します。
   + 「**Endpoint type (エンドポイントタイプ)**」 で 「**Source endpoint (出典エンドポイント)**」を選択します。
   + 「**Select RDS DB Instance (RDS DB インスタンスの選択)**」 を選択します。
   + 「**RDS Instance (RDS インスタンス)**」で、パブリッシャーの書き込み DB インスタンスの DB 識別子を選択します。
   + 「**Source engine (出典エンジン)**」 で 「**postgres**」 を選択します。

1. ターゲットの AWS DMS エンドポイントを作成します。

   次の設定を使用して、サブスクライバーをターゲットエンドポイントとして指定します。
   + 「**Endpoint type (エンドポイントタイプ)**」 で 「**Target endpoint (ターゲットエンドポイント)**」 を選択します。
   + [**Select RDS DB Instance (RDS DB インスタンスの選択)**] を選択します。
   + [**RDS Instance (RDS インスタンス)**] で、サブスクライバーの DB インスタンスの DB 識別子を選択します。
   + [**Source engine (出典エンジン)**] の値を選択します。例えば、サブスクライバーが RDS PostgreSQL データベースの場合は、[**postgres**] を選択します。サブスクライバーが Aurora PostgreSQL データベースである場合は、[**aurora-postgresql**] を選択します。

1. AWS DMS データベース移行タスクを作成します。

   データベース移行タスクを使用して、移行するデータベーステーブルを指定し、ターゲットスキーマを使用してデータをマッピングして、ターゲットデータベースで新しいテーブルを作成します。少なくとも、[**Task configuration (タスクの設定)**] で以下の設定を使用します。
   + [**Replication instance (レプリケーションインスタンス)**] で、前のステップで作成したレプリケーションインスタンスを選択します。
   + [**Source database endpoint (出典データベースエンドポイント)**] で、前のステップで作成したパブリッシャー出典を選択します。
   + [**Target database endpoint (ターゲットデータベースエンドポイント)**] で、前のステップで作成したサブスクライバーターゲットを選択します。

   タスクの残りの詳細は、移行プロジェクトに応じて異なります。DMS タスクのすべての詳細を指定する方法については、*AWS Database Migration Service ユーザーガイド*の「[AWS DMS タスクの使用](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.html)」を参照してください。

AWS DMS は、タスクを作成した後で、パブリッシャーからサブスクライバーへのデータの移行を開始します。