Microsoft Azure

Azureの障害情報を素早く検知する方法【システムの可用性を上げよう】

こんにちは、インフラエンジニアのryuです。

今回はAzureの障害情報を素早く検知する方法を解説します。7/1にAzureのSQLデータベースに障害が発生しました。その時、システムが停止してしまいました。システム停止させないようにするために、障害を素早く検知する方法をお伝えします。

Azureの障害情報を素早く検知する方法

7/1にAzureのSQLサーバーで障害が発生しました。障害の概要は以下の通りです。

Summary of Impact: Between 09:24 and 11:15 UTC on 01 Jul 2020, a subset of customers using Azure SQL Database, Azure SQL Data Warehouse/Synapse Analytics, Azure Database for MySQL, Azure Database for PostgreSQL, and Azure Database for MariaDB in Japan East may have experienced service connection failures or possible timeouts. Services utilizing SQL Databases may have also been impacted

https://status.azure.com/ja-jp/status/history/

障害が発生したときに、システムを止めないようにするためには、素早く障害を検知することが重要です。

今回の記事では、障害をいかにして検知するかを紹介します。

Azureの障害を素早く検知する方法は以下の通りです。

  • Azureの状態で監視
  • Azureのメトリックでアラート設定をする
  • Twitterの情報

これらの内容について詳しく解説します。

Azureの状態で監視

まず、Azureの状態で監視する方法です。

Azureの状態はこちらのサイトで確認することができます。

https://status.azure.com/ja-jp/status/

Azureの状態を確認する

2分間隔でAzureの状態を確認することができます。また、RSSで最新情報を受け取ることも可能です。

ちなみに何か障害が発生した場合、その原因の詳細は、状態の履歴および根本原因分析 (RCA)から確認することが可能です。

Azureの状態監視

また、正常性アラートのセットアップで、個別のコンポーネントに対して通知設定をすることが可能です。

その他、参考になりそうなドキュメントのリンクを貼っておきます。ぜひご覧ください。

Azure ポータルを使用してサービス通知にアクティビティ ログ アラートを作成する

サービス正常性アラートを設定するためのベスト プラクティス

Azureのメトリックでアラート設定をする

次にAzureのメトリックでアラート設定をする方法です。

Azureのコンポーネントで障害が発生した場合、何かしらの通信エラーやプログラムの例外処理が出ると思います。

それらの値を監視し、閾値を超えたら通知を出すという方法です。

通知の設定方法は、「メトリック」→「新しいアラートルール」で設定可能です。

メトリックから障害を検知する

詳しい設定方法は、こちらのドキュメントを参考にしてください。

https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/alerts-metric-overview

Twitterの情報で障害を検知する

最後に、Twitterの情報で障害を検知する方法です。

これは、エンジニアの方が障害があったときに、呟いてくれた内容から検知する方法です。

Twitterの情報から、日本各地で起きている障害なのかどうかすぐに分る場合があります。

7/1に起きたSQLサーバーの障害もTwitterを見たら、東日本全体で影響が出ていることだと把握することができました。Azureの公式サイトよりも早い情報を得ることも可能です。

Azureの障害情報を検知する方法まとめ

最後にまとめです。

今回はAzureの障害情報を検知する方法を紹介しました。

  • Azureの状態で監視
  • Azureのメトリックでアラート設定をする
  • Twitterの情報

障害を素早く検知して、システムが止まらないように対処しましょう。もし、Azureの東日本リージョンで障害が起きた場合は、外国のデータセンターにフェールオーバーさせると良いですね。

このように、何か障害があった場合でもシステムが止まらないように設計することも重要です。インフラエンジニアとして、可用性も考慮してインフラの設計ができるようになりたいですね。

ABOUT ME
ryu
大手メーカのIT部門でインフラエンジニアやってます。 サーバ、ネットワーク、セキュリティ、クラウドについて投稿します。 AI、ARも勉強中です! youtubeでも技術ネタを発信していきます。↓のアイコンよりご覧ください!