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
2.4k
AWS Healthの通知の実装について考えてみた
AWS Healthの通知の実装について考えてみた
t-kikuchi
October 29, 2023
Tweet
Share
More Decks by t-kikuchi
See All by t-kikuchi
ClaudeCode_vs_GeminiCLI_Terraformで比較してみた
tkikuchi
1
6.9k
AWSLambdaMCPServerを使ってツールとMCPサーバを分離する
tkikuchi
1
4.3k
ネットワークの新要素ResourceGateway&Configuration関連アップデート
tkikuchi
0
2.5k
Terraform未経験の御様に対してどの ように導⼊を進めていったか
tkikuchi
4
820
塩野義製薬様のAWS統合管理戦略:Organizations設計と運用の具体例
tkikuchi
0
920
JAWSPANKRATION2024-ECS Best Practice All on board(english)
tkikuchi
0
980
JAWSPANKRATION2024-ECS Best Practice All on board(japanese)
tkikuchi
0
740
AWSOrganizationsユースケースで学ぶAWSアカウント管理ベストプラクティス
tkikuchi
1
1.2k
AWS Organizationsありなしパターン別AWSのマルチアカウント管理Tips
tkikuchi
2
1.1k
Other Decks in Technology
See All in Technology
AI時代にPdMとPMMはどう連携すべきか / PdM–PMM-collaboration-in-AI-era
rakus_dev
0
280
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
180
Kubernetes における cgroup v2 でのOut-Of-Memory 問題の解決
pfn
PRO
0
460
『FailNet~やらかし共有SNS~』エレベーターピッチ
yokomachi
1
200
【初心者向け】ローカルLLMの色々な動かし方まとめ
aratako
7
3.2k
ChatGPTとPlantUML/Mermaidによるソフトウェア設計
gowhich501
1
120
DDD集約とサービスコンテキスト境界との関係性
pandayumi
2
260
なぜテストマネージャの視点が 必要なのか? 〜 一歩先へ進むために 〜
moritamasami
0
110
BPaaSにおける人と協働する前提のAIエージェント-AWS登壇資料
kentarofujii
0
120
落ちる 落ちるよ サーバーは落ちる
suehiromasatoshi
0
140
2025年になってもまだMySQLが好き
yoku0825
8
4k
Bye-Bye Query Spaghetti: Write Queries You'll Actually Understand Using Pipelined SQL Syntax
tobiaslampertlotum
0
140
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.8k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Agile that works and the tools we love
rasmusluckow
330
21k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.5k
Visualization
eitanlees
148
16k
KATA
mclloyd
32
14k
Designing for Performance
lara
610
69k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
4 Signs Your Business is Dying
shpigford
184
22k
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