Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[AWS CDK] 1,000+のCloudWatch Alarmsを自動生成する技術 / [AWS CDK] Technics to Generate 1,000+ CloudWatch Alarms

8e8410eb785755ae2cb485f85dbab6e8?s=47 hiroga
September 28, 2021

[AWS CDK] 1,000+のCloudWatch Alarmsを自動生成する技術 / [AWS CDK] Technics to Generate 1,000+ CloudWatch Alarms

AWS CDKとAWS SDKを組み合わせ、監視・バックアップを簡単に行うためのテクニックをご紹介します。

8e8410eb785755ae2cb485f85dbab6e8?s=128

hiroga

September 28, 2021
Tweet

Transcript

  1. D E V D AY - 0 $ " 5

    * 0 /  c  4 & 1 5 & . # & 3        
  2. ˜ "NB[PO8FC4FSWJDFT *ODPSJUTB⒏MJBUFT"MMSJHIUT SFTFSWFE [AWS CDK] 1,000+のCloudWatch Alarmsを 自動生成する技術 小笠原寛明

    GSPN $   "84$%, 4%,ͷΞʔΩςΫνϟˍϨγϐ
  3. ˜ "NB[PO8FC4FSWJDFT *ODPSJUTB⒏MJBUFT"MMSJHIUT SFTFSWFE  ຊηογϣϯͷΰʔϧ  ձࣾ঺հˍࣗݾ঺հ  ૝ఆ͍ͯ͠Δࢹௌऀ

     ՝୊  "84$%, 4%,ͷΞʔΩςΫνϟ  "84$%, 4%,ͷϨγϐ Agenda
  4. ˜ "NB[PO8FC4FSWJDFT *ODPSJUTB⒏MJBUFT"MMSJHIUT SFTFSWFE ຊެԋɾࢿྉ͸ൃදऀʢখּݪʣͷௐࠪɾ࣮૷Λݩʹ࡞੒͍ͯ͠·͢ɻ ಺༰ʹޡΓ΍ΑΓྑ͍Ҋ͕͋Δ৔߹ɺͥͻ5XJUUFSʹͯ !YIJSPHBѼʹ ϦϓϥΠɾ%.͍͚ͨͩΕ͹޾͍Ͱ͢ɻ ΋ͪΖΜɺ࣭໰΍ΦʔσΟΤϯεͷօ͞Μͷࣄྫڞ༗ͳͲ΋େ׻ܴͰ͢ʂ 内容についての注意点

  5. ˜ "NB[PO8FC4FSWJDFT *ODPSJUTB⒏MJBUFT"MMSJHIUT SFTFSWFE Please Tweet with #AWSDevDay πΠʔτશ෦ಡΈ·͢ʂ

  6. None
  7. ˜ "NB[PO8FC4FSWJDFT *ODPSJUTB⒏MJBUFT"MMSJHIUT SFTFSWFE 本セッションのゴール

  8. ˜ "NB[PO8FC4FSWJDFT *ODPSJUTB⒏MJBUFT"MMSJHIUT SFTFSWFE چདྷͷ$MPVE'PSNBUJPO 5FSSBGPSNͰ͸೉͔ͬͨ͠ɺ ʮΞϓϦέʔγϣϯ͝ͱʹઃఆ͕ඞཁͳΠϯγσϯτରࡦʯΛ ҰׅͰߦ͑ΔΑ͏ʹͳΔ͜ͱɻ 本セッションのゴール

  9. CloudFormationによる設定サンプル

  10. AWS CDK + SDKによる実装サンプル

  11. Amazon CloudWatch Alarms by AWS CDK + SDK

  12. ઃఆ͢΂͖΋ͷ͕ଟ͗ͯ͢ɺ • $MPVE8BUDI"MBSNͷઃఆ๨Ε • #BDLVQ͸खಈ • ΤϥʔϩάΛ4MBDLʹྲྀͯ͠ͳ͍ $%,ΞϓϦέʔγϣϯͷઃఆͷΈ ͰҰׅରԠՄೳʹʂ Before

    - After
  13. ˜ "NB[PO8FC4FSWJDFT *ODPSJUTB⒏MJBUFT"MMSJHIUT SFTFSWFE 会社紹介&自己紹介

  14.   ΘΓ͔Μ ͕Μอݥ εϚϗอݥ ίϩφॿ͚߹͍อݥ า͘ͱ͓τΫอݥ ̍೔έΨอݥ ΫϨΧ෇ଳอݥνΣοΧʔ 保険会社でもあり、SaaSベンダーでもあります。

  15. 保険会社でもあり、SaaSベンダーでもあります。 顧客 保険会社* *事業会社や保険代理店 のご利用も可能 プラン選択 本人認証 告知・重要事項説明 会員資格確認 商品ページ(LP)

    & 申込フォーム 契約参照 異動・解約 決済 契約更新 お客様 ポータル 査定・承認 問合せ 提出書類の参照 (電子データ) 支払記録 保険金 請求フォーム
  16. 保険会社を簡単に運営できるようにすることで、魅力的な商品作りのお手伝いをします。

  17. ˜ "NB[PO8FC4FSWJDFT *ODPSJUTBGGJMJBUFT"MMSJHIUT SFTFSWFE 自己紹介 ご質問・ご感想大歓迎です! お気軽にフォロー&リプライ してください🙏🙏🙏

  18. ˜ "NB[PO8FC4FSWJDFT *ODPSJUTBGGJMJBUFT"MMSJHIUT SFTFSWFE 想定している視聴者

  19. ˜ "NB[PO8FC4FSWJDFT *ODPSJUTBGGJMJBUFT"MMSJHIUT SFTFSWFE ✅ ΞϓϦέʔγϣϯΤϯδχΞ ✅ 43& ✅ $%,Λ࣮ࡍͷݱ৔Ͱ࢖͍͍ͨਓʂ

    想定している視聴者
  20. ˜ "NB[PO8FC4FSWJDFT *ODPSJUTBGGJMJBUFT"MMSJHIUT SFTFSWFE 課題

  21. 実際にSlackであった会話(再現#1) CloudWatch Logsのログの量やばいですね 課金が爆増してるのこれかも… なんかAmplifyの使用量、 月曜日だけ高くないですか? Redashが容量不足で死んでます

  22. 実際にSlackであった会話(再現#2) エラーは出てましたが、 Slack通知が設定されてませんでしたね… すみません、LogGroupにSlack通知を接続 するのを忘れてました。 このエラー、先月から定期的に出てたみたい ですね…

  23. ˜ "NB[PO8FC4FSWJDFT *ODPSJUTBGGJMJBUFT"MMSJHIUT SFTFSWFE AWS CDK + SDKのアーキテクチャ

  24. CloudFormationによる設定サンプル(再掲)

  25. Inspired by Radiosonde

  26. AWS CDK + SDK AWS SDK AWS CDK Alarm SNS

    Topic Alarm Alarm Alarm Ϧιʔε Ϧιʔε Ϧιʔε Ϧιʔε Ϧιʔε Ϧιʔε
  27. 実装例

  28. Gitフローがおすすめ ローカル 開発環境にデプロイOK 開発環境 developブランチを反 映 本番環境 v1.6などタグでリリース

  29. ☑ ηΩϡϦςΟʢ(VBSE%VUZ 4UBDL4FUT౳ʣ ✅ ωοτϫʔΫʢ$MPVE8BUDI.FUSJDTʣ ✅ αʔόʔʢ$MPVE8BUDI.FUSJDTʣ ✅ ΞϓϦέʔγϣϯʢΤϥʔϩάʣ ✅

    ϑϩϯτΤϯυʢ֎ܗ؂ࢹʣ ☑ Ϗδωε্ͷ໨త ✅ όοΫΞοϓʢ"84#BDLVQʣ AWS CDK + SDKの守備範囲
  30. ˜ "NB[PO8FC4FSWJDFT *ODPSJUTBGGJMJBUFT"MMSJHIUT SFTFSWFE AWS CDK + SDKのレシピ

  31. • $MPVE8BUDI.FUSJDT § &$ &$4 -BNCEB § 3%4 %ZNBNP%# 4

    § $MPVE8BUDI • $MPVE8BUDI-PHT /PUJGJDBUJPO • 3PVUFIFBMUIDIFDLT • "84#BDLVQ § &$ 3%4 %ZOBNP%# AWS CDK + SDKのレシピ
  32. None
  33. • ର৅ͷϦιʔεΛҰׅऔಘͯ͠ઃఆ • -BNCEBͳͲΞΧ΢ϯτશମͰͷ੍ݶ͕͋Δ৔߹ʹ΋ศར • "MBSNͷ࢓্༷ɺຖ೔ΞϥʔϜΛ0,ʹ໭͢-BNCEB͕͋ΔͱΑ͍ • "OPNBMZ%FUFDUJPOΛ࢖͑͹؀ڥ͝ͱͷࠩҟΛ͋Δఔ౓ແࢹͰ͖Δ CloudWatch Metrics

  34. 取得したEC2インスタンスに対して設定

  35. しきい値の意図をコメントしよう

  36. Anomaly Detectionも設定できる

  37. AWS Chatbotで通知するとグラフがついてくる

  38. • KVTU*O$BTFͰ͸ɺҎ্ͷ"84ΞΧ΢ϯτͰ Ҏ্ͷ $MPVE8BUDI"MBSNΛ؅ཧ͍ͯ͠Δ • ΞΫηε਺ͷਪҠʹ͜Ε·ͰҎ্ʹහײʹͳͬͨ • &YʮΞΫηε਺ͷਪҠ͕ݟͨ͜ͱͳ͔ͬͨͷͰɺϝϧϚΨͷӨڹ͔ௐࠪ͠·͢ʯ • 4MBDL্Ͱ௨஌ͷάϥϑ͕ݟΒΕΔͷ͕خ͍͠

    • खಈͰ࡞੒ͨ͠3FEBTIΠϯελϯεͷετϨʔδ࢖༻ྔͳͲɺ஍ຯʹ ॏཁͳ໰୊ʹ͙͢ʹؾ෇͚ΔΑ͏ʹͳͬͨɻ CloudWatch MetricsをCDKで管理して
  39. None
  40. • -PH(SPVQʹର͢Δ4VCTDSJQUJPO'JMUFSΛҰׅઃఆ • -BNCEBͷΑ͏ʹࣗಈͰ-PH(SPVQ͕Ͱ͖Δ৔߹ʹߴ͍ޮՌ • 4VCTDSJQUJPOϑΟϧλʔͰ͸ͳ͘-BNCEBͰϑΟϧλʔ͢Δख΋ • ਖ਼نදݱ͕ར༻Ͱ͖ɺ୯ମςετ͕͠΍͍͢ • -BNCEBͷ࣮ߦճ਺͕૿͑ΔͷͰɺίετ্͕͕Δ

    • ௨஌ϝοηʔδʹ$MPVE8BUDI΁ͷϦϯΫΛೖΕΔͱੜ࢈ੑ61 • Τϥʔϩά͚ͩΛग़ྗ͢Δ-BNCEBΛ࡞Δͱݕূ͕ศར • ௨஌༻-BNCEBࣗ਎͸؂ࢹର৅͔Βআ֎͢Δ͜ͱ • Ԡ༻,JOFTJT%BUB'JSFIPTFʹΑΔ4΁ͷόοΫΞοϓ • Ԡ༻%BUBEPH΁ͷసૹ CloudWatch Logs + Notification
  41. 実装例

  42. CloudWatch Logsへのリンクを埋め込む

  43. • Τϥʔ͸ࢥͬͨΑΓ΋ى͖͍ͯΔ • "84$IBUCPUͷΤϥʔʢ௨஌͕དྷͳ͍ͷͰਖ਼ৗͩͱࢥͬͯ͠·͏ʣ • "1*(BUFXBZͷΤϥʔ • ීஈ࢖Θͳ͍Ϧʔδϣϯͷ-BNCEBͷΤϥʔ • $MPVE8BUDI-PHT΁ͷϦϯΫ͸޷ධ

    • Ԡ༻%BUBEPH΁ͷϦϯΫ CloudWatch Logsの通知をCDKで管理して
  44. None
  45. • 3PVUFͷϨίʔυ͔Β؂ࢹର৅Λࣗಈੜ੒ • KVTU*O$BTFͷྫ*1ΞυϨε·ͨ͸$MPVE'SPOUʹϧʔςΟϯά͞Ε͍ͯΕ͹؂ࢹ • ΤϯυϙΠϯτ͋ͨΓ.POUI͔Β • "84͔"84Ҏ֎͔ͰҟͳΔɻ • #BTJDೝূ΍ΫϥΠΞϯτূ໌ॻ͸ར༻Ͱ͖ͳ͍

    • Ԡ༻3PVUFҎ֎ͰϨίʔυΛ؅ཧ͍ͯͯ͠΋˓ • Ԡ༻֎ܗ؂ࢹʹผͷαʔϏεʢ.BDLFSFM 6QUJNF3PCPU FUDʜʣ Route53 health checks
  46. Route53 health checks

  47. レコードから監視対象を自動抽出

  48. • ؂ࢹର৅ͷ௥Ճ࿙Ε͕ແ͘ͳͬͨʂ • ैདྷ͸ϑϩϯτΤϯυΤϯδχΞ͕౎౓.BDLFSFMʹొ࿥͍ͯͨ͠ • Ԡ༻ϦϯΫ੾Εݕ஌ͷͨΊʹ$MPVE8BUDI4ZOUIFUJDTΛಋೖ͍ͨ͠ Route53 Health CheckをCDKで管理して

  49. None
  50. • &$ 3%4 %ZOBNP%#ͳͲͷόοΫΞοϓΛ·ͱΊͯઃఆ • खಈͰ࡞ͬͨӡ༻ͷͨΊͷ&$ͳͲ΋ରԠͰ͖Δ • 4QPU'MFFUΛআ֎͠ͳ͍ͱόοΫΞοϓ਺͕ࡍݶͳ͘૿͑ΔͷͰ஫ҙ • &$ΠϯελϯεͷλάͰݟ෼͚ΒΕ·͢

    • όοΫΞοϓର৅͝ͱʹ7BVMUΛ࡞Βͳ͍Α͏ʹ஫ҙ • 7BVMUͷ࡞੒ݸ਺ʹ͸Ϧʔδϣϯ͝ͱͷ্ݶ͋Γ • όοΫΞοϓͷΠϕϯτΛ௨஌Մೳ • 4/4ొ࿥·ͨ͸&WFOU#SJEHFܦ༝ͰՄೳʢະݕূʣ AWS Backup
  51. AWS Backup

  52. • खಈͰ࡞ͬͨϦιʔε΋όοΫΞοϓ͕͋Γ҆৺ • όοΫΞοϓઃఆΛूத؅ཧͰ͖ΔͷͰɺηΩϡϦςΟνΣοΫ΋˓ AWS BackupをCDKで管理して

  53. ˜ "NB[PO8FC4FSWJDFT *ODPSJUTB⒏MJBUFT"MMSJHIUT SFTFSWFE まとめ

  54. $MPVE'PSNBUJPOͰ͸೉͔ͬͨ͠ΞϓϦέʔγϣϯ͝ͱͷ؂ࢹ΋ɺ "84$%,ͱ4%,Λ૊Έ߹ΘͤΕ͹ରԠՄೳʂ まとめ

  55. We’re HERING!!! KVTU*O$BTFͰ͸ɺҰॹʹಇ͘ϝϯόʔΛશ৬छͰืू͍ͯ͠·͢ʂ ໾ׂʹͱΒΘΕͣɺ7JTJPOʹ޲͔ͬͯ໠ਐͰ͖Δํʂ • ΞϓϦέʔγϣϯΤϯδχΞʢϑϩϯτΤϯυˍόοΫΤϯυʣ • 43& • σβΠφʔ

    • 1E.ɾ4" • "OENPSF
  56. • DPEFOJ[FUPPMTSBEJPTPOEFc(JU)VC • <$%,>&$ϦετΛऔಘͯ͠શ୆ʹ$MPVE8BUDIΞϥʔϜΛઃఆ͢Δ c%FWFMPQFST*0 • "84$%,ͰطଘͷϩάάϧʔϓʹϝτϦΫεϑΟϧλΛઃఆ͢Δํ๏ c%FWFMPQFST*0 • $MPVE8BUDI"MBSNTΛࣗಈల։͢Δ

    CZ"84$%, • $MPVE8BUDI-PHTͷ4MBDL௨஌ࣗಈԽ CZ"84$%, • ֎ܗ؂ࢹͷࣗಈηοτΞοϓʂ3PVUF .BDLFSFMࣗಈԽΤϯδχΞͷ-5ձ 参考資料
  57. Thank you! ˜ "NB[PO8FC4FSWJDFT *ODPSJUTB⒏MJBUFT"MMSJHIUT SFTFSWFE <"84$%,>5FDIOJDTUP(FOFSBUF  $MPVE8BUDI"MBSNT •

    小笠原寛明 • 5PNPLJ4BUP(原稿レビュー) • ,PUB5PNJNBUTV(原稿レビュー・実装) • 5ZBNBIPSJ(登壇練習) 4QFDJBM5IBOLT
  58. Please complete the session survey ˜ "NB[PO8FC4FSWJDFT *ODPSJUTBGGJMJBUFT"MMSJHIUT SFTFSWFE