Amazon Simple Storage Service (Amazon S3) を使用して、セルフマネージド MySQL データベースから Amazon Aurora MySQL 互換エディション DB クラスターにデータを移行しようとしています。
解決策
Percona Xtrabackupをインストールする
MySQL データディレクトリとそのファイルを直接コピーするには、Percona XtraBackup ツールを使用します。復元時間を短縮するには、このツールは 100 ギガバイト (GB) を超えるデータベースに使用することをおすすめします。ツールの詳細については、Percona XtraBackup のウェブサイトで「Percona XtraBackupについて」を参照してください。
注: [S3 から復元] オプションを使用して Amazon 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 アカウント
- 関数
- ストアドプロシージャ
- タイムゾーン情報
バックアップを S3 バケットにアップロードする
次の手順を実行します。
- S3 バケットを作成します。
注: バケットは、EC2 インスタンスおよび Aurora DB クラスターと同じ AWS リージョンに配置する必要があります。
- 新しいバケットを選択し、[フォルダの作成] を選択します。
- 新しいフォルダを選択し、[アップロード] を選択します。
- Percona XtraBackup ツールが作成したファイルをアップロードします。
(オプション) ユースケースに応じて、アクセス許可やプロパティなどの追加プロパティを設定します。
- [アップロード] を選択します。
注: S3 バケットにファイルをアップロードする際、サーバー側の暗号化を使用してデータを暗号化できます。
Amazon S3 から Aurora にデータベースをインポートする
次の手順を実行します。
- Amazon Relational Database Service (Amazon RDS) コンソールを開きます。
- ナビゲーションペインで [ダッシュボード] を選択します。
- [S3 から Aurora DB クラスターを復元する] を選択します。
- [ソースエンジンのバージョン] にソース MySQL エンジンのバージョンを入力します。それよりも新しいエンジンバージョンを入力してもかまいません。
- [S3 バックアップの場所] ドロップダウンリストで、作成した S3 バケットを選択します。
- [S3 バケットのプレフィックス] にバケット名を入力します。
重要: バケット名を入力する際、先頭または末尾にスラッシュ (/) を使用しないでください。
- Amazon RDS が S3 バケットにアクセスできるようにする AWS Identity and Access Management (IAM) ロールを作成してから、[次のステップ] を選択します。
- DB インスタンスの詳細を設定し、[次のステップ] を選択します。
- [詳細設定] と [データベースオプション] を設定します。[DB クラスター識別子] に該当する IAM ロールを入力します。
- [DB インスタンスを起動] を選択します。
- クラスターが Available 状態になるまで待ちます。次に、[DB インスタンスを表示] を選択し、Aurora DB インスタンスが作成済みであることを確認します。
関連情報
バックアップサイクル - 完全バックアップ (Percona XtraBackup のウェブサイト)
外部の MySQL データベースから Amazon Aurora MySQL DB クラスターにデータを移行する
Percona XtraBackup と Amazon S3 を使用して MySQL からの物理的な移行を行う