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 CDK] 1,000+のCloudWatch Alarmsを自動生成する技術 / [...
Search
hiroga
September 28, 2021
Programming
2
1.7k
[AWS CDK] 1,000+のCloudWatch Alarmsを自動生成する技術 / [AWS CDK] Technics to Generate 1,000+ CloudWatch Alarms
AWS CDKとAWS SDKを組み合わせ、監視・バックアップを簡単に行うためのテクニックをご紹介します。
hiroga
September 28, 2021
Tweet
Share
More Decks by hiroga
See All by hiroga
マルチモーダル理解と生成の統合 DeepSeek Janus, etc... / Multimodal Understanding and Generation Integration
hiroga
0
570
LlamaGen: LlamaのNext-Token予測を使った画像生成 / Autoregressive Model Beats Diffusion: Llama for Scalable Image Generation
hiroga
0
450
人事評価GPTsで評価の本質に向き合おう! / HR GPTs: Essential evaluations focus!
hiroga
1
420
生成AI元年を個人的に振り返る / Reflecting on First Year of the Generative-AI
hiroga
0
370
AWS Startup Day 2023 今日ここで! コスト削減ハンズオン / Cost-Saving Hands-On today!
hiroga
0
140
ChatGPT社内活用資料 / Internal use of ChatGPT
hiroga
0
130
マルチテナントSaaSのカスタム要件に、 Auth0テナントを分割せず向き合う! / Multi tenant SaaS with Auth0
hiroga
1
3k
雑な攻撃からELBを守る一工夫 +おまけ / Know-how to protect servers from miscellaneous attacks
hiroga
0
2.6k
NestJSで作るマルチテナントSaaS / Multi-tenant NestJS-based SaaS
hiroga
0
1.1k
Other Decks in Programming
See All in Programming
Bytecode Manipulation 으로 생산성 높이기
bigstark
2
360
第9回 情シス転職ミートアップ 株式会社IVRy(アイブリー)の紹介
ivry_presentationmaterials
1
170
Team topologies and the microservice architecture: a synergistic relationship
cer
PRO
0
860
deno-redisの紹介とJSRパッケージの運用について (toranoana.deno #21)
uki00a
0
110
iOSアプリ開発で 関数型プログラミングを実現する The Composable Architectureの紹介
yimajo
2
210
Kotlin エンジニアへ送る:Swift 案件に参加させられる日に備えて~似てるけど色々違う Swift の仕様 / from Kotlin to Swift
lovee
1
240
エンジニア向け採用ピッチ資料
inusan
0
130
赤裸々に公開。 TSKaigiのオフシーズン
takezoux2
0
140
来たるべき 8.0 に備えて React 19 新機能と React Router 固有機能の取捨選択とすり合わせを考える
oukayuka
2
800
F#で自在につくる静的ブログサイト - 関数型まつり2025
pizzacat83
0
310
GraphRAGの仕組みまるわかり
tosuri13
7
430
機械学習って何? 5分で解説頑張ってみる
kuroneko2828
0
220
Featured
See All Featured
The Language of Interfaces
destraynor
158
25k
Embracing the Ebb and Flow
colly
86
4.7k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
480
The World Runs on Bad Software
bkeepers
PRO
68
11k
Rebuilding a faster, lazier Slack
samanthasiow
81
9k
Visualization
eitanlees
146
16k
Docker and Python
trallard
44
3.4k
How to train your dragon (web standard)
notwaldorf
92
6.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Transcript
D E V D AY - 0 $ " 5
* 0 / c 4 & 1 5 & . # & 3
"NB[PO8FC4FSWJDFT *ODPSJUTB⒏MJBUFT"MMSJHIUT SFTFSWFE [AWS CDK] 1,000+のCloudWatch Alarmsを 自動生成する技術 小笠原寛明
GSPN $ "84$%, 4%,ͷΞʔΩςΫνϟˍϨγϐ
"NB[PO8FC4FSWJDFT *ODPSJUTB⒏MJBUFT"MMSJHIUT SFTFSWFE ຊηογϣϯͷΰʔϧ ձࣾհˍࣗݾհ ఆ͍ͯ͠Δࢹௌऀ
՝ "84$%, 4%,ͷΞʔΩςΫνϟ "84$%, 4%,ͷϨγϐ Agenda
"NB[PO8FC4FSWJDFT *ODPSJUTB⒏MJBUFT"MMSJHIUT SFTFSWFE ຊެԋɾࢿྉൃදऀʢখּݪʣͷௐࠪɾ࣮Λݩʹ࡞͍ͯ͠·͢ɻ ༰ʹޡΓΑΓྑ͍Ҋ͕͋Δ߹ɺͥͻ5XJUUFSʹͯ !YIJSPHBѼʹ ϦϓϥΠɾ%.͍͚ͨͩΕ͍Ͱ͢ɻ ͪΖΜɺ࣭ΦʔσΟΤϯεͷօ͞Μͷࣄྫڞ༗ͳͲେܴͰ͢ʂ 内容についての注意点
"NB[PO8FC4FSWJDFT *ODPSJUTB⒏MJBUFT"MMSJHIUT SFTFSWFE Please Tweet with #AWSDevDay πΠʔτશ෦ಡΈ·͢ʂ
None
"NB[PO8FC4FSWJDFT *ODPSJUTB⒏MJBUFT"MMSJHIUT SFTFSWFE 本セッションのゴール
"NB[PO8FC4FSWJDFT *ODPSJUTB⒏MJBUFT"MMSJHIUT SFTFSWFE چདྷͷ$MPVE'PSNBUJPO 5FSSBGPSNͰ͔ͬͨ͠ɺ ʮΞϓϦέʔγϣϯ͝ͱʹઃఆ͕ඞཁͳΠϯγσϯτରࡦʯΛ ҰׅͰߦ͑ΔΑ͏ʹͳΔ͜ͱɻ 本セッションのゴール
CloudFormationによる設定サンプル
AWS CDK + SDKによる実装サンプル
Amazon CloudWatch Alarms by AWS CDK + SDK
ઃఆ͖͢ͷ͕ଟ͗ͯ͢ɺ • $MPVE8BUDI"MBSNͷઃఆΕ • #BDLVQखಈ • ΤϥʔϩάΛ4MBDLʹྲྀͯ͠ͳ͍ $%,ΞϓϦέʔγϣϯͷઃఆͷΈ ͰҰׅରԠՄೳʹʂ Before
- After
"NB[PO8FC4FSWJDFT *ODPSJUTB⒏MJBUFT"MMSJHIUT SFTFSWFE 会社紹介&自己紹介
ΘΓ͔Μ ͕Μอݥ εϚϗอݥ ίϩφॿ͚߹͍อݥ า͘ͱ͓τΫอݥ ̍έΨอݥ ΫϨΧଳอݥνΣοΧʔ 保険会社でもあり、SaaSベンダーでもあります。
保険会社でもあり、SaaSベンダーでもあります。 顧客 保険会社* *事業会社や保険代理店 のご利用も可能 プラン選択 本人認証 告知・重要事項説明 会員資格確認 商品ページ(LP)
& 申込フォーム 契約参照 異動・解約 決済 契約更新 お客様 ポータル 査定・承認 問合せ 提出書類の参照 (電子データ) 支払記録 保険金 請求フォーム
保険会社を簡単に運営できるようにすることで、魅力的な商品作りのお手伝いをします。
"NB[PO8FC4FSWJDFT *ODPSJUTBGGJMJBUFT"MMSJHIUT SFTFSWFE 自己紹介 ご質問・ご感想大歓迎です! お気軽にフォロー&リプライ してください🙏🙏🙏
"NB[PO8FC4FSWJDFT *ODPSJUTBGGJMJBUFT"MMSJHIUT SFTFSWFE 想定している視聴者
"NB[PO8FC4FSWJDFT *ODPSJUTBGGJMJBUFT"MMSJHIUT SFTFSWFE ✅ ΞϓϦέʔγϣϯΤϯδχΞ ✅ 43& ✅ $%,Λ࣮ࡍͷݱͰ͍͍ͨਓʂ
想定している視聴者
"NB[PO8FC4FSWJDFT *ODPSJUTBGGJMJBUFT"MMSJHIUT SFTFSWFE 課題
実際にSlackであった会話(再現#1) CloudWatch Logsのログの量やばいですね 課金が爆増してるのこれかも… なんかAmplifyの使用量、 月曜日だけ高くないですか? Redashが容量不足で死んでます
実際にSlackであった会話(再現#2) エラーは出てましたが、 Slack通知が設定されてませんでしたね… すみません、LogGroupにSlack通知を接続 するのを忘れてました。 このエラー、先月から定期的に出てたみたい ですね…
"NB[PO8FC4FSWJDFT *ODPSJUTBGGJMJBUFT"MMSJHIUT SFTFSWFE AWS CDK + SDKのアーキテクチャ
CloudFormationによる設定サンプル(再掲)
Inspired by Radiosonde
AWS CDK + SDK AWS SDK AWS CDK Alarm SNS
Topic Alarm Alarm Alarm Ϧιʔε Ϧιʔε Ϧιʔε Ϧιʔε Ϧιʔε Ϧιʔε
実装例
Gitフローがおすすめ ローカル 開発環境にデプロイOK 開発環境 developブランチを反 映 本番環境 v1.6などタグでリリース
☑ ηΩϡϦςΟʢ(VBSE%VUZ 4UBDL4FUTʣ ✅ ωοτϫʔΫʢ$MPVE8BUDI.FUSJDTʣ ✅ αʔόʔʢ$MPVE8BUDI.FUSJDTʣ ✅ ΞϓϦέʔγϣϯʢΤϥʔϩάʣ ✅
ϑϩϯτΤϯυʢ֎ܗࢹʣ ☑ Ϗδωε্ͷత ✅ όοΫΞοϓʢ"84#BDLVQʣ AWS CDK + SDKの守備範囲
"NB[PO8FC4FSWJDFT *ODPSJUTBGGJMJBUFT"MMSJHIUT SFTFSWFE AWS CDK + SDKのレシピ
• $MPVE8BUDI.FUSJDT § &$ &$4 -BNCEB § 3%4 %ZNBNP%# 4
§ $MPVE8BUDI • $MPVE8BUDI-PHT /PUJGJDBUJPO • 3PVUFIFBMUIDIFDLT • "84#BDLVQ § &$ 3%4 %ZOBNP%# AWS CDK + SDKのレシピ
None
• ରͷϦιʔεΛҰׅऔಘͯ͠ઃఆ • -BNCEBͳͲΞΧϯτશମͰͷ੍ݶ͕͋Δ߹ʹศར • "MBSNͷ্༷ɺຖΞϥʔϜΛ0,ʹ͢-BNCEB͕͋ΔͱΑ͍ • "OPNBMZ%FUFDUJPOΛ͑ڥ͝ͱͷࠩҟΛ͋ΔఔແࢹͰ͖Δ CloudWatch Metrics
取得したEC2インスタンスに対して設定
しきい値の意図をコメントしよう
Anomaly Detectionも設定できる
AWS Chatbotで通知するとグラフがついてくる
• KVTU*O$BTFͰɺҎ্ͷ"84ΞΧϯτͰ Ҏ্ͷ $MPVE8BUDI"MBSNΛཧ͍ͯ͠Δ • ΞΫηεͷਪҠʹ͜Ε·ͰҎ্ʹහײʹͳͬͨ • &YʮΞΫηεͷਪҠ͕ݟͨ͜ͱͳ͔ͬͨͷͰɺϝϧϚΨͷӨڹ͔ௐࠪ͠·͢ʯ • 4MBDL্Ͱ௨ͷάϥϑ͕ݟΒΕΔͷ͕خ͍͠
• खಈͰ࡞ͨ͠3FEBTIΠϯελϯεͷετϨʔδ༻ྔͳͲɺຯʹ ॏཁͳʹ͙͢ʹؾ͚ΔΑ͏ʹͳͬͨɻ CloudWatch MetricsをCDKで管理して
None
• -PH(SPVQʹର͢Δ4VCTDSJQUJPO'JMUFSΛҰׅઃఆ • -BNCEBͷΑ͏ʹࣗಈͰ-PH(SPVQ͕Ͱ͖Δ߹ʹߴ͍ޮՌ • 4VCTDSJQUJPOϑΟϧλʔͰͳ͘-BNCEBͰϑΟϧλʔ͢Δख • ਖ਼نදݱ͕ར༻Ͱ͖ɺ୯ମςετ͕͍͢͠ • -BNCEBͷ࣮ߦճ͕૿͑ΔͷͰɺίετ্͕͕Δ
• ௨ϝοηʔδʹ$MPVE8BUDIͷϦϯΫΛೖΕΔͱੜ࢈ੑ61 • Τϥʔϩά͚ͩΛग़ྗ͢Δ-BNCEBΛ࡞Δͱݕূ͕ศར • ௨༻-BNCEBࣗࢹର͔Βআ֎͢Δ͜ͱ • Ԡ༻,JOFTJT%BUB'JSFIPTFʹΑΔ4ͷόοΫΞοϓ • Ԡ༻%BUBEPHͷసૹ CloudWatch Logs + Notification
実装例
CloudWatch Logsへのリンクを埋め込む
• ΤϥʔࢥͬͨΑΓى͖͍ͯΔ • "84$IBUCPUͷΤϥʔʢ௨͕དྷͳ͍ͷͰਖ਼ৗͩͱࢥͬͯ͠·͏ʣ • "1*(BUFXBZͷΤϥʔ • ීஈΘͳ͍Ϧʔδϣϯͷ-BNCEBͷΤϥʔ • $MPVE8BUDI-PHTͷϦϯΫධ
• Ԡ༻%BUBEPHͷϦϯΫ CloudWatch Logsの通知をCDKで管理して
None
• 3PVUFͷϨίʔυ͔ΒࢹରΛࣗಈੜ • KVTU*O$BTFͷྫ*1ΞυϨε·ͨ$MPVE'SPOUʹϧʔςΟϯά͞Ε͍ͯΕࢹ • ΤϯυϙΠϯτ͋ͨΓ.POUI͔Β • "84͔"84Ҏ֎͔ͰҟͳΔɻ • #BTJDೝূΫϥΠΞϯτূ໌ॻར༻Ͱ͖ͳ͍
• Ԡ༻3PVUFҎ֎ͰϨίʔυΛཧ͍ͯͯ͠˓ • Ԡ༻֎ܗࢹʹผͷαʔϏεʢ.BDLFSFM 6QUJNF3PCPU FUDʜʣ Route53 health checks
Route53 health checks
レコードから監視対象を自動抽出
• ࢹରͷՃ࿙Ε͕ແ͘ͳͬͨʂ • ैདྷϑϩϯτΤϯυΤϯδχΞ͕.BDLFSFMʹొ͍ͯͨ͠ • Ԡ༻ϦϯΫΕݕͷͨΊʹ$MPVE8BUDI4ZOUIFUJDTΛಋೖ͍ͨ͠ Route53 Health CheckをCDKで管理して
None
• &$ 3%4 %ZOBNP%#ͳͲͷόοΫΞοϓΛ·ͱΊͯઃఆ • खಈͰ࡞ͬͨӡ༻ͷͨΊͷ&$ͳͲରԠͰ͖Δ • 4QPU'MFFUΛআ֎͠ͳ͍ͱόοΫΞοϓ͕ࡍݶͳ͘૿͑ΔͷͰҙ • &$ΠϯελϯεͷλάͰݟ͚ΒΕ·͢
• όοΫΞοϓର͝ͱʹ7BVMUΛ࡞Βͳ͍Α͏ʹҙ • 7BVMUͷ࡞ݸʹϦʔδϣϯ͝ͱͷ্ݶ͋Γ • όοΫΞοϓͷΠϕϯτΛ௨Մೳ • 4/4ొ·ͨ&WFOU#SJEHFܦ༝ͰՄೳʢະݕূʣ AWS Backup
AWS Backup
• खಈͰ࡞ͬͨϦιʔεόοΫΞοϓ͕͋Γ҆৺ • όοΫΞοϓઃఆΛूதཧͰ͖ΔͷͰɺηΩϡϦςΟνΣοΫ˓ AWS BackupをCDKで管理して
"NB[PO8FC4FSWJDFT *ODPSJUTB⒏MJBUFT"MMSJHIUT SFTFSWFE まとめ
$MPVE'PSNBUJPOͰ͔ͬͨ͠ΞϓϦέʔγϣϯ͝ͱͷࢹɺ "84$%,ͱ4%,ΛΈ߹ΘͤΕରԠՄೳʂ まとめ
We’re HERING!!! KVTU*O$BTFͰɺҰॹʹಇ͘ϝϯόʔΛશ৬छͰืू͍ͯ͠·͢ʂ ׂʹͱΒΘΕͣɺ7JTJPOʹ͔ͬͯਐͰ͖Δํʂ • ΞϓϦέʔγϣϯΤϯδχΞʢϑϩϯτΤϯυˍόοΫΤϯυʣ • 43& • σβΠφʔ
• 1E.ɾ4" • "OENPSF
• DPEFOJ[FUPPMTSBEJPTPOEFc(JU)VC • <$%,>&$ϦετΛऔಘͯ͠શʹ$MPVE8BUDIΞϥʔϜΛઃఆ͢Δ c%FWFMPQFST*0 • "84$%,ͰطଘͷϩάάϧʔϓʹϝτϦΫεϑΟϧλΛઃఆ͢Δํ๏ c%FWFMPQFST*0 • $MPVE8BUDI"MBSNTΛࣗಈల։͢Δ
CZ"84$%, • $MPVE8BUDI-PHTͷ4MBDL௨ࣗಈԽ CZ"84$%, • ֎ܗࢹͷࣗಈηοτΞοϓʂ3PVUF .BDLFSFMࣗಈԽΤϯδχΞͷ-5ձ 参考資料
Thank you! "NB[PO8FC4FSWJDFT *ODPSJUTB⒏MJBUFT"MMSJHIUT SFTFSWFE <"84$%,>5FDIOJDTUP(FOFSBUF $MPVE8BUDI"MBSNT •
小笠原寛明 • 5PNPLJ4BUP(原稿レビュー) • ,PUB5PNJNBUTV(原稿レビュー・実装) • 5ZBNBIPSJ(登壇練習) 4QFDJBM5IBOLT
Please complete the session survey "NB[PO8FC4FSWJDFT *ODPSJUTBGGJMJBUFT"MMSJHIUT SFTFSWFE