AWS障害発生時の切り分け
どんなに手を尽くしてもシステム障害の発生リスクは0(ゼロ)にはならず、規模にかかわらず障害はどのようなシステムでも発生する可能性があります。AWS(Amazon Web Services)のようなクラウド環境でもオンプレミス環境と同様に障害が発生する可能性がありますが障害が発生した際に適切な切り分けを行うことができれば障害による被害を最小限にすることができます。
ではAWSのようなクラウドサービスにおいて障害切り分けはどのような方法があるのでしょうか。本記事ではAWSにおける障害通知についてできるだけわかりやすく説明します。
目次
障害切り分けとは
AWSの障害切り分けについて説明を行う前にまず、障害切り分けとはなにかという点について考えてみたいと思います。
障害切り分けとは障害発生時にシステム内のどの個所で障害が発生しているかを明らかにすることです。
障害発生時には迅速に次のアクションを判断することで早期解決に向かうことができますが障害箇所が全く特定できていなければ、どのような復旧を行えばいいのか、他にエスカレーションすべきなのか等の判断を行うことができず障害が長期化する恐れがあります。適切な切り分けを行うことで障害の早期復旧を見込むことができます。
特にクラウド+オンプレミスの複合環境(ハイブリッド環境)の場合は障害ポイントが多岐にわたるため、障害切り分けは障害対応における重要な作業となります。
障害切り分けのポイント
AWS関連の障害が発生した際に考慮すべきポイントは大きくは以下のポイントとなります。
- AWS基盤の問題か、ユーザ側AWS環境の問題か
切り分け時にAWS基盤の問題なのかという点を切り分けることは非常に大きなポイントとなります。AWS基盤は非常に堅牢な設計で作られてはいますが、設備障害の発生リスクが0ではありません。AWS基盤の問題か、ユーザ側AWS環境の問題かでその後の対処が大きく異なってきます。 - インフラの問題か、アプリケーションの問題か
次にAWSインスタンスの問題なのか、実装されているアプリケーションの問題なのかを切り分けることも重要な切り分けポイントとなります。この切り分け結果如何でAWSに問い合わせるべきなのか、OSのログを確認するべきなのか、アプリケーションのログを確認すべきなのか等実施すべきアクションが大きく変わってきます。 - インターネットや回線の問題か
最後にインターネットや利用している回線に問題が発生していないかを切り分けることも重要な要素となります。インターネット上で問題が発生していたり、利用している通信キャリア単位で問題が発生していたりしている場合には実施すべきアクションが限定され以降の障害対応で取るべきアクションが大きく異なってきます。
AWSに最適化された24時間365日の運用・監視をご提供するスタイルズのAWS監視、運用・保守サービスはこちら→
AWSの障害切り分けでやるべきこと
AWS上で発生した障害の切り分けは大きく以下に分類できます。
- AWSマネジメントコンソールでの確認
まずはAWSマネジメントコンソール上での確認での確認が必須となります。AWSマネジメントコンソールは利用アカウント単位でAWSサービスを一元管理できるWebインターフェースで障害情報を含む様々な情報を確認することができます。 - AWSサポートへの確認
AWSのサポート契約が前提とはなりますがAWS環境側で障害が発生していないかの詳細な確認をすることができます。 - AWS以外の確認
AWSで問題が発生していない場合、AWSへの経路の問題、ハイブリッドの場合はオンプレミス環境の問題等AWS以外の問題が発生していないかの確認を行う必要があります。
これらの切り分け対応をフロー化すると以下のような形となり、それぞれの要因について切り分けていくことで障害原因を特定することが可能となります。
AWSマネジメントコンソールによる切り分け
前述の通りAWSマネジメントコンソールの確認が最も重要な確認ポイントとなりますので次項よりどのような確認方法があるのかを説明します。
EC2ステータスチェック
AWSマネジメントコンソール上での確認でまず確認すべき点としてはEC2ステータスチェックがあります。EC2ステータスチェックはEC2インスタンスの死活確認を行っており、下図のようにインスタンス単位でステータスが表示されます。ステータスは二種類あり
- システムステータスのチェック
⇒AWS側基盤の異常をチェックしている - インスタンスステータスのチェック
⇒メモリの枯渇等ユーザ環境側の異常をチェックしている
とそれぞれ目的が異なりますが、どちらのステータスが異常であっても対象のEC2インスタンスに大きな問題が発生していることを表しています。
モニタリング確認
AWSマネジメントコンソールでは下図のようにEC2やサービスの状況をモニタリングして表示する機能があります。この表示でリソースの急激な上昇等障害の要因となる状態となっていないか確認をすることができます。
ログ確認
CloudWatch Logsにてログを取得している場合はAWSマネジメントコンソール上で各種ログを確認することができます。ログの確認は障害切り分けにおいて重要な手段となります。
AWSサポートへの確認
AWSのようなクラウドサービスではクラウド基盤側の問題が発生するケースがあり、局所的な基盤の問題は公開されないケースもあります。こういったケースではAWSサポートに確認して切り分けを行う必要があります。
AWSサポートへの問い合わせ手段は
- Web入力
- 電話
- チャット
が利用可能です。
AWSに最適化された24時間365日の運用・監視をご提供するスタイルズのAWS監視、運用・保守サービスはこちら→
AWSサポート問い合わせ時の注意点
AWSサポート問い合わせの方法はいくつかありますが、回答の確実性という観点からWebによる問い合わせがAWSでは推奨されています。
また問い合わせを行う際には以下についての情報を伝えることが推奨されています。
- 解決したい問題を明確に
- 対象リソースとリージョンを明確に
- 事象の発生時刻と継続状況
- ログや画面キャプチャの共有
AWS以外の確認
AWSを利用したサービスであってもAWS以外の要因で障害が発生している場合があります。代表的な要因としては以下の点が挙げられます。
- インターネット接続回線での障害
- SSH接続、VPN接続といったネットワークの問題
- ハイブリッド環境であればオンプレミス側の問題
AWSを利用したシステムであってもAWS以外の様々な要因が考えられますのでAWS以外の要因についても目を向けて切り分けていくことが大切です。
また、ユーザ視点で特定のユーザのみ発生しているのか、すべてのユーザで発生しているのかを確認することも、原因や影響範囲確認の大きなポイントとなります。