オンプレミス MySQL データベースを Amazon RDS for MySQL に移行する
Amazon Web Services、Lorenzo Mota
概要
このパターンでは、オンプレミス MySQL データベースを Amazon Relational Database Service (Amazon RDS) for MySQL に移行するガイダンスを提供します。このパターンでは、完全なデータベース移行のための AWS Database Migration Service (AWS DMS)、または mysqldump などのネイティブ MySQL ツールの使用について説明します。このパターンは主に DBA とソリューションアーキテクトを対象としています。小規模または大規模プロジェクトで、テスト手順 (少なくとも 1 回のテストサイクルを推奨) として、または最終的な移行手順として使用できます。
前提条件と制限
前提条件
アクティブな AWS アカウント
オンプレミスデータセンターの MySQL ソースデータベース
制限
データベースサイズの上限: 64 TB
製品バージョン
MySQL バージョン 5.5、5.6、5.7、8.0 サポートされているバージョンの最新リストについては、AWS ドキュメントの「Amazon RDS for MySQL」を参照してください。AWS DMS を使用中の場合は、AWS DMS でサポートされている MySQL バージョンの「Using a MySQL-Compatible Database as a Target for AWS DMS」も参照してください。
アーキテクチャ
ソーステクノロジースタック
オンプレミス MySQL データベース
ターゲットテクノロジースタック
MySQL を実行中の Amazon RDS DB インスタンス
ターゲットアーキテクチャ
次の図は、移行後の Amazon RDS for MySQL のターゲット実装を示しています。

AWS データ移行アーキテクチャ
を使用する::AWS DMS
次の図は、AWS DMS を使用してカットオーバーまですべての変更と増分変更を送信する場合のデータ移行アーキテクチャを示しています。オンプレミスから AWS へのネットワーク接続は要件によって異なり、このパターンの対象外です。

ネイティブ MySQL ツールを使用する:
次の図は、ネイティブ MySQL ツールを使用する場合のデータ移行アーキテクチャを示しています。エクスポートダンプファイルは Amazon Simple Storage Service (Amazon S3) にコピーされ、カットオーバーの前に AWS の Amazon RDS for MySQL データベースにインポートされます。オンプレミスから AWS へのネットワーク接続は要件によって異なり、このパターンの対象外です。

注記:
ダウンタイムの要件とデータベースのサイズによっては、AWS DMS または変更データキャプチャ (CDC) ツールを使用すると、カットオーバー時間を最小限にできます。AWS DMS は、新しいターゲットまでのカットオーバー時間を最小 (通常は数分) に短縮できます。データベースのサイズとネットワークのレイテンシーを考慮したうえで短時間許容できる場合は、mysqldump によるオフライン戦略で十分です。(おおよその時間を把握するためにテストすることをお勧めします。)
通常、AWS DMS などの CDC 戦略では、オフラインオプションよりも多くのモニタリングと複雑さが求められます。
ツール
AWS のサービス: AWS Database Migration Service (AWS DMS) を使用すると、AWS クラウドに、またはクラウドセットアップとオンプレミスセットアップの組み合わせの間にデータを移行できます。AWS DMS でサポートされている MySQL ソースデータベースとターゲットデータベースの詳細については、「Migrating MySQL-Compatible Databases to AWS」を参照してください。ソースデータベースが AWS DMS でサポートされていない場合は、別の方法を選択してデータを移行する必要があります。
ネイティブ MySQL ツール: mysqldump
サードパーティツール: Percona XtraBackup
エピック
| タスク | 説明 | 必要なスキル |
|---|---|---|
データベースのバージョンを検証します。 | ソースとターゲットデータベースのバージョンを検証します。 | DBA |
ハードウェア要件を特定します。 | ターゲットサーバーのハードウェア要件を特定します。 | DBA、システム管理者 |
ストレージ要件を特定します。 | ターゲットデータベースのストレージ要件 (ストレージタイプ、容量など) を特定します。 | DBA、システム管理者 |
インスタンスタイプを選択します。 | 容量、ストレージ機能、ネットワーク機能に基づいてターゲットインスタンスのタイプを選択します。 | DBA、システム管理者 |
ネットワークアクセス要件を特定します。 | ソースとターゲットデータベースのネットワークアクセスのセキュリティ要件を特定します。 | DBA、システム管理者 |
サポートされていないオブジェクトを特定します。 | サポートされていないオブジェクト (ある場合) を特定し、移行作業を決定します。 | DBA |
依存関係を特定します。 | リモートデータベースへの依存関係を特定します。 | DBA |
アプリケーション移行戦略を決定します。 | クライアントアプリケーションの移行戦略を決定します。 | DBA、アプリ所有者、システム管理者 |
| タスク | 説明 | 必要なスキル |
|---|---|---|
仮想プライベートクラウド (VPC) を作成します。 | ルートテーブル、インターネットゲートウェイ、NAT ゲートウェイ、サブネットを設定します。詳細については、Amazon RDS ドキュメントの VPC および Amazon RDS を参照してください。 | システム管理者 |
セキュリティグループを作成します。 | 要件に応じて、ポートと CIDR 範囲、または特定の IP を設定します。MySQL のデフォルトポートは 3306 です。詳細については、Amazon RDS ドキュメントのセキュリティグループでアクセスをコントロールするを参照してください。 | システム管理者 |
Amazon RDS for MySQL DB インスタンスを設定して起動します。 | 手順については、Amazon RDS ドキュメントの Amazon RDS DB インスタンスを作成するを参照してください。サポートされているバージョンを確認します。 | システム管理者 |
| タスク | 説明 | 必要なスキル |
|---|---|---|
ネイティブ MySQL ツールまたはサードパーティツールを使用して、データベースオブジェクトとデータを移行します。 | 手順については、mysqldump オプションの詳細については、ブログ投稿 MySQL 用の Amazon RDS for MySQL または Amazon Aurora MySQL への移行オプション | DBA |
| タスク | 説明 | 必要なスキル |
|---|---|---|
AWS DMS を使用してデータを移行します。 | 手順については、AWS DMS ドキュメントを参照してください。 | DBA |
| タスク | 説明 | 必要なスキル |
|---|---|---|
オブジェクト数の不一致を修正します。 | ソースデータベースと新しいターゲットデータベースからオブジェクト数を収集します。ターゲットデータベースの不一致を修正します。 | DBA |
依存関係を確認します。 | 他のデータベース間の依存関係 (リンク) が有効で、予想どおりに機能しているかどうかを確認します。 | DBA |
テストを実行します。 | テストサイクルの場合は、クエリテストを実行し、メトリクスを収集し、問題を修正します。 | DBA |
| タスク | 説明 | 必要なスキル |
|---|---|---|
ターゲットデータベースに切り替えます。 | クライアントアプリケーションを新しいインフラストラクチャに切り替ます。 | DBA、アプリ所有者、システム管理者 |
テストサポートを提供します。 | 機能アプリケーションテストをサポートします。 | DBA |
| タスク | 説明 | 必要なスキル |
|---|---|---|
リソースをシャットダウンします。 | 移行用に作成した一時的な AWS リソースをシャットダウンします。 | DBA、システム管理者 |
プロジェクト文書を検証します。 | プロジェクト文書を確認して検証する。 | DBA、アプリ所有者、システム管理者 |
メトリクスを収集します。 | 移行の所要時間、手動作業と自動作業の割合、コスト削減などのメトリクスを収集します。 | DBA、アプリ所有者、システム管理者 |
プロジェクトを終了します。 | プロジェクトを終了し、フィードバックを提供します。 | DBA、アプリ所有者、システム管理者 |
ソースデータベースを運用停止します。 | 移行タスクとカットオーバータスクがすべて完了したら、オンプレミスデータベースの使用を停止します。 | DBA、システム管理者 |
関連リソース
リファレンス
チュートリアル