1. ホーム
  2. mysql

[解決済み] Amazon RDSのバックアップ/スナップショットは実際にどのように機能するのでしょうか?

2023-01-03 05:40:51

質問

私は Amazon RDS の顧客で、バックアップウィンドウにほぼ対応する、毎日の amazon RDS の書き込みレイテンシのスパイクを経験しています。また、スナップショットの終了時にスパイクが発生します (例: スナップショットの実行に約 1 時間かかり、最後の 5 分間に書き込みレイテンシが急増します)。私は、マルチAZ m1.large デプロイメントを実行しています。

Amazon RDS のバックアップがどのようなものかを説明できる人は Stack にいますか? 実際に がどのように動作しているのかを説明できる Stack の人がいますか? 私はAmazon RDSのドキュメントを読みましたが、私が知る限りでは、Amazon RDSは仕様に従って動作していません。具体的には、これらのバックアップ/スナップショット操作は私のレプリカに当たるはずで、したがって、ダウンタイム/パフォーマンスのヒットは発生しない、または、そう思っていました。

私の問題は、6 つの質問にまとめることができます。

  • スナップショットとバックアップの間に技術的に何が起こっているのか、そして、それらはどのように違うのか。(この質問に答える場合、あなたの答えを経験的に確認することができるかどうか、または単に私のドキュメントを引用しているかどうかを教えてください)。
  • multi-AZ 展開でバックアップ ウィンドウ中に書き込み待ち時間のスパイクが発生することは予想されますか?
  • マルチ AZ 展開では、スナップショットの終了時に書き込みレイテンシーが急増することが予想されますか?
  • multi-AZ でない場合、書き込みレイテンシのスパイクはさらに高くなりますか?
  • アーキテクチャ的に、2 つの m1.large EC2 インスタンス上で動作する独自のデータベースをロールバックした場合、これらの書き込みレイテンシのスパイクを回避することは可能ですか?
  • RDS で DB をホストしながら、これらの書き込みレイテンシのスパイクを回避するために使用できる構成はありますか、または、私は事実上 Amazon のなすがままになっていますか?

ボーナス質問:どこで、どのように、あなたの mysql データベースをホストしていますか?

私は、毎日の書き込み遅延の問題を除いて、RDS に概して満足していると言うことができます。私は、組み込みのデータベース監視が大好きで、セットアップと実行はかなり簡単でした。

ありがとうございます!

どのように解決するのですか?

私たちは、私たち自身が管理するいくつかのマシン上の MySQL に加えて、いくつかの RDS インスタンスを実行しています。私は Amazon のエンジニアではないので、特にコメントすることはできませんが、あなたが見ているものを説明するかもしれない、私が学んだいくつかの事柄があります。

  • Amazon はバックエンドの詳細を 100% 共有しませんが、RDS データベースをバックアップするために EBS システムを使用していることが強く疑われます。

  • この記事は、EBS の制限とスナップショット機能についての説明に役立ちます。 http://blog.rightscale.com/2008/08/20/amazon-ebs-explained/ 繰り返しになりますが、明示されていないものの、Amazon がこのインフラストラクチャを使用して RDS サービスを提供することは理にかなっています。

  • 通常、MySQL のバックアップは、スナップショットとは対照的に、mysqldump のようなツールを使用して、データベースを再現する SQL ステートメントのファイルを作成することを含みます。この際、データベースをフリーズさせる必要はありません。EBS バックエンドでは、データの破損を避けるために、スナップショット中にデータベースをフリーズ(すべてのトランザクションを一時停止)することがベスト プラクティスです。

  • バックアップウィンドウの端に表示されているスパイク。レプリカのスナップショット中に Amazon によってレプリケーションが一時停止されると、レプリカはスナップショットが完了したときにトランザクションに "catch up" する必要が生じます。これは、遅延スパイクの原因となります。

  • 複数の AZ デプロイメントにわたるレプリケーションは、単一の AZ デプロイメントよりも本質的に低速です。これは、より良い冗長性のために支払う代償です。