1. はじめに
こんにちは!株式会社Definerのライターチームです!
今回は、MySQLをCloud SQLからRDSに移行する方法について気になりますよね。
実際の画面や、資源を見ながら詳しく解説していきましょう。
2. 目的・ユースケース
この記事では、MySQLをCloud SQLからRDSに移行したいときに、参考になる情報やプラクティスをまとめています。
3. AWS Database Migration Serviceとは
Google CloudからAWSへのDB移行には、AWS Database Migration Service(DMS)を使用します。
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に反映させます。
4. RDSのセットアップ
それでは早速、Database Migration Service(DMS)を使ってGoogle CloudからAmazon RDSへデータ移行を行っていきます。
前提として、移行元(ソース)のCloud SQLは存在するものとします。
①サブネットグループの作成
RDSを作成するために、サブネットグループを作成します。
②移行先のRDS作成
以下コマンドでMySQL DBを作成します。
## DBサブネットグループの作成
aws rds create-db-subnet-group \
--db-subnet-group-name subg-test \
--db-subnet-group-description test \
--subnet-ids subnet-xxxxxxxx subnet-yyyyyyy
## RDSの作成
aws rds create-db-instance \
--db-instance-identifier mysql-test \
--db-instance-class db.t3.micro \
--engine mysql \
--engine-version 8.0.28 \
--allocated-storage 20 \
--master-username root \
--master-user-password password \
--backup-retention-period 3 \
--vpc-security-group-ids sg-xxxxxx \
--db-subnet-group-name subg-test
5. Cloud SQLからRDSへデータ移行
続いて、DMSでDBを移行していきます。
①DMSのレプリケーションインスタンス作成
DMSコンソールに移動し、「レプリケーションインスタンス」→「レプリケーションインスタンスの作成」
名前やインスタンスクラス、VPCやSecurityGroupなどのネットワーク情報を入力します。
パブリックアクセスは、ソース/ターゲットDBからインターネット経由でレプリケーションインスタンスへ接続する必要がある場合はチェックを入れてください。
作成完了まで、数分ほど待ちます。
②DMSのエンドポイント作成
ソースDBとターゲットDBの2つのエンドポイントを作成する必要があります。
DMSコンソールで、「エンドポイント」→「エンドポイントの作成」
ソースDBのエンドポイントには、Cloud SQLの接続情報を入力します。
ターゲットDBはRDSなので、「RDS DB インスタンスの選択」にチェックを入れます。
③DB移行タスクの作成
DMSコンソールで、「データベース移行タスク」→「タスクの作成」
先ほど作成したエンドポイントとレプリケーションインスタンスを指定します。
データの複製タイプは、今回はフルロードを選択しました。
ステータスが「ロード完了」となれば、レプリケーションは完了です。
DBにログインし、テーブル一覧を確認すると、DB移行が成功してることが確認できます。
## MySQLへのログイン
mysql -u ${ユーザ名} -p ${パスワード} -h ${ホスト名}
## MySQLにログイン後、テーブル一覧を参照
show tables;
6. 引用・参考記事
7. 独自ソリューション「PrismScaler」について
PrismScalerは、開発・運用を要さずにたった3ステップで、AWSやAzure、GCPなどのマルチクラウド基盤構築を実現するWebサービスです。
エンジニアの大変な作業を肩代わり
・自動構築
・自動監視
・構成可視化
クラウド基盤に関わる作業を以上のように効率化します。
SRE/DevOpsエンジニアが行う大変な作業を肩代わりします。
高品質な汎用クラウド基盤の実現
・クラウド基盤構築/クラウド移行
・クラウドの保守運用・コスト最適化
など幅広い利用シーンを想定しています。IaaSやPaaSを適切に組み合わせた数百を超える高品質な汎用クラウド基盤を容易に実現できます。
興味を持たれた方には、無料で資料を提供しております。
お気軽にご相談ください。
8. お問合せ
株式会社Definerでは、
・ITの上流から下流まで一気通貫のワンストップソリューションをご提供。
・AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミット。
・少ないエンジニアで事業が成長する仕組みづくりの実現。
・エンジニアが喜ぶ、採用しやすい環境づくりの実現。
・高速なアジャイル開発環境の実現。
・自社プロダクトとしてPrismScalerを展開。
上記事業内容を進行しております。
※「開発者ブログ」では、エンジニアの入門編として有益な情報を無料公開しています。
ご相談やお問い合わせは「株式会社Definer」へ。
9. Definerに関して。
・ Definer Incは、ITの上流から下流まで一気通貫のワンストップソリューションをご提供しております。
・ AIやクラウドのITインフラなど、先進的なIT技術のコンサルティングから要件定義 / 設計開発 / 実装、保守運用に至るまでの統合的な支援にコミットしています。
・ DevOpsとCI/CDコンサルティングにより「少ないエンジニアで事業が成長する仕組みづくり」「エンジニアが喜ぶ、採用しやすい環境づくり」「高速なアジャイル開発環境」を実現しています。
・ また、自社プロダクトとしてPrismScalerを展開しております。PrismScalerは、AWS、Azure、GCPなどのマルチクラウド / ITインフラの高品質かつ迅速な、「自動構築」「自動監視」「問題検知」「構成可視化」を実現します。