Aurora MySQL 互換のスナップショット復元に関する問題のトラブルシューティングと解決方法を教えてください。
Amazon Aurora MySQL 互換エディション DB クラスターをスナップショットまたはバックアップから復元したいのですが、問題が発生しています。
簡単な説明
Aurora MySQL 互換 DB クラスター全体をスナップショットまたはバックアップから復元するには、さまざまなオプションがあります。Aurora と Amazon Relational Database Services (Amazon RDS) コンソールを使用して、DB クラスター全体をスナップショットから復元したり、ポイントインタイムリカバリ (PITR) から復元したりできます。AWS Backup を使用して PITR からの自動バックアップと復元を管理することもできます。または、データベースの Aurora クローンを作成することもできます。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI のエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
Aurora と RDS コンソールを使用してスナップショットから復元する
スナップショットを作成すると、Aurora は DB クラスター全体をバックアップします。Aurora では、クラスター内の個々の DB インスタンスのスナップショットを作成することはできません。
簡単な復元操作には、Aurora と RDS コンソールを使用してください。Aurora と RDS コンソールを使用して DB クラスタースナップショットから復元すると、Aurora は新しいクラスターを作成し、ライターインスタンスをプロビジョニングします。スナップショットを既存のクラスターに復元することはできません。
restore-db-cluster-from-snapshot コマンドを使用してスナップショットからクラスターを復元することもできますが、この方法ではクラスターが作成されるだけです。次に、create-db-instance コマンドを使用して、クラスターのライターインスタンスとリーダーインスタンスを作成します。
復元が完了すると、新しいクラスターのエンドポイントは元のクラスターのものとは異なります。本番稼働クラスターを置き換える際のダウンタイムを最小限に抑えるには、次の手順を実行します。
- クラスターに復元するときは、original-cluster-name-new などの新しい名前を使用します。
- 既存のクラスターの名前を original-cluster-name-old に変更します。
注: クラスターの名前を変更すると、1 ~ 3 分のダウンタイムが発生します。 - 新しいクラスターの名前を元の名前に変更します。
また、新しいクラスターに復元した後に、必要なマルチアベイラビリティーゾーンのリーダーインスタンスを新しいクラスターに手動で追加して設定する必要があります。
新しいクラスターにリーダーインスタンスを追加するには、次の手順を実行します。
- Aurora と RDS コンソールを開きます。
- ナビゲーションペインで [データベース] をクリックし、新しいクラスターを選択します。
- 新しいプライマリインスタンスのステータスが [使用可能] になるのを待ってから、[アクション] をクリックします。
- 同じ AWS リージョンの新しいクラスターにリーダーを追加するには、[リーダーの追加] をクリックします。
- クロスリージョンのリードレプリカを設定するには、[クロスリージョンのリードレプリカを作成] を選択します。
復元が遅くなるのを防ぐ
ボリュームサイズが大きい場合、インスタンスクラスの I/O サイズが小さい場合、またはネットワーク帯域幅が不十分な場合は、クラスターの復元に時間がかかります。また、ターゲットデータベースの最大ストレージスループットが復元速度に影響する可能性があります。
Aurora MySQL 互換クラスターの復元にかかる時間を最小限に抑えるには、次の操作を行います。
- 元のクラスターの RollbackSegmentHistoryListLength (HLL) の値を確認します。HLL 値が高いと、取り消しレコード数が多いことを示し、復元が遅くなる可能性があります。この問題を解決するには、CloudWatch の HLL メトリクスをモニタリングし、値を低く抑えてください。
- 復元のパフォーマンスを向上させるには、ストレージスループットとネットワーク帯域幅が大きいインスタンスクラスを選択してください。
- ワークロードの少ない時間帯にスナップショットを作成します。データベース内のアクティビティが少ないときにスナップショットを作成すると、復元中に Aurora が処理する取り消しレコードを減らすことができます。
- トランザクションをより小さなバッチでコミットします。実行時間の長いトランザクションを小さい単位に分割すると、取り消しログのサイズを減らすことができます。
- 実行時間の長いトランザクションを避けて、スナップショットを作成します。実行時間が長いトランザクションでは、Amazon RDS が復元中に処理しなければならない取り消しレコードが多く生成されます。
PITR 用の AWS Backup を使用する
AWS Backup を使用してスナップショットを作成すると、スナップショットには awsbackup:job-AWS-Backup-job-number という名前が付きます。これらのスナップショットは手動 DB クラスタースナップショットと見なされますが、Aurora の DB クラスタースナップショットクォータにはカウントされません。
AWS Backup を使用して PITR の自動バックアップを管理することもできます。AWS Backup が管理する自動バックアップには、continuous:cluster-AWS-Backup-job-number という名前が付いています。PITR を有効にするには、バックアップルールで継続的バックアップを有効にする必要があります。
AWS Backup コンソールを使用して、AWS Backup プランに関連付けられているクラスターを復元します。AWS Backup コンソールを使用してクラスターを復元したら、プライマリライター DB インスタンスを追加する必要があります。これを行うには、AWS CLI コマンド create-db-instance を実行します。--db-cluster-identifier を、復元された DB クラスターの名前に置き換えてください。
バックアップの失敗
AWS Backup で使用するポリシーの AWS Identity and Access Management (IAM) アクセス許可が不十分な場合、バックアップが失敗することがあります。この問題を解決するには、IAM ロールまたはユーザーが AWS Backup を使用してバックアップ操作を実行するために必要なアクセス許可を持っていることを確認します。backup:StartBackupJob アクセス許可を付与する IAM ポリシーを IAM ロールまたはユーザーにアタッチする必要があります。
バックアップの失敗は、IAM ロールまたはユーザーがバックアップ操作用の AWS Key Management Service (AWS KMS) キーにアクセスできない場合にも発生する可能性があります。Aurora クラスターが保管時に暗号化を使用する場合は、IAM ロールまたはユーザーがクラスターストレージを暗号化する AWS KMS キーにアクセスして使用できることを確認してください。キーリソースポリシーで kms:GenerateDataKey アクセス許可を付与する必要があります。
復元の失敗
バックアップスナップショットから Aurora MySQL 互換クラスターを復元しようとすると、次の理由により "Incompatible-restore" エラーが表示されることがあります。
- 新しいクラスターに復元するときに Aurora がサポートしていない一時テーブルまたは MyISAM テーブルがソースデータベースに含まれている。この問題を解決するには、スナップショットを作成する前にこれらのテーブルを削除してください。
- ソースデータベースで外部キーの制約が一貫していなかったり、周期的だったりすると、復元が正常に行われないことがあります。この問題を解決するには、スナップショットを作成する前に制約を修正してください。
- ターゲットクラスターのエンジンバージョンに互換性がない。この問題を解決するには、ターゲットの Aurora MySQL エンジンのバージョンが、スナップショットの作成に使用するバージョンと互換性があることを確認します。新しいクラスターのエンジンバージョンをアップグレードする場合は、まず互換性のあるバージョンに復元してください。次に、復元したクラスターをアップグレードします。
- ネットワーク構成が正しくない。復元プロセス中に指定する仮想プライベートクラウド (VPC)、サブネットグループ、およびセキュリティグループの設定が、目的のターゲット環境と一致していることを再確認してください。
- IAM ロールまたはユーザーに AWS KMS キーへのアクセス許可がない。スナップショットが暗号化を使用している場合は、IAM ロールまたはユーザーに、指定された AWS KMS キーにアクセスして復号に使用するアクセス許可があることを確認します。
Aurora クローンを作成する
別の方法として、データベースの Aurora クローンを作成できます。データベースクローニングを使用すると、最小限の追加スペースでデータベースのコピーをすばやく作成できます。データは変更が発生したときにのみコピーされます。
関連情報
Amazon Aurora バックアップストレージの使用状況を確認する
Amazon Aurora DB クラスターのクローン、スナップショット復元、またはポイントインタイム復元に時間がかかるのはなぜですか?
- 言語
- 日本語
