Amazon RDS インスタンスのマルチ AZ フェイルオーバーおよび再起動の根本原因分析を実行するにはどうすればよいですか?

最終更新日: 2021 年 9 月 29 日

Amazon Relational Database Service (Amazon RDS) インスタンスのマルチ AZ フェイルオーバーおよび再起動の根本原因を知りたいです。

簡単な説明

データベースインスタンスのマルチ AZ 配置を使用する場合、Amazon RDS ではサブネットに関連付けられている 1 つのアベイラビリティーゾーンでプライマリ DB インスタンスを作成します。次に、RDS が別のサブネットに関連付けられている異なるアベイラビリティーゾーンでスタンバイ DB インスタンスを作成します。詳細については、「Amazon RDS での高可用性 (マルチ AZ) 」を参照してください。

Amazon RDS では、マルチ AZ 配置における一般的な障害シナリオを検出して自動的に復旧させるので、管理者の介入を必要とせずに、データベース操作を可能な限り速やかに再開できます。データベースインスタンスのマルチ AZ 設定を有効にした場合、DB インスタンスの計画的停止または予期しない停止が発生した場合に、Amazon RDS が別のアベイラビリティーゾーンのスタンバイレプリカに自動的に切り替わります。Amazon RDS では、次のいずれかの場合にフェイルオーバーを自動的に実行します。

  • プライマリ利用可能ゾーンの可用性損失
  • プライマリに対するネットワーク接続の喪失
  • プライマリ上でのコンピューティングユニット障害
  • プライマリ上でのストレージ障害

解決方法

ログとメトリクスをチェック

次の点を確認して、停止の根本原因を特定します。

イベント: インスタンスの予期しない停止の根本原因を特定するために、過去 24 時間のすべての Amazon RDS イベントを表示します。デフォルトでは、すべてのイベントが UTC/GMT 時間で登録されます。イベントを長期間保存するには、Amazon RDS イベントを Amazon CloudWatch Events に送信します。詳細については、「Amazon RDS イベントでトリガーするルールの作成」を参照してください。

CloudWatch メトリクス: Amazon RDS インスタンスの CloudWatch メトリクスを表示して、データベースの負荷の問題が停止の原因になっているかどうかをチェックします。詳細については、「Viewing Amazon RDS metrics and dimensions」を参照してください。

次のメトリクスを表示し、スロットリングを確認します。

  • DatabaseConnections
  • CPUUtilization
  • FreeableMemory
  • ReadIOPS
  • WriteIOPS
  • ReadLatency
  • 書き込みレイテンシー
  • DiskQueueDepth

拡張モニタリング: Amazon RDS では、拡張モニタリングのメトリクスをお客様の Amazon CloudWatch Logs アカウントに提供します。これにより、DB インスタンスが実行されているオペレーティングシステム (OS) のメトリクスがリアルタイムで提供されます。DB インスタンスのすべてのシステムメトリクスとプロセス情報をコンソールで表示できます。

拡張モニタリング機能の詳細度は、1、5、10、15、30、または 60 に設定できます。

Amazon RDS インスタンスの拡張モニタリングをオンにするには、「拡張モニタリングの設定と有効化」を参照してください。

Performance Insights: Performance Insights ダッシュボードを使用すると、データベースの負荷を可視化できます。この表示は、待機中、SQL ステートメント、ホスト、またはユーザーによるフィルタリングが可能です。ダッシュボードには、パフォーマンスの問題の分析やトラブルシューティングに役立つデータベースのパフォーマンスに関する情報が含まれています。 DB インスタンスの Performance Insights 機能を有効にすると、メインダッシュボードページでデータベースの負荷に関する情報を表示できます。

インスタンスの Performance Insights ダッシュボードを表示するには、次の操作を行います。

  1. Amazon RDS コンソールを開きます。
  2. ナビゲーションペインで、[Performance Insights] を選択します。
  3. [Performance Insights] ページで、DB インスタンスを選択します。
    この DB インスタンスの Performance Insights ダッシュボードを表示できます。

インスタンスで Performance Insights をオンにした場合、DB インスタンスのリストで [セッション] 項目を選択してダッシュボードを表示することもできます。

詳細については、「Performance Insights ダッシュボードを開く」を参照してください。

ログとイベント: Amazon RDS for Oracle DB インスタンスの停止の原因をトラブルシューティングするには、インスタンスの [ログとイベント] タブにあるアラートログを表示します。

停止の原因を特定

マルチ AZ 環境のイベントログでフェイルオーバーが発生する最も一般的な理由は次のとおりです。

  • The primary host of the RDS Multi-AZ instance is unhealthy (RDS マルチ AZ インスタンスのプライマリホストが異常です): この理由は、プライマリインスタンスへの通信が失われる原因となった、基盤となるハードウェアの一時的な問題を示しています。RDS モニタリングシステムが RDS インスタンスと通信してヘルスチェックを実行できなかったため、この問題によりインスタンスが異常な状態になった可能性があります。
  • The primary host of the RDS Multi-AZ instance is unreachable due to loss of network connectivity (RDS マルチ AZ インスタンスのプライマリホストで、ネットワーク接続が切断されたため、到達できません): この理由は、マルチ AZ フェイルオーバーが、マルチ AZ 配置のプライマリホストに影響を与えた一時的なネットワークの問題によって引き起こされたことを示しています。内部モニタリングシステムがこの問題を検出し、積極的にフェイルオーバーを開始しました。
  • The RDS Multi-AZ primary instance is busy and unresponsive (RDS マルチ AZ プライマリインスタンスはビジーで応答しません)、「The Multi-AZ instance activation started (マルチ AZ インスタンスのアクティベーションが開始されました)」、または The Multi-AZ instance activation completed (マルチ AZ インスタンスのアクティベーションが完了しました): イベントログにこれらのメッセージが表示されるのは、次のような場合です。
    • プライマリ DB インスタンスが応答しません。
    • データベースのメモリ不足により、RDS モニタリングシステムが基盤となるホストに接続できませんでした。
    • DB インスタンスで、基盤となるホストとの間に断続的なネットワークの問題が発生しました。
    • インスタンスでデータベースの負荷が発生しました。この場合、CPUUtilization や DatabaseConnections のスパイク、および Freeablememory の枯渇が発生した可能性があります。
      注: データベースの過負荷による RDS インスタンスのフェイルオーバーおよび再起動を回避するには、データベースインスタンスのメモリパラメータを適切に設定します。
  • The storage volume underlying the primary host of the RDS Multi-AZ instance experienced a failure (RDS マルチ AZ インスタンスのプライマリホストの基盤となるストレージボリュームでエラーが発生しました): このメッセージは、基盤となるストレージハードウェアで問題が発生し、Amazon Elastic Block Store (Amazon EBS) ボリュームのレイテンシーが高くなったことを示しています。プライマリホストがパフォーマンスの低下を検出し、失敗した状態になりました。積極的な措置として、モニタリングシステムがセカンダリへのフェイルオーバーを開始しました。
  • The RDS instance was modified by customer (RDS インスタンスはお客様によって変更されました): このメッセージは、RDS インスタンスの変更によってフェイルオーバーが開始されたことを示しています。
  • The user requested a failover of the DB instance (ユーザーが DB インスタンスのフェイルオーバーをリクエストしました): このメッセージは、お客様がインスタンスを再起動し、[フェイルオーバーで再起動] を選択したことを示しています。

詳細については、「Amazon RDS のフェイルオーバープロセス」を参照してください。

注: RDS インスタンスでフェイルオーバーが発生したときに通知を受けるには、Amazon RDS イベント通知をサブスクライブします。詳細については、「Amazon RDS イベントの購読を作成するにはどうすれば良いですか?」を参照してください。


この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?