AWS Database Migration Service を設定するための前提条件を完了する
このセクションでは、ソースデータベースとターゲットデータベースのセットアップなど AWS DMS の前提条件タスクを示します。これらのタスクの一環として、Amazon VPC サービスに基づいて Virtual Private Cloud (VPC) も設定します。さらに、ソースデータベースの入力とターゲットデータベースでのレプリケーションの検証に使用する Amazon EC2 インスタンスをセットアップします。
注記
ソースデータベースへの入力には最大 45 分かかります。
このチュートリアルでは、ソースとして MariaDB データベースを作成し、ターゲットとして PostgreSQL データベースを作成します。このシナリオでは、一般的に使用される低コストのデータベースエンジンを使用して、レプリケーションを実証します。異なるデータベースエンジンを使用すると、異機種混在プラットフォーム間でデータを移行するための AWS DMS 機能を実証します。
このチュートリアルのリソースでは、米国西部 (オレゴン) リージョンを使用します。別の AWS リージョンを使用する場合。米国西部 (オレゴン) が表示される場所ではなく、選択したリージョンを指定します。
注記
簡単にするために、このチュートリアル用に作成するデータベースでは、暗号化やその他のアドバンストセキュリティ機能を使用しません。本番データベースを安全に保つには、セキュリティ機能を使用する必要があります。詳細については「Amazon RDS でのセキュリティ」をご参照ください。
前提条件のステップについては、以下のトピックをご参照ください。
トピック
VPC を作成する
このセクションでは、AWS リソースのコンテナとするVPC を作成します。VPC を使用することは、AWS リソースを使用する際のベストプラクティスです。データベース、Amazon EC2 インスタンス、セキュリティグループなどが論理的に整理され、セキュリティで保護されます。
チュートリアルリソースに VPC を使用すると、チュートリアルの終了時に使用するすべてのリソースも削除するようにしてください。VPC に含まれるすべてのリソースを削除してからVPC を削除できます。
AWS DMS 用の VPC を作成する方法
AWS マネジメントコンソール にサインインして、Amazon VPC コンソール (https://console.aws.amazon.com/vpc/
) を開きます。 ナビゲーションペインで、[VPC ダッシュボード] を選択して、[VPC の作成] をクリックします。
[VPC の作成] ページで、次のオプションを入力します。
作成するリソース: VPC など
名前タグの自動生成: [自動生成] を選択して、
DMSVPCと入力するIPv4 ブロック:
10.0.1.0/24IPv6 CIDR ブロック: IPv6 CIDR ブロックなし
テナンシー: デフォルト
アベイラビリティーゾーンの数: 2
パブリックサブネットの数: 2
プライベートサブネットの数: 2
NAT ゲートウェイ ($): なし
VPC エンドポイント: なし
[Create VPC] (VPC作成) を選択します。
ナビゲーションペインで VPC を選択します。DMSVPC の VPC ID を書き留めます。
ナビゲーションペインで[Security Groups] (セキュリティグループ) を選択します。
DMSVPCについて書き留めた ID と一致するVPC IDの[default] (デフォルト) という名前のグループを選択します。
[Inbound rules] (インバウンドルール) タブを選択し、[Edit inbound rules] (インバウンドルールの編集) を選択します。
[Add rule] (ルール追加) を選択します。[MySQL/Aurora] のルールタイプを追加して、[ソース] には Anywhere-IPv4 を選択します。
[Add rule] (ルールの追加) を選択しなおします。[PostgreSQL] のルールタイプを追加して、[ソース] には Anywhere-IPv4 を選択します。
[Save Rules] (ルールの保存) を選択します。
Amazon RDS パラメータグループの作成
AWS DMS でソースおよびターゲットデータベースの設定を指定するには、Amazon RDS パラメータグループを使用します。データベース間の初期および継続的なレプリケーションを許可するには、次の構成を必ず行ってください:
ソースデータベースのバイナリログ。AWS DMS は、レプリケートする必要がある増分更新を決定できます。
ターゲットデータベースのレプリケーションロール。AWS DMSは、最初のデータ転送中に外部キーの制約を無視します。この設定では、AWS DMS は順不同でデータを移行できます。
AWS DMS で使用するパラメータグループを作成するには
Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 ナビゲーションペインで [Parameter groups] (パラメータグループ) を選択します。
[Parameter groups] (パラメータグループ) ページで[Create parameter group] (パラメータグループの作成) を選択します。
[Create parameter group] (パラメータグループ作成) ページで、次の設定を入力します:
パラメータグループファミリー: mariadb10.6
[Group name] (グループ名):
dms-mariadb-parameters[Description] (説明):
Group for specifying binary log settings for replication
[作成] を選択します。
[パラメータグループ] ページで、[dms-mariadb-parameters] を選択して、[dms-mariadb-parameters] ページで、[編集] をクリックします。
次のパラメータを次の値に設定します:
binlog_checksum:[NONE] (無し)
binlog_format:[ROW] (行)
[Save changes] (変更を保存) を選択します。
[Parameter groups] (パラメータグループ) ページで[Create parameter group] (パラメータグループの作成) を選択します。
[Create parameter group] (パラメータグループ作成) ページで、次の設定を入力します:
[Parameter group family] (パラメータ グループファミリ):postgres16
[Group name] (グループ名):
dms-postgresql-parameters[Description] (説明):
Group for specifying role setting for replication
[作成] を選択します。
[Parameter groups] (パラメータグループ) ページで dms-postgresql-parameters を選択します。
[dms-postgresql-parameters] ページで、[編集] をクリックして、[session_replication_role parameter] を [レプリカ] と設定します。session_replication_role のパラメータが、パラメータの最初のページにないことに注意します。このパラメータを見つけるには、ページ割りコントロールまたは検索フィールドを使用します。
[Save changes] (変更の保存) をクリックします。
ソース Amazon RDS データベースを作成する
次の手順に従って、ソース Amazon RDS データベースを作成します。
ソースの Amazon RDS for MariaDB データベースを作成するには
Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 [Dashboard] (ダッシュボード) ページで[Database] (データベース) セクションの[Create Database] (データベースの作成) を選択します。ページ上部の [MySQL と PostgreSQL 用の新しい Amazon RDS マルチ AZ 配置オプションを試す] セクションにある [データベースの作成] はクリックしないでください。
[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_sampleと入力します。[DB パラメータグループ] では [dms-mariadb-parameters] を選択する。
[オプショングループ] では、[default:mariadb-10-6] が選択されたままにする。
「バックアップ」 で、次の作業を行います。
[自動バックアップの有効化] はオンのままにする。継続的なレプリケーションをサポートするには、ソースデータベースで自動バックアップが有効になっている必要があります。
[バックアップ保持期間] では、[1 日] を選択する。
[バックアップウィンドウ] では、[指定なし] が選択されたままにする。
[スナップショットにタグをコピー] チェックボックスをオフにする。
[別の AWS リージョンでレプリケーションを有効化] のチェックボックスはオフのままにする。
[Encryption] (暗号化) で[Enable encryption] (暗号化有効) ボックスをクリアします。
[ログのエクスポート] セクションはそのままにする。
[メンテナンス] の [マイナーバージョン自動アップグレードの有効化] チェックボックスをオフにして、[メンテナンスウィンドウ] 設定を [指定なし] のままにする。
[削除保護の有効化] をオフのままにする。
[Create database] (データベースの作成) を選択します。
ターゲットの Amazon RDS データベースを作成します。
上記の手順を繰り返して、以下の変更を加えターゲットの Amazon RDS データベースを作成します。
PostgreSQL データベース用のターゲット RDS を作成するには
前述の手順のステップ 1 と 2 を繰り返します。
-
[Create database] (データベースの作成) ページで、次の場合を除き、同じオプションを設定します:
[Engine options] (エンジンオプション) で PostgreSQL を選択します。
[バージョン] で、利用可能な PostgreSQL 16 のバージョンを選択します。
[DB instance identifier] (DB インスタンス識別子) に
dms-postgresqlと入力します。[管理ユーザー名] では
postgresを選択したままにする[DB parameter group] (DB パラメータグループ) で、dms-postgresql-parameters を選択します。
[Enable automatic backups] (自動バックアップ有効) をクリアします。
[Create database] (データベースの作成) を選択します。
Amazon EC2 クライアントを作成する
このセクションでは、Amazon EC2を作成します。このクライアントを使用して、レプリケートするデータをソースデータベースに入力します。また、このクライアントを使用して、ターゲットデータベースでクエリを実行してレプリケーションを検証します。
Amazon EC2 クライアントを使用してデータベースにアクセスすると、インターネットからデータベースにアクセスするよりも、次のような利点があります:
データベースへのアクセスを同じ VPC 内のクライアントに制限できます。
このチュートリアルで使用するツールは、このチュートリアルで推奨される Amazon Linux 2023 で動作し、簡単にインストールできることが確認されている。
VPC 内のコンポーネント間のデータオペレーションは、通常、インターネット経由のコンポーネントよりも優れたパフォーマンスを発揮します。
Amazon EC2 クライアントを作成して構成し、ソースデータベースに取り込むには
Amazon EC2 コンソール https://console.aws.amazon.com/ec2/
を開きます。 [Dashboard] (ダッシュボード) で、[Launch instance] (インスタンスの起動) を選択します。
[インスタンスを起動] ページで、次の値を入力します。
[名前とタグ] セクションの [名前] には、
DMSClientと入力する。アプリケーションと OS のイメージ (Amazon マシンイメージ) セクションの設定はそのままにする。
[インスタンスタイプ] セクションで [t2.xlarge] を選択する。
[キーペア (ログイン)] セクションで、[新しいキーペアを作成する] を選択する。
[キーペアの作成] ページで、次のとおり設定する。
キーペア名:
DMSKeyPairキーペアタイプ: RSA のままにする
プライベートキーファイル形式: MacOS または Linux の OpenSSH の場合は [pem]、Windows の PuTTY の場合は [ppk] を選択する。
プロンプトが表示されたら、キーファイルを保存します。
注記
新しいキーペアを作成するのではなく、既存の Amazon EC2 キーペアを使用することもできます。
[ネットワーク設定] セクションで、[編集] をクリックする。以下の設定を選択します。
VPC - 必須: DMSVPC-vpc VPC のために記録しておいた ID を持つ VPC を選択する。
[サブネット]: 最初のパブリックサブネットを選択する。
パブリック IP の自動割り当て: [有効] を選択する。
残りの設定はそのままにして、[インスタンスを起動] をクリックします。
ソースデータベースに挿入する
このセクションでは、後で使用するためのソースデータベースとターゲットデータベースのエンドポイントを検索し、次のツールを使用してソースデータベースに挿入します。
Git、ソースデータベースに入力させるスクリプトをダウンロードします。
MariaDB クライアント。このスクリプトを実行するクライアントです。
エンドポイントを取得する
RDS for MariaDB および RDS for PostgreSQL DB インスタンスのエンドポイントを見つけて後で使うためメモします。
DB インスタンスエンドポイントの検索
AWS マネジメントコンソール にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 ナビゲーションペインで、[Databases] (データベース) を選択します。
[dms-mariadb] データベースを選択して、データベースの [エンドポイント] の値をメモしておきます。
前のステップをdms-postgresql データベースに対して繰り返します。
ソースデータベースに挿入する
次に、クライアント インスタンスに接続し、必要なソフトウェアをインストールし、Git からデータベース スクリプト AWS サンプルをダウンロードし、スクリプトを実行してソースデータベースに挿入します。
ソースデータベースに挿入するには
前の手順で保存したホスト名と公開キーを使用して、クライアントインスタンスに接続します。
Amazon EC2 インスタンスへの接続の詳細については、「Amazon EC2 ユーザーガイド」の「インスタンスへの接続」を参照してください。
注記
PuTTY を使用している場合は、[Connection] (接続) 設定で TCP キープアライブを有効にし、接続が非アクティブ状態からタイムアウトしないようにします。
Git、MariaDB、PostgreSQL をインストールします。必要に応じてインストールを確認します。
$ sudo yum install git $ sudo dnf install mariadb105 $ sudo dnf install postgresql15GitHub からデータベース作成スクリプトをダウンロードするには、次のコマンドを実行します。
git clone https://github.com/aws-samples/aws-database-migration-samples.gitaws-database-migration-samples/mysql/sampledb/v1/ディレクトリを変更します。以下のコマンドを実行してください。以前にメモしたソース 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データベース作成スクリプトを実行します。スクリプトは、スキーマを作成してデータを代入するのに最大 45 分かかります。スクリプトが表示するエラーや警告は無視して構いません。