AWS Healthとは?AWSの障害情報をリアルタイムで確認する方法を紹介
クラウドサービスプロバイダーとして世界一のシェアを誇るAWSにおいても、障害は発生します。
この記事には、AWSの障害情報をリアルタイムで確認する方法をAWS Healthという障害情報を含むAWSのさまざまなイベントを扱うサービスを中心に据えて記載します。AWS障害発生時のスムーズな状況把握の参考情報となれば幸いです。
AWS Healthとは?
AWS Healthとは、リソースのパフォーマンスとAWSのサービスおよびアカウントの可用性を継続的に可視化するサービスであると定義されています。
AWS Healthによって、AWSリソースの健全性の変化によってトリガーされるアラートと通知が提供されます。
それにより、瞬時にイベントを可視化し、トラブルシューティングを迅速化するためのガイダンスを得ることができるとAWSの公式ドキュメントに記載されています。
AWS Healthサービスの機能として、AWS Health Dashboardと呼ばれるコンソールが提供されており、ダッシュボードを設定するためにコードを記述したり、何かしらのアクションを実行する必要はありません。
AWS Healthを通じて通知されるイベントは、AWS Healthイベントと呼ばれます。
AWS Healthイベントには、パブリックイベントとアカウント固有のイベントという2つの種類があり、それぞれ特徴があります。
また、パブリックイベントとアカウント固有のイベントは、異なる2つのダッシュボードに表示されていましたが、2022年2月末に2つのダッシュボードが統合された経緯もあります。
パブリックイベントの特徴
AWS Healthにおけるパブリックイベントとは、利用しているAWSアカウントに固有ではないすべてのAWSサービスの障害や重要な不具合に関する情報を指します。
利用しているAWSアカウントに固有ではないというのは、オハイオリージョン(us-east-2)のAmazon Simple Storage Service(S3)に問題が発生した際、利用者がオハイオリージョンにS3バケットを作成していなくても利用者がそのイベントの受信対象になるということです。
もちろん、オハイオリージョンでS3を利用していてもイベントの受信対象になり、東京リージョン(ap-northeast-1)のEC2(Amazon Elastic Compute Cloud)に障害が発生した際に、東京リージョンでEC2を利用していてもしていなくても、イベントが送信されます。
つまり、パブリックイベントは、どの利用者にも同じ情報が配信されるという性質があります。
パブリックイベントの最も簡単な確認方法は、AWS Health DashboardのService health(サービスの状態)画面を閲覧することです。
アカウント固有のイベントの特徴
AWS Healthにおけるアカウント固有のイベントとは、利用しているAWSリソースに影響するイベントとされています。
利用しているEC2インスタンスに問題がある場合、そのEC2インスタンスの利用者だけにアカウント固有のイベントが送信されます。ただし、同時に複数のEC2インスタンスに問題が発生した場合、複数の利用者に同じタイミングでイベントを受信することにもなります。他の利用者が利用するEC2インスタンスに問題があっても、自身が利用するEC2インスタンスに問題がなければ、イベントを受信することはありません。
アカウント固有のイベントには、イベントの影響を受けるリソースの名前を提供するとAWSの公式ドキュメントに記載されています。
アカウント固有のイベントの最も簡単な確認方法は、AWS Health DashboardのYour account health(アカウントの状態)画面を閲覧することです。
統合されたAWS Personal Health DashboardとAWS Service Health Dashboard
2022年2月末に、これまでAWS Service Health Dashboardと呼ばれていたサービスとAWS Personal Health Dashboardと呼ばれていたサービスは統合されました。
AWS Service Health Dashboardでは、現在のパブリックイベントに該当する情報が扱われ、AWS Personal Health Dashboardでは、現在のアカウント固有のイベントに該当する情報が扱われていたようです。
それぞれの機能のユーザーインターフェースが統一されたことや、一つのサービスにまとまったことで、パブリックイベントとアカウント固有のイベントの発生状況を比べやすくなったと考えます。
AWS Service Health Dashboardは、AWSにサインインしていなくても閲覧できましたが、統合後もパブリックイベントを表示するService health(サービスの状態)画面だけはサインインせずとも閲覧できます。アカウント固有のイベントを表示するYour account health(アカウントの状態)画面を表示しようとすると、サインインを要求されます。
AWSの障害情報をリアルタイムで確認する方法
ここからは、AWS Healthを用いてAWSの障害情報をリアルタイムで確認する方法を4つ記載します。
それぞれの方法の特徴をまとめると以下の通りです。
方法 | 確認できる情報 | サービス単位での設定の必要性 | リージョン単位での設定の必要性 | AWSアカウント単位での設定の必要性 |
---|---|---|---|---|
AWS Health Dashboardを閲覧する | パブリックイベントおよびアカウント固有のイベント | 不要 | 不要 | アカウント固有のイベントに関して、組織ビューを有効にしていない場合は、AWSアカウントを切り替えての閲覧が必要 |
RSSフィードを購読する | パブリックイベント | 必要 | 必要 | 不要 |
Amazon EventBridgeを使用する | アカウント固有のイベント | 不要 | 必要 | 組織ビューを有効にしている場合は不要 |
AWS User Notificationsを使用する | アカウント固有のイベント | 不要 | まとめて設定できる | 必要 |
それぞれの方法の詳しい特徴や利用手順を記載します。
AWS Health Dashboardを閲覧する
AWSの障害情報をリアルタイムで確認する際、AWS Health Dashboardを閲覧することは最も簡単な方法であると言えます。
AWS Health DashboardのService health(サービスの状態)のメニュー内のOpen and recent issues(未解決の問題と最近の問題)の画面には、最近報告されたパブリックイベント(AWSアカウントに固有ではないすべてのAWSサービスの障害や重要な不具合に関する情報)が表示されます。
Service health(サービスの状態)のメニュー内のService history(ステータス履歴)の画面には、過去12カ月間のパブリックイベントが表示されます。
これらの画面では、イベント名(例:Amazon Bedrock Increased API error rates)、影響を受けるリージョン(例:オレゴン)、サービス名、イベントの重要度(例:「情報」や「低下」)、イベントのタイムラインを確認できます。
AWS Health DashboardのService health(サービスの状態)のメニュー内のOpen and recent issues(未解決の問題と最近の問題)の画面には、過去7日間のアカウント固有のイベント(利用しているAWSリソースに影響する情報)が表示されます。パブリックイベントと同様に影響を受けるサービス名やリージョン、イベントのタイムラインなどを確認できます。
Service health(サービスの状態)のメニュー内のEvent log(イベントログ)の画面では、過去90日間のアカウント固有のイベントが表示されます。
Open and recent issues(未解決の問題と最近の問題)やEvent log(イベントログ)の画面には、AWS障害に関する情報以外に、AWSサービスのメンテナンス予定やアクションが必要な計画されたライフサイクルイベントと呼ばれる情報も表示されます。
RSSフィードを購読する
RSSフィードを購読するための準備に関する手順を記載します。
まず、AWS Health DashboardのService health(サービスの状態)のメニュー内のService history(ステータス履歴)の画面を開きます。
「サービス一覧」を選択し、RSSフィードを購読したいAWSサービス(リージョン)の行の「RSS」の列にあるアイコンをクリックします。
RSSフィードが開くので、ブラウザのアドレスバーからURLをコピーします。
RSSフィードを受信したいアプリケーション(例:Slack、Teams(Microsoft Teams))のRSSリーダー機能にコピーしたURLを追加することで、AWS HealthイベントをRSSフィードの形式でリアルタイムに購読することが可能になります。
RSSフィードにて購読できる情報は、Service history(ステータス履歴)の画面の「イベント一覧」に表示される情報のうち、購読対象のRSSフィードのAWSサービスおよびリージョンと一致すると思われます。また、Amazon CloudFrontなどのグローバルサービス(AWSの各リージョンに独立して存在しないサービス)のRSSフィードの購読もできます。
Amazon EventBridgeを使用して、AWS Healthイベントを受信する
Amazon EventBridgeを使用して、AWS Healthイベントを受信するための準備に関する手順を記載します。
まず、Amazon EventBridgeコンソールを開き、AWS Healthイベントを追跡するリージョンを選択します。
「バス」メニュー内の「ルール」画面を開き、「ルールを作成」をクリックします。
ルールの「名前」を決めて入力し、ルールタイプ「イベントパターンを持つルール」を選択し、「次へ」をクリックします。
イベントソース「AWSイベントまたはEventBridgeパートナーイベント」を選択します。
ターゲットタイプ「AWSのサービス」を選択し、ターゲットを選択のプルダウンから「SNSトピック」を選択します。
トピックからあらかじめ用意したSNSトピックを選択し、「次へ」をクリックします。
※Amazon Simple Notification Service(SNS)サービスにて、あらかじめSNSトピックを作成してください。SNSトピックのサブスクリプションとして、AWS Healthイベントの送信先のEmailやAWS Chatbot(SlackやTeamsへのメッセージ送信チャネルの作成ができるサービス)を選択してください。
作成のメソッドでは「パターンフォームを使用する」を選択します。
イベントパターンの選択欄では、
- イベントソース「AWSのサービス」
- AWSのサービス「Health」
- イベントタイプ「すべてのイベント」
を選択し、次の画面へ進みます。
必要に応じて、タグ情報を入力し、「ルールの作成」をクリックすることで、EventBridgeを使用したAWS Healthイベントの送信準備が整います。これで、AWS障害情報を含むAWS Healthイベントをリアルタイムで受信できます。
EventBridgeを使用して受信できるAWS Healthイベントは、AWS Health DashboardのYour account health(アカウントの状態)内のEvent log(イベントログ)に表示される情報のうち、EventBridgeルールを作成したときに選択していたリージョンのものと一致すると思われます。他のリージョンのAWS Healthイベントも受信したい場合は、EventBridgeコンソールにて該当のリージョンを選択した状態で同様の設定が必要になります。
また、EventBridgeを使用して受信できるAWS Healthイベントには、AWSサービスのメンテナンス予定やアクションが必要な計画されたライフサイクルイベントといった障害以外の情報も含まれるため、受信した際に情報を見分けることが必要になります。
なお、AWS Healthの組織ビュー機能を有効化することで、複数のAWSアカウントのAWS Healthイベントを集約できます。これにより、1つのEventBridgeルールを設定するだけで、複数アカウントのAWS Healthイベントを受信できます。この方法を用いるには、AWS Organizations(複数のAWSアカウントを一元管理するサービス)が有効化されている必要があります。複数のAWSアカウントを利用している場合は、有用な機能だと言えます。
AWS User Notificationsを使用して、AWS Healthイベントを受信する
AWS User Notificationsを使用して、AWS Healthイベントを受信するための準備に関する手順を記載します。
まず、AWS User Notificationsのコンソールを開き、「通知設定」画面から「通知設定を作成」をクリックします。
クイックセットアップのセクションにて、プルダウンメニューより「Health」を選択します。
パターンビルダーでは、
- AWSサービスの名前「Health」
- イベントタイプ「特定のヘルスイベント」
- リージョン「(AWS Healthイベントを受信したいリージョン)」
を選択します。
AWS User Notificationsを使用して、AWS Healthイベントを受信したい通知先を選択します。
Emailに通知する場合、指定したEmail宛に認証用のメールが届くので、メールの案内に従って1度認証処理を行う必要があります。
SlackやTeamsなどのアプリケーションにも通知が可能となっており、それらを通知先とする場合は、AWS Chatbotサービスにて通知先アプリケーション用のクライアント設定を済ませておく必要があります。
必要に応じて、タグ情報を入力し、「通知設定を作成」をクリックすることで、AWS User Notificationsを使用したAWS Healthイベントの送信準備が整います。これで、AWS障害情報を含むAWS Healthイベントをリアルタイムで受信できます。
AWS User Notificationsを使用して受信できるAWS Healthイベントは、EventBridgeを使用して受信できるAWS Healthイベントと同じであると思われます。EventBridgeの場合は、AWS Healthイベントを受信したいリージョンごとに設定が必要でしたが、AWS User Notificationsの場合は、1つの設定で複数のリージョンを指定できます。
EventBridgeを使用してAWS Healthイベントを受信する方法では、組織ビュー機能を有効化することで複数のAWSアカウントのAWS Healthイベントを集約できましたが、AWS User Notificationsサービスでは、複数のAWSアカウントのAWS Healthイベントを集約できないため、複数のAWSアカウントを利用している場合は、他のAWSアカウントでも同様の設定が必要になります。
まとめ
AWSの障害情報をリアルタイムで確認する際に、AWS Healthは中核となるサービスであると言えます。
AWS Healthによって確認できる情報を2つに分けると、パブリックイベントとアカウント固有のイベントがあり、それぞれの情報の特徴と確認方法をここまでで記載しました。
システムの要件や運用体制に応じて、AWSの障害情報の確認方法を使い分けための参考情報となれば嬉しいです。