前提
参考
目次
- Auroraを作成
- S3バケットを作成
- DMSを設定
手順
1.Auroraを作成
1)AWSから「Aurora」を検索し、「Aurora and RDS」を選択
2)以下のドキュメントとブログを参考にパラメータを作成
3)「パラメータグループ」→「パラメータグループの作成」をクリック
4)以下を参考に設定し、「作成」をクリック
例:
・パラメータグループ名:postgres-custompara
・説明:postgres-custompara
・エンジンのタイプ:Aurora PostgreSQL
・パラメータグループファミリー:aurora-postgresql16
・タイプ:DB Cluster Parameter Group
5)作成したパラメータをクリックし、「編集」をクリック
6)以下の四つのパラメータ値を編集し、「変更の保存」をクリック
rds.logical_replication:1
wal_sender_timeout:0
max_worker_processes:そのまま
shared_preload_libraries:pglogical追加(,区切り)
7)「データベース」→「データベースの作成」をクリック
8)以下の内容を参考に設定し、「データベースの作成」をクリック
(検証用のため、セキュリティなどゆるくしてます)
・データベースの作成方法を選択:標準作成
・エンジンのオプション:Aurora(PostgreSQL Compatible)
・テンプレート:開発/テスト
・DBクラスター識別子:ho-postgresdb
・マスターユーザー名:postgres
・認証情報管理:セルフマネージド
・マスターパスワード:手入力
・DBインスタンス:Serverless v2
・容量の範囲:0.5GiB~16GiB
・可用性と耐久性:Auroraレプリカを作成しない
・Virtual Private Cloud(VPC):新しいVPCの作成
・DBサブネットグループ:新しいDBサブネットグループの作成
・パブリックアクセス:あり(簡単な検証のため)
・VPCセキュリティグループ:新規作成
・新しいVPCセキュリティグループ名:ho-postgresdb
・アベイラビリティーゾーン:ap-northeast-1a
追加設定で、DB クラスターのパラメータグループを上で作成したパラメータグループに変更
例:postgres-custompara
9)無事作成されてることを確認(数分かかる)
10)セキュリティグループにDMSレプリケーションインスタンスのインバウンドを許可する
「VPC」→「セキュリティグループ」で、上記で作成したセキュリティグループを開く
11)「インバウンドルール」→「インバウンドのルールを編集」をクリック
12)インバウンドルールを追加
・タイプ:PostgresSQL
・ソース:カスタム、VPCのプライベートIP
13)Auroraのエンドポイント名をコピー
作成したAuroraをクリックし、表示されるライターのエンドポイント
14)DBeaverを利用して、AuroraにDBを作成する
無料ダウンロード先:
15)「+」→「PostgreSQL」をクリック
16)「PostgreSQL」→「次へ」クリック
17)上でコピーしたエンドポイントをhostに貼り付ける
・host:AuroraのEndpoint
・パスワードにAurora作成時設定したパスワードを入力
・☑︎Show all databases
18)テスト接続をクリック
19)接続がうまくいったら、終了をクリック
20)SQLエディタを開き、データベースを作成する
21)データベースを作成
create database postgresdb
CREATE EXTENSION pglogical
22)スキマ、テーブルを作成し、データを入れる
2.S3バケットを作成
1)S3を検索し、「S3」をクリック
2)「バケットを作成」をクリック
3)バケット名を入力し、「バケットを作成」をクリック
例:バケット名:ho-iceberg
3.DMSを設定
前提:dms-vpc-roleというIAMロールを作成してない場合は、以下の手順に沿って作成
1.サブネットグループを作成
1)検索からdmsを検索し、「Database Migration Service」をクリック
2)ナビゲーションメニュから「サブネットグループ」→「サブネットグループの作成」をクリック
3)以下の情報を設定し、サブネットグループの作成
例:
・名前:ho-iceberg-subnetgroup
・説明:ho-iceberg-subnetgroup
・VPC:Auroraと同様なVPC
・サブネットの追加:上記のVPC上のサブネットを選択
2.レプリケーションインスタンスを作成
前提:「dms-cloudwatch-logs-role」IAMロールが作成されてない場合は、以下の手順に沿って作成
1)「レプリケーションインスタンス」→「レプリケーションインスタンスの作成」をクリック
2)以下の内容を参考に設定し、「レプリケーションインスタンスの作成」をクリック
例:
・名前:ho-instance
・インスタンスクラス:dms.t3.micro(2vCPU, 1GiB)
・レプリケーションインスタンスのための:開発またはテストワークロード(シングルAZ)
・IPv4 用仮想プライベートクラウド (VPC):サブネットグループと同様なVPC
・レプリケーションサブネットグループ:上の手順で作成したサブネットグループ(ho-ceberg-subnetgroup)
・VPC セキュリティグループ:default
3.ソースエンドポイントを作成
1)「エンドポイント」→「エンドポイントの作成」をクリック
2)下記を参考にソースエンドポイントを作成
例:
ソースエンドポイント
☑︎RDS DBインスタンスの選択
RDSインスタンス:上で作成したRDSインスタンス
☑︎アクセス情報を手動で提供する
パスワード:RDSのPostgresユーザのパスワード
データベース名:上で作成したデータベース名
レプリケーションインスタンス:上で作成したレプリケーションインスタンス
3)「テストの実行」をクリックし、Successfulと表示されたら、「エンドポイントの作成」をクリック
4.IAMロールを作成
1)IAMロールを開く
2)「ロール」→「ロールを作成」をクリック
3)「AWSのサービス」→「DMS」を選択し、「次へ」をクリック
4)「AmazonS3FullAccess」を選択し、「次へ」をクリック
5)ロール名を入力し、「ロールの作成」をクリック
例:
ロール名:postgres-cdc
6)作成したロールのARNをコピーする
5.ターゲットエンドポイントを作成
1)DMS画面で「エンドポイント」→「エンドポイントの作成」をクリック
2)下記を参考にターゲットエンドポイントを作成
例:
・ターゲットエンドポイント
・エンドポイント識別子:target-s3
・ターゲットエンジン:Amazon S3
・Amazon S3 bucket:Browse S3から、上で作成したバケットを選択
・IAM role for S3 bucket:Enter a IAM role ARN
・IAM role ARN:上でコピーしたARNを貼り付ける
・AddColumnName:true(ヘッダーを出力の場合、追加)
Parquetファイルを出力したい場合は、以下を設定
3)上で作成したレプリケーションインスタンスを選択し、「テストの実行」をクリック
4)ステータスがsuccessfulと表示されたら、「エンドポイントの作成」をクリック
6.DMSデータベース移行タスクを作成
1)「データベース移行タスク」→「データ移行タスクを作成」をクリック
2)以下の参考に設定し、「データ移行タスクを作成」をクリック
例:
・タスク識別子:postgres-cdc-task
・レプリケーションインスタンス:上で作成したもの
・ソースデータベースエンドポイント:上で作成したもの
・ターゲットデータベースエンドポイント:上で作成したもの
・移行タイプ:移行と複製
・ソースからターゲットへのレプリケーションをどのくらいの期間継続する予定ですか?:無制限
・ターゲットテーブル準備モード:何もしない
・選択ルール→「新しい選択ルールの追加」
スキーマ:スキーマの入力
ソース名:RDSで作成したスキーマ名
ソーステーブル名:RDSで作成したテーブル名
3)評価と移行の進捗を確認し、成功したら、完了
以上