セルフマネージド MySQL データベースから Amazon Aurora MySQL 互換 DB クラスターへの移行に、Amazon Simple Storage Service (Amazon S3) を使用したいと考えています。
解決策
Percona Xtrabackup をインストールする
MySQL データのディレクトリおよびファイルを直接コピーするには、Percona XtraBackup ツールを使用します。大規模データベースでは、復元を高速化するためにこのツールを利用することをおすすめします。ツールの詳細については、Percona XtraBackup のウェブサイトで「Percona XtraBackup - ドキュメント」を参照してください。
注: Amazon S3 にエクスポートしたスナップショットは、[S3 から復元] オプションでは復元できません。
MySQL 5.7 の移行方法については、Percona XtraBackup のウェブサイトで「Percona XtraBackup 2.4 のインストール」を参照してください。MySQL 8.0 の移行方法については、Percona XtraBackup のウェブサイトで「Percona XtraBackup 8.0 のインストールに関する概要」を参照してください。Percona XtraBackup のバージョンがソースデータベースのエンジンバージョンと互換性があることを確認します。
データをバックアップする
次の手順を実行します。
- MySQL データベースを実行する、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスまたはオンプレミスサーバーに接続します。
- データベースをバックアップするには、次のコマンドを実行します。
xtrabackup --backup --user=myuser --password --stream=xbstream \--target-dir=/on-premises/s3-restore/backup | split -d --bytes=500MB \- /on-premises/s3-restore/backup/backup.xbstream
注: 実際のものでそれぞれ、myuser をソースデータベースのユーザー名に、/on-premises/s3-restore/backup を出力ファイルの作成先ディレクトリに置き換えます。このコマンドでは、複数の xbstream ファイルに分割された MySQL データベースのバックアップを作成します。
一部のリソースは、Aurora ではソースから復元されません。次のリソースは手動で再作成する必要があります。
- ユーザー AWS アカウント
- 関数
- ストアドプロシージャ
- タイムゾーン情報
Percona XtraBackup の詳細については、「バックアップに関する考慮事項」を参照してください。
バックアップを S3 バケットにアップロードする
次の手順を実行します。
- S3 バケットを作成します。
注: バケットは、EC2 インスタンスおよび Aurora DB クラスターと同じ AWS リージョンに配置する必要があります。
- 新しいバケットを選択し、[フォルダの作成] を選択します。
- 新しいフォルダを選択し、[アップロード] を選択します。
- Percona XtraBackup ツールが作成したファイルをアップロードします。
- (オプション) ユースケースに応じて、権限、プロパティなどの追加プロパティを設定します。
- [アップロード] を選択します。
注: S3 バケットにファイルをアップロードする際、サーバー側の暗号化を使用してデータを暗号化できます。
Amazon S3 から Aurora にデータベースをインポートする
次の手順を実行します。
- AWS マネジメントコンソールにサインインし、Aurora and RDS コンソールを開きます。
- ナビゲーションパネルで [ダッシュボード] を選択します。
- [データベースの作成] で [S3 から復元] を選択します。
- [S3 ソース] の [S3 バケット] ドロップダウンリストから、作成した S3 バケットを選択します。
- (オプション) [S3 プレフィックス] に Amazon S3 バケットに保存するファイルのファイルパスプレフィックスを入力します。
重要: バケット名を入力する際、先頭または末尾にスラッシュ (/) を含めないでください。
- [エンジンのバージョン] にソース Aurora MySQL エンジンのバージョンを入力します。それよりも新しいエンジンバージョンを入力することも可能です。
- [IAM ロール] で既存の IAM ロールを選択します。
- (オプション) [新しいロールを作成] を選択し、IAM ロールを新規作成することも可能です。
- 目的のクラスターストレージ構成を選択します。
- 目的のインスタンス構成を選択します。
- [設定] で設定を行います。
- [可用性と耐久性] でマルチ AZ 配置を作成するかどうかを選択します。
- [接続] を参照し、接続設定をレビューします。
- [データベースの作成] を選択します。
- クラスターのステータスが Available になった後、Aurora MySQL DB クラスターが [データベース] に表示されることを確認します。
関連情報
Percona XtraBackup と Amazon S3 を使用して MySQL からの物理的な移行を行う
Percona XtraBackup
バックアップサイクル - 完全バックアップ (Percona XtraBackup のウェブサイト)