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.6k
[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
380
LlamaGen: LlamaのNext-Token予測を使った画像生成 / Autoregressive Model Beats Diffusion: Llama for Scalable Image Generation
hiroga
0
340
人事評価GPTsで評価の本質に向き合おう! / HR GPTs: Essential evaluations focus!
hiroga
1
390
生成AI元年を個人的に振り返る / Reflecting on First Year of the Generative-AI
hiroga
0
330
AWS Startup Day 2023 今日ここで! コスト削減ハンズオン / Cost-Saving Hands-On today!
hiroga
0
19
ChatGPT社内活用資料 / Internal use of ChatGPT
hiroga
0
98
マルチテナントSaaSのカスタム要件に、 Auth0テナントを分割せず向き合う! / Multi tenant SaaS with Auth0
hiroga
1
2.8k
雑な攻撃からELBを守る一工夫 +おまけ / Know-how to protect servers from miscellaneous attacks
hiroga
0
2.5k
NestJSで作るマルチテナントSaaS / Multi-tenant NestJS-based SaaS
hiroga
0
1k
Other Decks in Programming
See All in Programming
AIの力でお手軽Chrome拡張機能作り
taiseiue
0
170
CI改善もDatadogとともに
taumu
0
110
Ruby on cygwin 2025-02
fd0
0
140
Grafana Cloudとソラカメ
devoc
0
170
Pythonでもちょっとリッチな見た目のアプリを設計してみる
ueponx
1
550
『GO』アプリ バックエンドサーバのコスト削減
mot_techtalk
0
140
個人アプリを2年ぶりにアプデしたから褒めて / I just updated my personal app, praise me!
lovee
0
340
時計仕掛けのCompose
mkeeda
1
290
Java Webフレームワークの現状 / java web framework at burikaigi
kishida
9
2.2k
技術を根付かせる / How to make technology take root
kubode
1
250
Flutter × Firebase Genkit で加速する生成 AI アプリ開発
coborinai
0
150
JavaScriptツール群「UnJS」を5分で一気に駆け巡る!
k1tikurisu
9
1.8k
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Gamification - CAS2011
davidbonilla
80
5.1k
Site-Speed That Sticks
csswizardry
4
380
The Art of Programming - Codeland 2020
erikaheidi
53
13k
It's Worth the Effort
3n
184
28k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
Building Adaptive Systems
keathley
40
2.4k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Agile that works and the tools we love
rasmusluckow
328
21k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
550
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