Slide 1

Slide 1 text

AWS Healthを活⽤して AWSアカウントの運⽤をしよう 第129回 雲勉【オンライン】

Slide 2

Slide 2 text

0.講師⾃⼰紹介 2 n まつなが まき • クラウドインテグレーション事業部 MSP開発セクション所属 • アイレット4年⽬ • アイレット歴 = クラウド歴 • 花粉症がつらいこの頃

Slide 3

Slide 3 text

アジェンダ 3 1. AWSアカウントの運⽤で気にすべきこと 2. AWS Healthについて 3. AWS Healthの確認⽅法 4. AWS Healthの活⽤例 5. まとめ

Slide 4

Slide 4 text

本⽇のゴール 4 n AWS Health • どんなものか知る • ダッシュボードでの⾒⽅を知る • 運⽤例を知る

Slide 5

Slide 5 text

1. AWSアカウントの運⽤で気にすべきこと 5

Slide 6

Slide 6 text

1.AWSアカウントの運⽤で気にすべきこと 6 n AWSアカウントでサービスを構築すると定期的なメンテナンスや障害対応が必要 運⽤・保守 メンテナンス対応 障害影響 EOL対応 インスタンス再起動 レイテンシー増加 リージョン障害 ΞΧ΢ϯτ؅ཧऀ など など

Slide 7

Slide 7 text

1.AWSアカウントの運⽤で気にすべきこと 7 n AWSアカウントのメンテナンスや障害の情報はどうやって取得する︖ 「AWS Health イベント」としてAWSから通知される

Slide 8

Slide 8 text

2. AWS Health について 8

Slide 9

Slide 9 text

2.AWS Health について 9 n AWS Health とは︖ • AWSアカウントに影響のある障害や情報をお知らせしてくれるサービス(仕組み)のこと • AWS Health が各AWS サービスの代わりにまとめてお知らせを通知してくれる • AWS Healthから通知されるお知らせを AWS Health イベントという AWS Health AWSの各サービス 様々な通知(AWS Health イベント)を集約

Slide 10

Slide 10 text

2.AWS Health について 10 n AWS Health イベントの種類 種類 説明 パブリックイベント (Service Health) AWSアカウント固有でないサービスイベント、サービス状況に関するもの サインイン不要、AWS アカウント不要で確認できるイベント https://health.aws.amazon.com/health/status 例)AWSリージョン障害のイベント アカウント固有のイベント (Your Account) AWS アカウントに固有のイベント 例)使⽤中のインスタンスの問題のイベント

Slide 11

Slide 11 text

3. AWS Health の確認⽅法 11

Slide 12

Slide 12 text

3.AWS Health の確認⽅法 12 n AWS Health イベントを確認する⽅法 No ⽅法 説明 1 AWS Health Dashboard 全てのAWSサービスの状態と発⽣イベントを確認できる 2 AWS Health API AWS Health Dashboardで表⽰している情報をAPIで取得 できる ⚠ いずれも90⽇前までのイベントが⾒られる ⚠ AWS Health APIはAWS ビジネス、AWS Enterprise On-Ramp、AWS エンタープライズサポートで利⽤可能 https://aws.amazon.com/jp/premiumsupport/faqs/ - Q: プログラムで AWS Health にアクセスできますか?

Slide 13

Slide 13 text

3. AWS Health 確認⽅法 ①AWS Health Dashboard 13

Slide 14

Slide 14 text

14 n AWS Health Dashboard • AWS Health イベントの通知をリアルタイムで集約したダッシュボードを 提供するAWSのサービス AWS Health Dashboard AWSの各サービス アカウント管理者 様々な通知 サービスの状態 確認 3.AWS Health の確認⽅法 ①AWS Health Dashboard

Slide 15

Slide 15 text

3.AWS Health の確認⽅法 ①AWS Health Dashboard 15 n マネージメントコンソール画⾯ ログイン > AWS Health Dashboard

Slide 16

Slide 16 text

3.AWS Health の確認⽅法 ①AWS Health Dashboard 16 n AWS Health イベントの種類 ダッシュボードでは以下のいずれのイベントも確認可能 種類 説明 パブリックイベント (Service Health) AWSアカウント固有でないサービスイベント、サービス状況に関するもの サインイン不要、AWS アカウント不要で確認できるイベント https://health.aws.amazon.com/health/status 例)AWSリージョン障害のイベント アカウント固有のイベント (Your Account) AWS アカウントに固有のイベント 例)使⽤中のインスタンスの問題のイベント

Slide 17

Slide 17 text

3.AWS Health の確認⽅法 ①AWS Health Dashboard 17 n パブリックイベントの確認 サービスの状態(Service Health)タブを⾒る

Slide 18

Slide 18 text

3.AWS Health の確認⽅法 ①AWS Health Dashboard 18 n パブリックイベントの確認 発⽣中の問題(障害など)があると、「未解決の問題」にイベントが表⽰される

Slide 19

Slide 19 text

3.AWS Health の確認⽅法 ①AWS Health Dashboard 19 n パブリックイベントの確認 ステータス履歴でサービスの稼働状況や過去発⽣したパブリックイベントがわかる

Slide 20

Slide 20 text

3.AWS Health の確認⽅法 ①AWS Health Dashboard 20 n アカウント固有のイベントの確認 アカウントの状態(Your Account)タブを⾒る ※サインインが必要

Slide 21

Slide 21 text

3.AWS Health の確認⽅法 ①AWS Health Dashboard 21 n アカウント固有のイベントの確認 過去7⽇間に発⽣した問題は「未解決の問題と最近の問題」に表⽰される グローバルサービスなので、全リージョンの問題を確認できる

Slide 22

Slide 22 text

3.AWS Health の確認⽅法 ①AWS Health Dashboard 22 n アカウント固有のイベントの確認 過去のイベントは、イベントログで確認 90⽇前のものまで管理されています

Slide 23

Slide 23 text

3.AWS Health の確認⽅法 ①AWS Health Dashboard 23 n アカウント固有のイベントの確認 影響を受けるリソース に記載があるのが、 アカウント固有のイベント その他は パブリックイベント (どちらも表⽰される) アカウント固有の イベント

Slide 24

Slide 24 text

3.AWS Health の確認⽅法 ①AWS Health Dashboard 24 n アカウント固有のイベントの確認 イベントのカテゴリには「問題」「予定された変更」「その他の通知」がある

Slide 25

Slide 25 text

3.AWS Health の確認⽅法 ①AWS Health Dashboard 25 n イベントのカテゴリ 種類 説明 問題 サービスやリージョンの障害に関するイベント 例) エラーの増加 予定された変更 計画されたライフサイクルイベントについてのイベント 例) Lambdaランタイムのサポート終了 MySQL エンジンバージョンのサポート終了 RDS 認証局証明書の有効期限満了 その他の通知 上記以外のイベント 例)変更リリースの通知

Slide 26

Slide 26 text

3.AWS Health の確認⽅法 ①AWS Health Dashboard 26 n アカウント固有のイベントの確認 リージョン/ゾーンが「-」のものはグローバルサービスに関するイベント

Slide 27

Slide 27 text

3.AWS Health の確認⽅法 ①AWS Health Dashboard 27 n アカウント固有のイベントの確認 イベントをクリックで詳細が⾒れる(パブリックイベントはサービスの状態で同じ内容が⾒れる)

Slide 28

Slide 28 text

3.AWS Health の確認⽅法 ①AWS Health Dashboard 28 n アカウント固有のイベントの確認 「影響を受けるリソース」でアカウント内の影響を受けるリソースがわかる

Slide 29

Slide 29 text

3. AWS Health 確認⽅法 ②AWS Health API 29

Slide 30

Slide 30 text

3.AWS Health の確認⽅法 ②AWS Health API 30 n AWS Health APIとは • AWS Health Dashboard に表⽰される情報に、プログラムを使⽤して アクセスできる • 特定のサービス、イベントタイプのカテゴリ、イベントタイプのコード でイベントをフィルタリングできる • APIのエンドポイントは「us-east-1」と「us-east-2」 https://docs.aws.amazon.com/ja_jp/health/latest/ug/health-api.html#endpoints

Slide 31

Slide 31 text

3.AWS Health の確認⽅法 ②AWS Health API 31 n DescribeEventsでイベント⼀覧を取得 aws health describe-events --region us-east-1

Slide 32

Slide 32 text

3.AWS Health の確認⽅法 ②AWS Health API 32 { "events": [ :...skipping... { "arn": "arn:aws:health:ap-northeast-1::event/BILLING/AWS_BILLING_NOTIFICATION/AWS_BILLING_NOTIFICATION_.....", "service": "BILLING", "eventTypeCode": "AWS_BILLING_NOTIFICATION", "eventTypeCategory": "accountNotification", "region": "ap-northeast-1", "startTime": "2024-01-06T22:05:00+09:00", "lastUpdatedTime": "2024-01-06T23:12:51.263000+09:00", "statusCode": "open", "eventScopeCode": "ACCOUNT_SPECIFIC" }, :...skipping... ] } n アカウント固有イベントの場合

Slide 33

Slide 33 text

3.AWS Health の確認⽅法 ②AWS Health API 33 { "events": [ :...skipping... { "arn": "arn:aws:health:us-west-2::event/DYNAMODB/AWS_DYNAMODB_OPERATIONAL_ISSUE/AWS_DYNAMODB_OPERATIONAL_ISSUE_...", "service": "DYNAMODB", "eventTypeCode": "AWS_DYNAMODB_OPERATIONAL_ISSUE", "eventTypeCategory": "issue", "region": "us-west-2", "startTime": "2023-12-10T12:17:00+09:00", "endTime": "2023-12-10T13:31:30+09:00", "lastUpdatedTime": "2023-12-10T13:31:30.005000+09:00", "statusCode": "closed", "eventScopeCode": "PUBLIC" } :...skipping... ] } n パブリックイベントの場合

Slide 34

Slide 34 text

3.AWS Health の確認⽅法 ②AWS Health API 34 n DescribeEventDetailsでイベントの詳細を取得 aws health describe-event-details --region us-east-1 --event-arns “{イベントのarnを指定}"

Slide 35

Slide 35 text

3.AWS Health の確認⽅法 ②AWS Health API 35 { "successfulSet": [ { "event": { "arn": "arn:aws:health:us-west-2::event/DYNAMODB/AWS_DYNAMODB_OPERATIONAL_ISSUE/AWS_DYNAMODB_OPERATIONAL_ISSUE_...", "service": "DYNAMODB", "eventTypeCode": "AWS_DYNAMODB_OPERATIONAL_ISSUE", "eventTypeCategory": "issue", "region": "us-west-2", "startTime": "2023-12-10T12:17:00+09:00", "endTime": "2023-12-10T13:31:30+09:00", "lastUpdatedTime": "2023-12-10T13:31:30.005000+09:00", "statusCode": "closed", "eventScopeCode": "PUBLIC" }, "eventDescription": { “latestDescription”: “Current severity level: Operating normally¥n¥n[RESOLVED] Increased Error Rates¥n¥n[08:29 PM PST] The issue has been resolved and the service is operating normally.¥n¥n[08:17 PM PST] Starting at 6:45 PM PST, DynamoDB experienced increased error rates and latencies for API requests in the US-WEST-2 Region. (ҎԼলུ)} } ], "failedSet": [] }

Slide 36

Slide 36 text

3.AWS Health の確認⽅法 ②AWS Health API 36 n オープンなアカウント固有イベントのみを取得 • ステータスやリージョンは --filter を使⽤して絞ることができる • eventScopeCode はfilter条件に指定できないためjqコマンドを使⽤ aws health describe-events --region us-east-1 --filter "eventStatusCodes=open" | jq ' .events[] | select(.eventScopeCode == "ACCOUNT_SPECIFIC")' https://docs.aws.amazon.com/ja_jp/health/latest/ug/supported-operations.html

Slide 37

Slide 37 text

3.AWS Health の確認⽅法 ②AWS Health API 37 n オープンなパブリックイベントのみを取得 • ステータスやリージョンは --filter を使⽤して絞ることができる • eventScopeCode はfilter条件に指定できないためjqコマンドを使⽤ aws health describe-events --region us-east-1 --filter "eventStatusCodes=open" | jq ' .events[] | select(.eventScopeCode == ”PUBLIC")' https://docs.aws.amazon.com/ja_jp/health/latest/ug/supported-operations.html

Slide 38

Slide 38 text

3.AWS Health の確認⽅法 ②AWS Health API 38 n AWS Health API • DescribeEventTypes でイベントタイプ⼀覧を取得 aws health describe-event-types --region us-east-1 { "eventTypes": [ :...skipping... { "service": "ACM", "code": "AWS_ACM_API_ISSUE", "category": "issue" }, :...skipping... ] }

Slide 39

Slide 39 text

3.AWS Health の確認⽅法 ②AWS Health API 39 n イベントタイプ⼀覧 • イベントに関する AWS のサービス、イベントタイプコード、カテゴリのテンプレート定義 • AWS Health でサポートされるイベントタイプコード、サービスは、時間とともに増える

Slide 40

Slide 40 text

3.AWS Health の確認⽅法 ②AWS Health API 40 n イベントタイプ⼀覧 以下の情報が取得できる ɾΠϕϯτλΠϓίʔυͷҰཡ aws health describe-event-types --region us-east-1 | jq '[.eventTypes[].code] | unique’ → ͲͷΑ͏ͳΠϕϯτ͕औಘͰ͖Δͷ͔Ұཡ͕Θ͔Δ ɾαʔϏεͷҰཡ aws health describe-event-types --region us-east-1 | jq '[.eventTypes[].service] | unique’ → ͲͷαʔϏεͷΠϕϯτ͕औಘͰ͖Δͷ͔Ұཡ͕Θ͔Δ

Slide 41

Slide 41 text

3.AWS Health の確認⽅法 ②AWS Health API 41 n その他のAWS Health API • DescribeAffectedEntities イベントの影響を受けるエンティティの情報を取得 • DescribeEventAggregates イベントタイプのカテゴリ別のイベント数を取得 • DescribeEntityAggregates イベントから影響を受けるエンティティ (リソース) の数を取得

Slide 42

Slide 42 text

4. AWS Healthの活⽤例 42

Slide 43

Slide 43 text

4.AWS Healthの活⽤例 43 n AWS Health を使⽤して新規イベントを検知したい ⽅法はいくつかある 例 ⽅法 例1 AWS Health Dashboardを定期的に⾒て新しいイベントを確認する 例2 AWS Health DashboardとEvent Bridgeを連携し、イベント発⽣時にSNSで通知 例3 (応⽤) AWS Organizationsと統合し、組織内のアカウントのイベントを1つの委任アカウント に集約させる。Event Bridgeを連携し、イベント発⽣時にSNSで通知

Slide 44

Slide 44 text

4.AWS Healthの活⽤例 44 n AWS Health を使⽤して新規イベントを検知する⽅法 例 ⽅法 例1 AWS Health Dashboardを定期的に⾒て新しいイベントを確認する • 最もお⼿軽な⽅法 • イベントが多くなると⼤変(頻度など) • 障害イベントにリアルタイムで対応できない

Slide 45

Slide 45 text

4.AWS Healthの活⽤例 45 n AWS Health を使⽤して新規イベントを検知する⽅法 例 ⽅法 例2 AWS Health DashboardとEvent Bridgeを連携し、イベント発⽣時にSNSで通知 Amazon EventBridge AWS Health Dashboard Amazon SNS AWS Chatbot https://docs.aws.amazon.com/ja_jp/health/latest/ug/cloudwatch-events-health.html

Slide 46

Slide 46 text

4.AWS Healthの活⽤例 46 n AWS Health を使⽤して新規イベントを検知する⽅法 例 ⽅法 例2 AWS Health DashboardとEvent Bridgeを連携し、イベント発⽣時にSNSで通知 • リアルタイムにイベントを検知できる • ルールの設定で検知するイベントをフィルタできる • パブリックイベントを検知するにはus-east-1でルールを作成する • アカウント固有イベントは、各リージョンごとにルールを作成する必要がある • 監視対象のアカウントが多くなると各アカウントの設定が必要

Slide 47

Slide 47 text

4.AWS Healthの活⽤例 47 n AWS Health を使⽤して新規イベントを検知する⽅法 例 ⽅法 例3(応⽤) AWS Organizationと統合し、組織内のアカウントのイベントを1つの委任アカウント に集約させる。Event Bridgeを連携し、イベント発⽣時にSNSで通知。 + AWS Organizations有効化 組織メンバーアカウント 管理アカウント (委任アカウント) Amazon EventBridge Amazon SNS 集約

Slide 48

Slide 48 text

4.AWS Healthの活⽤例 48 n AWS Health を使⽤して新規イベントを検知する⽅法 例 ⽅法 例3(応⽤) AWS Organizationsと統合し、組織内のアカウントのイベントを1つの委任アカウント に集約させる。 • Organizationsに紐づく全てのアカウントへのイベント情報を取得できる • ルールの設定で検知するイベントをフィルタできる • 組織全体のメンテナンスイベントを⼀括で管理できる • 組織内の全てのアカウントで組織ビューを有効化するなど事前設定は必要 https://docs.aws.amazon.com/ja_jp/health/latest/ug/enable-organizational-view-in-health-console.html

Slide 49

Slide 49 text

4.AWS Healthの活⽤例 49 n 新規イベントを検知した後はLambdaやSQSを使⽤して⾃動化も可能 例 ⽅法 例2 AWS Health DashboardとEvent Bridgeを連携し、イベント発⽣時にSNSで通知 例3 (応⽤) AWS Organizationと統合し、Health APIを使⽤して新規イベントを定期的に取得する Amazon EventBridge AWS Health AWS Lambda 検知 Amazon EC2 Amazon RDS イベント毎のアクション イベントソース

Slide 50

Slide 50 text

4.AWS Healthの活⽤例 50 n 社内事例の紹介 • Health APIを使⽤して、複数アカウント(※)の新規イベントを定期的に取得して通知する (※)同じ組織に所属していないためAWS Organizations統合ができない + AWS Health APIを利⽤ AWS Lambda 対象アカウント AWS STS 実⾏アカウント イベント取得(定期実⾏) 通知

Slide 51

Slide 51 text

4.活⽤例 51 n 社内事例として公開しています • AWS Healthのイベント情報を⼀元管理するダッシュボードを作成し、作業効率を⼤幅改善︕ イベント情報管理システムの構築 https://www.iret.co.jp/works/116.html

Slide 52

Slide 52 text

4.AWS Healthの活⽤例 52 n Health APIを使ってみて良かった点 • 全リージョンのイベントを取得可能 • パブリックイベントも取得可能 • APIの引数パラメータを使⽤して取得対象のイベントを絞れる

Slide 53

Slide 53 text

5. まとめ 53

Slide 54

Slide 54 text

5.まとめ 54 n AWS Health • どんなものか知る → 各AWS サービスからの通知イベント • ダッシュボードでの⾒⽅を知る → ダッシュボードやAPIを活⽤ • 運⽤例を知る → EventBridgeを使⽤してリアルタイム通知しイベント毎のアクション実⾏ → APIの活⽤