【AWS】組織管理下アカウントのAWSメンテナンスイベント/非推奨情報を集約する【Organizational View】

2022/08/28に公開

はじめに

AWS Organizationsサービスを利用されている方は、複数のAWSアカウントを管理する役割の方だと思います。
管理するアカウント数が増えてくると、Personal Health Dashboard上で確認可能な各アカウントに対して送信されるメンテナンスイベント(ex.ホスト部分のアップデートによるEC2の再起動)、非推奨情報(ex.RDSにおけるPostgreSQLの旧バージョンサポート停止)、サービスダウン情報を横断的に閲覧したくなりませんか。

そんな要望を叶えてくれる機能が、AWSより2020年12月にリリースされていますので利用してみようと思います。

Personal Health Dashboardとは

各アカウント向けに特化したメンテナンスイベントや非推奨情報を閲覧することができます。
特化した とは、メンテナンスにより影響を受けるEC2インスタンスがどれか、非推奨となりバージョン変更が必要となるRDSインスタンスはどれか等が具体的に分かることを指しています。

気になる費用については、無料となっています。
ただし、イベントの情報をAPI(Health API)経由で取得したい場合(ex. イベントを基にした通知の仕組みを実装したい)には、有償のサポート契約が必要となります。

こちらの機能をOrganizations単位で集約可能とした機能(以降、管理コンソールの表示名に合わせてOrganizational Viewと呼びます)が今回利用してみる機能となります。
Organizational Viewも同様に無料で利用可能です。

Organizational Viewを使ってみる

terraformを利用し、以下の順番で有効化まで試してみようと思います。

  1. Organizations作成
  2. メンバーアカウント作成
  3. Organizational View 有効化(※残念ながらterraform非対応)

Organization作成

aws_organizations_organizationリソースを利用して作成します

resource "aws_organizations_organization" "organization" {
}

メールアドレス検証依頼メールが届くので、「Verify your email address」を押下します

以下の表示が確認できればOKです

Member Account作成

Organizationsを作成したので、メンバーアカウントを作成します。
(Organizationsの管理アカウント=マスターアカウントに対して、配下のアカウントをメンバーアカウントと呼びます)

resource "aws_organizations_account" "account" {
  name  = "member_account"
  email = "xxxxx@xxxxx"
}

こちらはメールアドレス検証作業は不要です

AWSサービスアクセスの有効化

Personal Health Dashboardを提供しているAWS Healthサービスから自アカウントへのAPI操作を許可する設定を行います

aws_service_access_principalshealth.amazonaws.comを追加します

resource "aws_organizations_organization" "organization" {
  aws_service_access_principals = [
    "health.amazonaws.com"
  ]
}

Organizational View 有効化

terraformでの有効化手段は現状なさそうです。
AWS ProviderのGithub上でもissueは挙がっていなさそうです。

CLIでの有効化手段はありましたが、サポート契約を行っていないアカウントのため、IaCは諦めてPersonal Health Dashboardのコンソール画面から有効化を行います

  1. Persoanl Health Dashboardのサービス画面に遷移し、左側のメニューより「Organizational View」→「Configurations」を押下します。

  2. 画面右下にある「Enable organizational view」を押下します。

  3. 有効化されるまで数分かかるので待ちます。

  4. 画面上部に成功した旨のメッセージが表示され、PendingSuccessになっていれば完了です。

(実際はこの時点で、前の手順で実施したAWSサービスアクセス有効化も行われるので、前の手順はスキップ可能です)

イベントの確認

左側のメニューより「Organizational View」→「Dashboard」を押下します。

Deprecatedやメンテナンスのイベントが無い個人アカウントと新規作成したアカウントしか存在しない状態のため、実際のイベントは確認できていませんが、以下のような画面で集約されたイベントの表示が確認可能となります。
ステータスも確認できるので、各アカウントで当該イベントに対して対応済みか否かがわかるようです。

さいごに

既にOrganizationsを利用されている方にとっては、管理コンソール上で1度ボタンを押すだけでイベントを集約してダッシュボードで確認することが可能となりますので、ROIが非常に高い機能だと思います。

さらに価値を上げたい場合は、サポートプランの契約が必要となりますが、Health APIをAWS ChatBotと連携してSlackなどで各アカウントの担当者宛に通知を行ってあげると良いと思います。

Discussion