1. はじめに
こんにちは!株式会社Definerのライターチームです!
今回は、AWS Database Migration Service(DMS)を使ったPostgreSQLからのデータ移行方法について気になりますよね。
実際の画面や、資源を見ながら詳しく解説していきましょう。
2. 目的・ユースケース
この記事では、AWS Database Migration Service(DMS)でPostgreSQLからのデータ移行を実現したいときに、参考になる情報やプラクティスをまとめています。
3. AWS Database Migration Serviceとは
AWS Database Migration Service(DMS)とは、AWSが提供するリレーショナルデータベースやNoSQL データベース、データウェアハウスなどのDB移行サービスです。
Database Migration Serviceを使うにあたり覚えておくべき用語として、以下の3つがあります。
・Endpoint
データベースへの接続情報の定義です。
ソースDBとターゲットDBの2つ分存在します。
・Replication Instance
ソースDBとターゲットDBを接続し、データ複製タスクが実行されるインスタンスです。
・Replication Task
データ複製の実行単位で、実際にデータ移行が行われている場所です。
また、データの複製方法として、以下の3パターンが存在します。
・フルロード
ソースDBからターゲットDBへ指定したテーブルデータがそのまま移行されます。
・フルロード+CDC(継続的複製)
ソースDBで変更をキャプチャしながら、フルロードが実行されます。
フルロードの完了後は、定期的にキャプチャされた変更がターゲットDBに反映されます。
CDC(継続的複製)
フルロードは行わずに、ソースDBの変更内容を定期的に読み込み、変更データをターゲットDBに反映させます。
PostgreSQLについても、簡単におさらいします。
PostgreSQLは、オープンソース(OSS)のリレーショナルデータベースです。
利用は無料であり、LinuxやMacの他、 Windowsにも対応しています。
非常に自由度の高いライセンスを採用しているため、独自のカスタムをした場合も公開義務はありません。
4. MDSによるPostgreSQLの移行
それでは早速、Database Migration Serviceを試してみます。
前提として、移行元(ソース)となるPostgreSQLのデータベースは存在するものとします。
①移行先(ターゲット)となるRDSの作成
RDSコンソールにアクセスし、「データベース」タブ→「データベースの作成」
「標準作成」→エンジンタイプ「PostgreSQL」
エンジンバージョンは、ソースDBと同じ13.6を選択しました。
テンプレートは、今回は無料利用枠を使用しています。
マスタユーザのIDとパスワードは、後続の作業で必要なので控えておきます。
②DMSのレプリケーションインスタンス作成
DMSコンソールに移動し、「レプリケーションインスタンス」→「レプリケーションインスタンスの作成」
名前やインスタンスクラス、VPCやSecurityGroupなどのネットワーク情報を入力します。
パブリックアクセスは、ソース/ターゲットDBからインターネット経由でレプリケーションインスタンスへ接続する必要がある場合はチェックを入れてください。
作成完了まで、数分ほど待ちます。
③DMSのエンドポイント作成
ソースDBとターゲットDBの2つのエンドポイントを作成する必要があります。
DMSコンソールで、「エンドポイント」→「エンドポイントの作成」
ソースDBは、ユーザID/パスワードなどの接続情報を入力しました。
ターゲットDBはRDSであるため、「RDS DB インスタンスの選択」にチェックを入れました。
④DB移行タスクの作成
DMSコンソールで、「データベース移行タスク」→「タスクの作成」
先ほど作成したエンドポイントとレプリケーションインスタンスを指定します。
データの複製タイプは、今回はフルロードを選択しました。
ステータスが「ロード完了」となれば、レプリケーションは完了です。
DBにログインし、テーブル一覧を確認したところ、DB移行は成功していました。
## postgreSQLへのログイン
psql -p 5432 -d ${データベース名} -U postgres -h ${RDSのエンドポイント}
DBのテーブル一覧を表示
\dt
List of relations
Schema | Name | Type | Owner
--------+-----------------------------+-------+----------
dev | all_employee | table | postgres
dev | all_devision | table | postgres
5. 引用・参考記事
AWS DMS を使用して Amazon Aurora for PostgreSQL のメジャー ...
AWS Database Migration Service(最小限のダウンタイムで ...
はじめてAWS DMSを検討する際に読んでいただきたいこと ...
AWS Database Migration Service のベストプラクティス - AWS ...
AWS DMS を使用して Amazon Aurora for PostgreSQL のメジャー ...
AWS DMS を使用して Amazon Aurora for PostgreSQL のメジャー ...
AWS Database Migration Service のベストプラクティス - AWS ...
AWSへのDB移行/連携を行うには? DBMotoが選ばれる理由 ...
6. 独自ソリューション「PrismScaler」について
PrismScalerは、開発・運用を要さずにたった3ステップで、AWSやAzure、GCPなどのマルチクラウド基盤構築を実現するWebサービスです。
エンジニアの大変な作業を肩代わり
・自動構築
・自動監視
・構成可視化
クラウド基盤に関わる作業を以上のように効率化します。
SRE/DevOpsエンジニアが行う大変な作業を肩代わりします。
高品質な汎用クラウド基盤の実現
・クラウド基盤構築/クラウド移行
・クラウドの保守運用・コスト最適化
など幅広い利用シーンを想定しています。IaaSやPaaSを適切に組み合わせた数百を超える高品質な汎用クラウド基盤を容易に実現できます。
興味を持たれた方には、無料で資料を提供しております。
お気軽にご相談ください。
7. お問合せ
株式会社Definerでは、
・ITの上流から下流まで一気通貫のワンストップソリューションをご提供。
・AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミット。
・少ないエンジニアで事業が成長する仕組みづくりの実現。
・エンジニアが喜ぶ、採用しやすい環境づくりの実現。
・高速なアジャイル開発環境の実現。
・自社プロダクトとしてPrismScalerを展開。
上記事業内容を進行しております。
※「開発者ブログ」では、エンジニアの入門編として有益な情報を無料公開しています。
ご相談やお問い合わせは「株式会社Definer」へ。
8. Definerに関して。
・ Definer Incは、ITの上流から下流まで一気通貫のワンストップソリューションをご提供しております。
・ AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミットしています。
・ DevOpsとCI/CDコンサルティングにより「少ないエンジニアで事業が成長する仕組みづくり」「エンジニアが喜ぶ、採用しやすい環境づくり」「高速なアジャイル開発環境」を実現しています。
・ また、自社プロダクトとしてPrismScalerを展開しております。PrismScalerは、AWS、Azure、GCPなどのマルチクラウド / ITインフラの高品質かつ迅速な、「自動構築」「自動監視」「問題検知」「構成可視化」を実現します。