「Azureで障害が発生したらどのようにして被害を小さくできるだろうか。」
当記事をお読みのあなたは上記の考えをお持ちではないでしょうか。当記事ではAzureで発生した最近の障害履歴や、障害情報の取得方法を解説します。また障害発生時にやるべきことや、障害の予防策も解説していますので、ぜひ参考にしていただき、Azureの運用に役立ててください。
Azure過去の障害履歴
障害の対策のためには、どのような障害があるのかを知るべきです。Azureではどのような障害が発生するのかを知るために、実際に発生した障害を確認しましょう。Azureの過去の障害履歴として、下記の日付に発生した障害を紹介します。
- 2023年8月30日
- 2023年7月7日
- 2023年1月25日
- 2021年3月16日
2023年8月30日に起こった障害
2023年8月30日に発生したAzureの障害の原因は、オーストラリアのシドニーにあるAzureのデータセンターで発生した停電です。停電はデータセンターの近くで発生した雷によって引き起こされました。停電によって一部のインフラに影響を及ぼしています。中でも冷却装置による冷却が間に合わなかったことで、Azureの複数のサービスに影響してしまいました。
この障害発生時は、データセンターに従業員が3人しかいなかったとのことです。人数が多ければ冷却が間に合い、防げた障害であったと発表しています。よってMicrosoftは再発防止策として、各時間帯の従業員の増加や緊急時の対応手順の見直しをすると述べました。
2023年7月7日に起こった障害
2023年7月7日に発生したAzureの障害はモニタリングサービスであるAzure Monitorのデータ欠損、取得遅延です。Azure Monitorに障害が発生してしまった理由は、基盤への負荷集中によって一部の内部処理に失敗し、連鎖的に処理が失敗してしまったことでした。この障害によってAzure Monitorの各種サービスに影響を及ぼしています。
再発防止策として、基盤側のサーバー増強を実施して負荷集中に耐えられる構成にアップグレードしています。
2023年1月25日に起こった障害
2023年1月25日に発生したAzureの障害は、Azureが提供するネットワークの障害による、通信遅延や断続的な接続です。障害の発生理由は、ルーターのハードウェア故障によるものです。その結果、一部のパケットがドロップする事象が発生していました。
Azureのネットワーク設計は冗長化されており、ハードウェア故障にも対応できるよう対策しています。しかし、故障の予兆がなかったために、原因特定が遅れたことが事象回復までに時間がかかった理由です。再発防止に向けて、手順の改善や故障の予兆を察知できるメカニズムを取り入れることを発表しています。
2021年3月16日に起こった障害
2023年1月25日に発生したAzureの障害は、AAD(Azure Active Directory)の一部機能に不具合が生じ、AADを利用するサービスで発生した認証エラーなどの影響です。障害の発生理由は、AADはキーを使って認証しますが、特定のキーを誤って削除してしまったためでした。特定の条件で引き起こされてしまうバグだったため、それまで気がつかずにサービスを運用していました。
再発防止策として、バグの修正に向けた改善を複数ステップに分けて進めています。
Azure障害情報の追跡と通知方法
Azureの障害情報を確認する方法や通知方法は以下があります。
- Azureの状態ページ
- Azure Service Health
- Azure Resource Health
- Azure障害速報を受け取るためのX(旧Twitter)活用法
Azureの状態ページ
Azureの状態ページは、Azureサービスの現在の状態や過去の障害情報を提供するページです。ユーザーは当ページで、Azureサービスに関する重要なアップデートや障害情報などを確認できます。また当ページには、各サービスのステータス情報、障害の発生や解消に関する詳細な情報、予定されているメンテナンスの予告などの情報も掲載されます。
したがって、Azureのサービス利用中に何か不具合があることに気がついたら、まずは当ページを見てみましょう。Azure側で障害が発生している場合は、ユーザーができることが限られてくるため現状を把握します。
ユーザーはAzureの状態ページで障害の発生状況を迅速に確認し、サービスの影響を把握できます。
Azure Service Health
Azure Service Healthは、Azureサービスに関する情報をポータル画面で提供するサービスです。当サービスにより、Azureサービスのステータス情報、障害の通知、予定されているメンテナンス情報をポータル画面で一元的に確認できます。
ユーザーはすべてのリージョンではなく、自身が利用する環境の情報だけわかれば十分なケースが大半です。当サービスは特定のリージョンやサービスの通知をカスタマイズして受け取れることも嬉しいポイントといえます。またサービスのステータスに関する詳細な情報や影響範囲なども提供されるため、原因特定に役立つでしょう。Azure Service Healthを使用することで、利用している環境の障害情報を確認すれば、適切な対処が可能です。
Azure Resource Health
Azure Resource Healthは、自身が利用するAzureリソースの利用状況を提供するサービスです。当サービスは特定のAzureリソース(仮想マシンやデータベースなど)の状態を通知し、リソースのパフォーマンス情報を提供します。また障害発生に関するメトリクスも用意されているサービスでは、いち早く原因特定が可能です。
したがって、当サービスを利用すれば「1リソースのみで問題があるのか」「利用している環境全体に問題があるのか」を確認できます。前者であればAzure全体の障害ではないことに気がつけるため、自身の環境に問題がある可能性が高いです。
後者であればAzure全体に問題が発生している可能性があるので、後述するAzure障害時にすべきことを参考に対処しましょう。
Azure障害速報を受け取るためのX(旧Twitter)活用法
Azure障害速報を受け取るためにはX(旧Twitter)の活用も有効です。Azureには公式のXアカウントがあります。こちらをフォローしておくことで、障害の情報を入手できるでしょう。
また「Azure 障害」と検索することで、Azureの障害に困っているユーザーのポストも確認できます。特に自身の環境で障害が発生した場合は、検索することで似たような状況に陥っているユーザーのポストを確認できるでしょう。同様に困っているユーザーがいれば、Azureに障害が発生している可能性が高いです。Azure公式の発表よりも速く情報を確認できる可能性があるので、ぜひX(旧Twitter)などのSNSも確認しましょう。
Azure障害時にすべきこと
Azureの障害発生時にすべきことは以下のとおりです。
- Azureの故障通知やツールを確認する
- Azureのサポート担当者に連絡する
- 新たな被害が出ないか確認を継続する
- 障害の影響を少なくするためにできることをやる
- 社内外に影響を通達する
Azureの故障通知やツールを確認する
Azureの障害が発生した場合は、Azureの故障通知やサービスを確認すべきです。「Azure障害情報の追跡と通知方法」で先述したそれぞれが確認すべき対象ですが、最初にAzureの状態ページを確認するとよいでしょう。その後は自社の環境にどのような影響があるのか、についてAzure Service HealthやAzure Resource Healthで確認してください。
適切な対策を取るためには、障害の状況を正確に把握する必要があります。最新情報を収集するためにも、Azure障害情報の追跡と通知方法で解説したそれぞれのページ、ツールを確認しましょう。
Azureのサポート担当者に連絡する
Azureのサポートを受けられる契約であれば、サポート担当者への連絡も必ず行いましょう。彼らは自社の状況を把握し、原因の特定や対処方法をサポートしてくれます。サポートのレベルはプランによって異なりますが、障害発生時の対応をしてもらえるプランであれば、サポートを依頼すべきです。
連絡する際には前章にて確認した情報を伝えることで、彼らの調査がスムーズに進みます。Azureのサポート担当者に連絡して、Azureの障害復旧までの対策や自社がサービス体制を維持するためにできることの指示を仰ぎましょう。
新たな被害が出ないか確認を継続する
Azureの障害発生時には、新たな被害が出ないかを絶えず確認しておくべきです。障害発生時には、原因箇所がすぐにはわからないこともあるでしょう。よって、2次的な被害が広がることも想定されます。例としてAADの障害ではシングルサインオンができなくなることに続き、Windows環境そのものにログインできない事象が発生するかもしれません。
被害が広がった場合にすぐに気がつき、対策できるよう、普段に増して監視を強化すべきといえます。
障害の影響を少なくするためにできることをやる
Azureの障害発生時には、障害の影響を少なくするためにできることに尽力しましょう。障害発生から時間が経過するごとに原因や影響がはっきりしてくるものです。Azureを利用して運用しているシステムに対して、少しでも障害の影響を小さくできるよう、できることに尽力しましょう。例として予備ネットワークや予備システムへの切り替え、障害点への割り振りをしないためのネットワーク制御などが挙げられます。
Azureの障害は、障害規模によってはいつ復旧するのか全くわからないものです。復旧するまでただ待っているだけではなく、自社の中でできることに全力を傾注しましょう。
社内外に影響を通達する
Azureの障害発生時には、社内外へ影響を通達しましょう。まずは社内の管理部隊に対して、原因特定や復旧作業に向けてできることを確認しあい、行動に移すべきです。先述した通り、影響を抑えるためにできることをやりましょう。
障害による影響が明確になってきたところで、社外のユーザーに対しても通達をしてください。障害によるサービスへの影響は困りますが、ピンチこそチャンスです。隠すのではなく、ユーザーへ影響と謝意を伝えることで、自社に対する信頼につながる可能性があります。
Azure障害発生時の復旧プロセス
Azureで障害が発生した場合の復旧プロセスは、大半はAzureによる自動復旧です。よってユーザーは、指示がなければ基本的に待つのみになります。ただし、待っている間に被害が広がる可能性がありますので、以下のそれぞれを実施すべきでしょう。
- 障害の影響を少なくするためにできることをする
- 新たな被害が出ていないか確認を継続する
またAzureをはじめとするクラウドサービスには障害がつきものだと考え、障害が発生しても切り替えしやすいシステムの構成やネットワーク設計にしておくことも大切です。
Azure障害が多い原因
多くの対策が施されているとはいえ、Azureには障害が多いイメージがあるかもしれません。障害が多い原因として以下が挙げられます。
- 世界中の地域に展開し多くのサービスを抱えるから
- ハードウェアの劣化
- 制御システムの故障
世界中の地域に展開し多くのサービスを抱えるから
Azureに障害が多いイメージがある原因の1つに、世界中の地域に展開しており、多くのサービスを持っていることが挙げられます。拠点やサービスの数が多いほど、障害が発生する可能性のあるポイントが増えます。Azureは世界中にデータセンターをもち、それぞれがサービスを運用していることから、このリスクが高いことがわかるでしょう。
そのため、ある程度の障害はつきものだと考えるべきです。障害が発生してもサービスに影響がなければ問題ありません。この考えを持つことで「A国で障害が発生しても、遠く離れたB国の拠点が無事ならサービスに影響はない」という設計にしておく思想が生まれます。
Azureは世界中に数多くのサービスを展開しているため、障害が発生する可能性はありますが、影響を少なくするための工夫もしやすいサービスです。
ハードウェアの劣化
Azureに障害が多いイメージを持たれてしまう原因に、ハードウェアの劣化があります。ある拠点の1台のハードウェア故障で大きな障害に及ぶことも考えておかなければなりません。
しかし、ハードウェアは日々劣化し、数年から十数年で限界を迎えるものです。Azureには世界中に拠点があり、各拠点に膨大な数のハードウェアが存在しています。すべてのハードウェアを最新に維持することは不可能です。よって設置のタイミングに差が生まれ、先立って設置されたハードウェアから劣化が始まり、やがては障害が引き起こされる可能性があります。
制御システムの故障
制御システムの故障によるAzureの障害もあります。クラウドサービスは主に制御システムが制御する自動化システムによってユーザーに提供されます。よって制御システムに故障が生じればユーザーへのサービス提供に影響することはいうまでもありません。
制御システムが故障してしまう原因は主に負荷の集中や高温によるオーバーヒート(冷却システムの不調)、システムのバグなどです。Azure側では制御システムの故障を防ぐさまざまな対策を実施していますが、それでも障害が発生してしまうことがあります。
障害に強いAzureの利用方法
Azure側での障害はどうしても発生してしまうものです。よって障害が発生することを想定したAzureの活用方法が大切です。以下の対策があります。
- 冗長性を高める
- バックアップを取得する
- アラートを設定して早いうちに気づく
- 高負荷に自動対応する
- Azure障害を想定したドキュメントを用意しておく
冗長性を高める
Azureの障害発生に備えるために、冗長性を高めておきましょう。Azureの拠点は世界中に位置しているため、障害が複数の拠点で同時に発生することは考えにくいです。
よって同じサービスやデータを複数の地理的なリージョンや可用性ゾーンに展開することで、冗長性を高めた運用が可能となります。障害発生時、別のリージョンやゾーンからサービスの提供を受けることが可能です。
またAzure以外の別クラウドとの連携やオンプレミスとの連携も冗長性を高める対策の1つになります。
バックアップを取得する
Azureの障害によるデータの損失を防ぐために、定期的なバックアップを取得をしておきましょう。Azureでは、データベース、仮想マシン、ストレージなどのさまざまなリソースに対するバックアップソリューションがあります。
バックアップがあれば、復旧する際の損失を低減可能です。またデータの復旧手順が簡易化されるメリットもあります。同期的なバックアップなど、取得方法によっては障害が発生した際にもデータの完全性を保つことも可能です。
アラートを設定して早いうちに気づく
Azureの障害に備えてアラートを設定し、早い段階で気がつけるようにしておきましょう。
障害が発生した場合、早期の対応ができれば被害を小さく抑えられる可能性が高くなります。そのためにもAzure障害情報の追跡と通知方法で解説した各ツールの利用はもちろん、Azure Monitorでアラートを設定しましょう。
異常な動作やパフォーマンスの低下時に通知をする設定をしておくことで、ユーザーがすぐに異常に気がつけます。
高負荷に自動対応する
自社のAzure環境でリソースの障害を起きにくくするために、高負荷に自動対応できる機能を利用しましょう。
Azureにはオートスケールを利用できるサービスがあります。オートスケールは、アクセス状況に応じて、耐えられるようサーバー側の台数やスペックを自動調整できる機能です。Azure MonitorやVirtual Machine Scale Setsなどで利用できます。
Azure障害を想定したドキュメントを用意しておく
Azureの障害発生を想定して対応すべきことなどをドキュメント化しておくことも、障害対策の1つになります。
Azureの利用時に障害はつきものです。障害が発生しない前提ではなく、発生する前提で、対策を準備しておきましょう。ドキュメントの内容は「Azure障害情報の追跡と通知方法」で解説した内容や、具体的な確認、作業の手順を掲載するとよいでしょう。
ドキュメントを用意しておくことで、障害発生時にも落ち着いて対応できるため、被害を小さく抑えられます。
まとめ
Azureの障害について解説しました。Azureでは障害が発生しないようにさまざまな対策が施されています。しかし、それでも障害発生は避けられません。そのため、Azureの障害発生を前提とした対策やマインドを持っておくことが重要です。
Azureの障害について知っておき、事前対策にも発生時にも対応できるように準備しておきましょう。