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を自動生成する技術 / [AWS CDK] Technics to Generate 1,000+ CloudWatch Alarms
Search
hiroga
September 28, 2021
Programming
2
1.5k
[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
人事評価GPTsで評価の本質に向き合おう! / HR GPTs: Essential evaluations focus!
hiroga
1
340
生成AI元年を個人的に振り返る / Reflecting on First Year of the Generative-AI
hiroga
0
260
AWS Startup Day 2023 今日ここで! コスト削減ハンズオン / Cost-Saving Hands-On today!
hiroga
0
10
ChatGPT社内活用資料 / Internal use of ChatGPT
hiroga
0
66
マルチテナントSaaSのカスタム要件に、 Auth0テナントを分割せず向き合う! / Multi tenant SaaS with Auth0
hiroga
1
2.3k
雑な攻撃からELBを守る一工夫 +おまけ / Know-how to protect servers from miscellaneous attacks
hiroga
0
2.2k
NestJSで作るマルチテナントSaaS / Multi-tenant NestJS-based SaaS
hiroga
1
850
Coralの投資先にあらゆる保険金請求をWeb化しようとしている会社があるらしいですよ
hiroga
1
100
CloudWatch LogsのSlack通知自動化 by AWS-CDK
hiroga
0
770
Other Decks in Programming
See All in Programming
実用的かつリーズナブルな 「Azure × Gemini × LINE」~キャラクターBot 実装ライブデモ~
tomodo_ysys
1
170
[After Kotlin Fest 2024 LT Night @ Sansan] もっともっとKotlinを好きになる!K2 Compiler Pluginで遊んでみよう!
kitakkun
2
260
Namespace on read
tagomoris
2
370
最古の関数型言語「Lisp」ことはじめ / lisp_in_kamiyama
uhooi
1
190
入社1ヶ月でここまでやった!Findy Toolsインフラ支援の最適化
rvirus0817
6
1.4k
AHC035解説
terryu16
0
710
生成AIをkintoneに連携してみた
hideg
0
230
20240706_CDKConf
takuyay0ne
0
1.2k
Introduction of Happy Eyeballs Version 2 (RFC8305) to the Socket library
coe401_
1
220
AWS初心者ってどうやってAWSを学ぶ?〜アプリエンジニアがやってよかったアーキテクチャ学習方法〜
yamanashi_ren01
0
190
Polarsの成長: v0.14からv1.0までの変遷と今後の展望
zerebom
1
350
HMSコンペ 11th Solution (team : kansai-kaggler)
t88
1
680
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
26
2.1k
Automating Front-end Workflow
addyosmani
1362
200k
Build your cross-platform service in a week with App Engine
jlugia
227
17k
Producing Creativity
orderedlist
PRO
340
39k
Faster Mobile Websites
deanohume
303
30k
Bash Introduction
62gerente
607
210k
Done Done
chrislema
179
15k
Art, The Web, and Tiny UX
lynnandtonic
291
20k
Optimising Largest Contentful Paint
csswizardry
18
2.6k
Gamification - CAS2011
davidbonilla
78
4.9k
Making Projects Easy
brettharned
111
5.7k
The Invisible Customer
myddelton
117
13k
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