AWS Health API を使用して AWS Health を他のシステムと統合する
AWS Health は、トランスポートとして HTTPS を使用し、メッセージシリアライズフォーマットとして JSON を使用する RESTful なウェブサービスです。アプリケーションコードから直接、AWS Health API にリクエストを行うことができます。この REST API を直接使用するときは、リクエストの署名と認証のためのコードを書く必要があります。AWS Health が提供するオペレーションとパラメータの詳細については、AWS Health API リファレンスを参照してください。
注記
AWS Health API を使用するには、AWS SupportSubscriptionRequiredException
エラーが表示されます。
AWS SDK を使用して AWS Health REST API コールをラップすることで、アプリケーション開発を簡素化できます。開発者が AWS 認証情報を指定すれば、ライブラリによって認証とリクエスト署名の処理が自動的に行われます。
AWS Health では、AWS Management Console に AWS Health Dashboard が用意されており、イベントや影響を受けるエンティティを表示および検索できます。「AWS Health ダッシュボードの開始方法」を参照してください。
トピック
AWS Health API リクエストの署名
AWS SDK または AWS Command Line Interface (AWS CLI) を使用して AWS へのリクエストを行う場合、これらのツールで、設定時に指定されたアクセスキーを使用して自動的にリクエストに署名されます。例えば、以前の高可用性エンドポイントデモの AWS SDK for Java を使用する場合、自分でリクエストに署名する必要はありません。
Java コードの例
AWS SDK for Java で AWS Health API を使用する方法の例については、このコード例を参照してください。
リクエストを行うときに、AWS Health への通常のアクセスには、AWS ルートアカウントの認証情報を使用しないことを強くお勧めします。IAM ユーザーの認証情報を代わりに使用できます。詳細については、IAM ユーザーガイドの AWS アカウントのルートユーザーアクセスキーをロックするを参照してください。
AWS SDK も AWS CLI も使用しない場合は、リクエストを自分で署名する必要があります。AWS 署名バージョン 4 を使用することをお勧めします。詳細については、『AWS』の「AWS 全般のリファレンス API リクエストの署名」を参照してください。
AWS Health API リクエストのエンドポイントを選択する
AWS Health API はマルチリージョンアプリケーションアーキテクチャに従い、アクティブ/パッシブ構成に 2 つのリージョンエンドポイントがあります。アクティブ/パッシブ DNS フェイルオーバーをサポートするために、AWS Health は単一のグローバルエンドポイントを提供します。グローバルエンドポイントで DNS ルックアップを実行して、アクティブなエンドポイントおよび対応する署名 AWS リージョンを判別できます。これにより、コードでどのエンドポイントを使用するかを把握できるため、AWS Health から最新の情報を取得できます。
グローバルエンドポイントにリクエストを行うときは、ターゲットとするリージョンエンドポイントに AWS アクセス認証情報を指定し、リージョンの署名を設定します。それ以外の場合は、認証が失敗することがあります。詳細については、「AWS Health API リクエストの署名」を参照してください。
次の表は、デフォルトの設定を示しています。
説明 | 署名リージョン | エンドポイント | プロトコル |
---|---|---|---|
[アクティブ] |
us-east-1 |
health.us-east-1.amazonaws.com |
HTTPS |
パッシブ |
us-east-2 |
health.us-east-2.amazonaws.com |
HTTPS |
グローバル |
us-east-1 注記これは、現在のアクティブなエンドポイントの署名リージョンです。 |
global.health.amazonaws.com |
HTTPS |
エンドポイントがアクティブなエンドポイントであるかどうかを判断するには、グローバルエンドポイント CNAME で DNS ルックアップを実行し、解決された名前から AWS リージョンを抽出します。
例 : グローバルエンドポイントでの DNS ルックアップ
次のコマンドは、global.health.amazonaws.com エンドポイントでの DNS ルックアップを実行します。次に、このコマンドは us-east-1 リージョンエンドポイントを返します。この出力は、AWS Health にどのエンドポイントを使用する必要があるのかを示しています。
dig global.health.amazonaws.com | grep CNAME
global.health.amazonaws.com. 10 IN CNAME health.us-east-1.amazonaws.com
ヒント
アクティブなエンドポイントとパッシブなエンドポイントの両方が AWS Health データを返します。ただし、最新の AWS Health データは、アクティブなエンドポイントからのみ提供されます。パッシブなエンドポイントからのデータは、最終的にアクティブなエンドポイントと一致します。アクティブなエンドポイントが変更された場合は、ワークフローを再起動することをお勧めします。