12

最近、本番環境のサービスに Amazon RDS マルチ AZ 配置を使用することを検討しており、関連ドキュメントを読みました。

ただし、フェイルオーバーについて質問があります。Amazon RDS の FAQ では、フェイルオーバーは次のように説明されています。

Q: マルチ AZ フェイルオーバー中に何が起こり、どのくらいの時間がかかりますか?

フェイルオーバーは Amazon RDS によって自動的に処理されるため、管理者の介入なしでできるだけ早くデータベース操作を再開できます。フェイルオーバーの際、Amazon RDS は単に DB インスタンスの正規名レコード (CNAME) を反転してスタンバイを指すようにし、これが新しいプライマリに昇格します。ベスト プラクティスに従い、アプリケーション層でデータベース接続の再試行を実装することをお勧めします。フェールオーバー時間は、クラッシュ リカバリが完了するまでの時間の関数です。開始から終了まで、フェイルオーバーは通常 3 分以内に完了します。

上記の説明から、プライマリ インスタンスの障害を検出してフリッピングを実行できる監視サービスが必要であると推測されます。

私の質問は、この監視サービスがホストされている AZ はどれですか? 3 つの可能性があります。 1. プライマリと同じ AZ 2. スタンバイと同じ AZ 3. 別の AZ

どうやら 1&2 は当てはまらないようです。なぜなら、AZ 全体が利用できないという状況を処理できなかったからです。では、3 の場合、監視サービスの AZ がダウンした場合はどうなるでしょうか。この監視サービスを監視する別のサービスはありますか? 無限のドミノのようです。

では、Amazon はマルチ AZ 配置で RDS の可用性をどのように確保しているのでしょうか?

4

4 に答える 4

0

フェールオーバー インスタンスが存在する場所は特定できませんでしたが、プライマリは US-West-2c にあり、セカンダリは US-West-2b にあります。

PostgreSQL を使用すると、Amazon ボリュームの物理的な問題が原因でデータが破損しました (私たちが知る限り)。当時はマルチ AZ がセットアップされていなかったため、復旧するには、イベントにできるだけ近い時点でポイントインタイム リストアを実行する必要がありました。Amazon のサポートは、マルチ AZ を進めていれば、他の AZ に自動的にロールオーバーされることを保証してくれました。これは、彼らがどのようにそれを判断できたのか、そしてデータの破損が他の AZ に伝播したのかという疑問を投げかけます。

そのため、読み取り専用のレプリカも追加しました。また、読み取りやその他の機能にも RO レプリカを使用します。Amazon の担当者からの私の理解では、マルチ AZ 設定は RAID の状況に似ていると考えることができます。

于 2015-04-21T18:30:26.743 に答える
0

根拠のある推測 - 監視サービスはすべての AZ で実行され、実行中のインスタンスの共有リストを参照します (これは AZ 間で同期複製されます)。ある AZ の監視サービスが、別の AZ がダウンしていることに気付くとすぐに、実行中のすべてのインスタンスの CNAME を、現在アップしている AZ に切り替えます。

于 2012-07-05T10:56:38.367 に答える
0

ドキュメントによると、次の条件が満たされている場合、フェイルオーバーが発生します。

  • プライマリ アベイラビリティ ゾーンでの可用性の喪失
  • プライマリへのネットワーク接続の喪失
  • プライマリでのコンピューティング ユニットの障害
  • プライマリでのストレージ障害

これは、モニタリングが同じ AZ にないことを示しています。ほとんどの場合、リードレプリカは mysql 関数 ( https://dev.mysql.com/doc/refman/5.7/en/replication-administration-status.html ) を使用してマスターのステータスを監視し、マスターに到達できなくなります。

もちろん、これには、レプリカ AZ に障害が発生した場合にどうなるかという疑問が伴います。Amazon は、レプリカの障害検出をチェックして、レプリカが失敗しているか、プライマリが失敗しているかを判断する可能性が最も高いです。

于 2015-11-23T20:23:21.947 に答える