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
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
110
SpringBoot3.4の構造化ログ #kanjava
irof
2
990
富山発の個人開発サービスで日本中の学校の業務を改善した話
krpk1900
4
390
pylint custom ruleで始めるレビュー自動化
shogoujiie
0
120
PHPカンファレンス名古屋2025 タスク分解の試行錯誤〜レビュー負荷を下げるために〜
soichi
1
190
Amazon S3 TablesとAmazon S3 Metadataを触ってみた / 20250201-jawsug-tochigi-s3tables-s3metadata
kasacchiful
0
160
Conform を推す - Advocating for Conform
mizoguchicoji
3
690
一休.com のログイン体験を支える技術 〜Web Components x Vue.js 活用事例と最適化について〜
atsumim
0
470
チームリードになって変わったこと
isaka1022
0
200
クリーンアーキテクチャから見る依存の向きの大切さ
shimabox
2
270
Linux && Docker 研修/Linux && Docker training
forrep
24
4.5k
Multi Step Form, Decentralized Autonomous Organization
pumpkiinbell
1
740
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The Cost Of JavaScript in 2023
addyosmani
47
7.3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Writing Fast Ruby
sferik
628
61k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
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