Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS Healthの通知の実装について考えてみた
Search
t-kikuchi
October 29, 2023
Technology
0
2k
AWS Healthの通知の実装について考えてみた
AWS Healthの通知の実装について考えてみた
t-kikuchi
October 29, 2023
Tweet
Share
More Decks by t-kikuchi
See All by t-kikuchi
ネットワークの新要素ResourceGateway&Configuration関連アップデート
tkikuchi
0
1.3k
Terraform未経験の御様に対してどの ように導⼊を進めていったか
tkikuchi
3
610
塩野義製薬様のAWS統合管理戦略:Organizations設計と運用の具体例
tkikuchi
0
540
JAWSPANKRATION2024-ECS Best Practice All on board(english)
tkikuchi
0
710
JAWSPANKRATION2024-ECS Best Practice All on board(japanese)
tkikuchi
0
500
AWSOrganizationsユースケースで学ぶAWSアカウント管理ベストプラクティス
tkikuchi
1
730
AWS Organizationsありなしパターン別AWSのマルチアカウント管理Tips
tkikuchi
1
570
GuardDutyとSysdigのランタイムセキュリティ機能を比較してみる
tkikuchi
1
1.6k
developersio-2023-aws-api-publication-checklist
tkikuchi
11
9.3k
Other Decks in Technology
See All in Technology
データ基盤の成長を加速させる:アイスタイルにおける挑戦と教訓
tsuda7
3
650
5分で紹介する生成AIエージェントとAmazon Bedrock Agents / 5-minutes introduction to generative AI agents and Amazon Bedrock Agents
hideakiaoyagi
0
220
FastConnect の冗長性
ocise
1
9.6k
バックエンドエンジニアのためのフロントエンド入門 #devsumiC
panda_program
16
6.5k
テストアーキテクチャ設計で実現する高品質で高スピードな開発の実践 / Test Architecture Design in Practice
ropqa
3
710
これからSREになる人と、これからもSREをやっていく人へ
masayoshi
6
4.1k
Ask! NIKKEI RAG検索技術の深層
hotchpotch
13
2.8k
偶然 × 行動で人生の可能性を広げよう / Serendipity × Action: Discover Your Possibilities
ar_tama
1
740
トラシューアニマルになろう ~開発者だからこそできる、安定したサービス作りの秘訣~
jacopen
2
1.5k
Classmethod AI Talks(CATs) #15 司会進行スライド(2025.02.06) / classmethod-ai-talks-aka-cats_moderator-slides_vol15_2025-02-06
shinyaa31
0
170
RSNA2024振り返り
nanachi
0
500
Culture Deck
optfit
0
330
Featured
See All Featured
It's Worth the Effort
3n
184
28k
Optimizing for Happiness
mojombo
376
70k
A designer walks into a library…
pauljervisheath
205
24k
We Have a Design System, Now What?
morganepeng
51
7.4k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
12
950
Designing Experiences People Love
moore
139
23k
Designing for humans not robots
tammielis
250
25k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Bash Introduction
62gerente
610
210k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Being A Developer After 40
akosma
89
590k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Transcript
1 AWS事業本部 コンサルティング部 菊池 聡規 AWS Healthの通知の実装について 考えてみた
• 【名前】 菊池 聡規 • 【所属】 AWS 事業本部 コンサルティング部 •
【キャリア】 金融機関向けオンプレのインフラエンジニア10年ほど→ 自社Webサービスをもつ企業で3年ほど→ クラスメソッドにジョイン • 【Blog】 https://dev.classmethod.jp/author/tooti/ • 【好きなAWSサービス】 Amazon EventBridge, AWS Step Functions, ECS 2 自己紹介
3 AWSからの通知、どう管理してます?
1. AWS通知実装の選択肢 2. AHAで実装した例 4 アジェンダ
5 1. AWS通知実装の選択肢
6 1. AWS通知実装の選択肢 • AWS Healthイベント通知に関する悩み ◦ 複数AWSアカウントのイベントを集約して管理したい ◦ AWSアカウントが増えたときに自動で通知の仕組みが設定さ
れるようにしたい ◦ 通知をフィルタリングして必要なものだけ受け取るようにしたい
7 1. AWS通知実装の選択肢 • 各アカウントにEventBridgeとSNSをデプロイ • EventBridgeを使った組織内イベントの集約 • AWS Health
Aware (AHA)
8 1. AWS通知実装の選択肢 • 各アカウントにEventBridgeとSNSをデプロイ ◦ CloudFormation StackSets等を使ってAWSアカウントがOUに参加し たときに通知の仕組みをデプロイする
9 1. AWS通知実装の選択肢 • EventBridgeを使った組織内イベントの集約 ◦ 最近出たアップデート(2023/10/5) ◦ 元々、AWS HealthのOrganizations連携はあった
◦ マネージメントコンソールから組織内のイベントを集約して確認すること はできていた ◦ しかしEventBridgeに組織内のイベントを連携することができなかった ⇒ これが出来るようになった
10 1. AWS通知実装の選択肢 • 実装イメージ
11 1. AWS通知実装の選択肢 • AWS Health Aware (AHA) ◦ AWSから提供されているソリューション
◦ CloudFormationやTerraformを使ってデプロイ ◦ slack等多様な通知先 ◦ 大まかなフィルタリングが可能 ※https://github.com/aws-samples/aws-health-awareより画像引用
12 2. 通知の実装
13 2. 通知の実装 • 要件 ◦ AWSアカウントは30個程度 ◦ Organizationsで管理されている ◦
AWSアカウントごとに管理者が異なる ◦ 各アカウントの通知は各アカウントの管理者が受け取りたい ◦ AWS全体障害の場合は全体に対して周知したい ◦ 特定リージョンの通知だけ受け取りたい
14 2. 通知の実装 • AWS Healthのイベント種別について ◦ ヘルスイベントの種別 ▪ 公開:
リージョン単位での障害等、AWS全体に渡って影響があるも の。アカウントでそのサービスを使用していなくても通知される ▪ アカウント固有:対象のアカウントに固有のイベント
15 2. 通知の実装 • AWS Healthのイベント種別について ◦ イベントカテゴリコードの種別 ▪ issue:これらのイベントは、AWS
のサービスまたはリソースに影響 を与える予期しないイベントです。(いわゆる障害) ▪ accountNotification: アカウントとサービスの管理またはセキュリ ティに関する情報を提供(EOLの通知やアカウント料金未払いによ るアカウント停止など様々な通知) ▪ scheduledChange:サービスとリソースに対する今後の変更に関す る情報を提供します。(EC2にて再起動が必要となるメンテナンス通 知等)
16 2. 通知の実装 • 実装イメージ
17 2. 通知の実装 • StepFunctionsの部分
18 2. 通知の実装 • メッセージ整形の部分 # AHAからのメッセージを整形 ShapingAWSHealthMessage: Type: Pass
Parameters: Subject.$: "States.Format('{}-{}-{}', $.detail.eventTypeCode, $.region, $.account)" Message.$: "States.Format('AWSHealth Event\n\nAccountID: {}\nRegion: {}\nServiceName: {}\neventScopeCode: {}\neventTypeCategory: {}\neventTypeCode: {}\nstartTime: {}\nlastUpdatedTime: {}\nDescription: {}', $.account, $.region, $.detail.service, $.detail.eventScopeCode, $.detail.eventTypeCategory, $.detail.eventTypeCode, $.detail.startTime, $.detail.lastUpdatedTime, $.detail.eventDescription)" ResultPath: $.generate Next: ChoiceHealthEventScopeCode
19 2. 通知の実装 • 各アカウント用SNSトピックに通知の部分 # ヘルスイベント種別がアカウント固有の場合は各アカウント用の SNSトピックに通知 SendAcctHealthEventMessage: Type:
Task Resource: arn:aws:states:::aws-sdk:sns:publish Parameters: Subject.$: $.generate.Subject Message.$: $.generate.Message TopicArn.$: !Sub "States.Format('arn:aws:sns:${AWS::Region}:${AWS::AccountId}:${TopicNamePrefix}-{}', $.account)"
20