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

hiroga
September 28, 2021

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

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

hiroga

September 28, 2021
Tweet

More Decks by hiroga

Other Decks in Programming

Transcript

  1. D E V D AY
    - 0 $ " 5 * 0 / c 4 & 1 5 & . # & 3

    View full-size slide

  2. ˜ "NB[PO8FC4FSWJDFT *ODPSJUTB⒏MJBUFT"MMSJHIUT
    SFTFSWFE
    [AWS CDK] 1,000+のCloudWatch Alarmsを
    自動生成する技術
    小笠原寛明 GSPN
    $
    "84$%,4%,ͷΞʔΩςΫνϟˍϨγϐ

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  10. Amazon CloudWatch Alarms by AWS CDK + SDK

    View full-size slide

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

    View full-size slide

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

    View full-size slide



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

    View full-size slide

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

    申込フォーム
    契約参照
    異動・解約
    決済
    契約更新
    お客様
    ポータル
    査定・承認
    問合せ
    提出書類の参照
    (電子データ)
    支払記録
    保険金
    請求フォーム

    View full-size slide

  15. 保険会社を簡単に運営できるようにすることで、魅力的な商品作りのお手伝いをします。

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  18. ˜ "NB[PO8FC4FSWJDFT *ODPSJUTBGGJMJBUFT"MMSJHIUT
    SFTFSWFE
    ✅ ΞϓϦέʔγϣϯΤϯδχΞ
    ✅ 43&
    ✅ $%,Λ࣮ࡍͷݱ৔Ͱ࢖͍͍ͨਓʂ
    想定している視聴者

    View full-size slide

  19. ˜ "NB[PO8FC4FSWJDFT *ODPSJUTBGGJMJBUFT"MMSJHIUT
    SFTFSWFE
    課題

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  24. Inspired by Radiosonde

    View full-size slide

  25. AWS CDK + SDK
    AWS
    SDK
    AWS
    CDK Alarm SNS Topic
    Alarm
    Alarm
    Alarm
    Ϧιʔε
    Ϧιʔε
    Ϧιʔε
    Ϧιʔε
    Ϧιʔε
    Ϧιʔε

    View full-size slide

  26. Gitフローがおすすめ
    ローカル
    開発環境にデプロイOK
    開発環境
    developブランチを反

    本番環境
    v1.6などタグでリリース

    View full-size slide

  27. ☑ ηΩϡϦςΟʢ(VBSE%VUZ 4UBDL4FUT౳ʣ
    ✅ ωοτϫʔΫʢ$MPVE8BUDI.FUSJDTʣ
    ✅ αʔόʔʢ$MPVE8BUDI.FUSJDTʣ
    ✅ ΞϓϦέʔγϣϯʢΤϥʔϩάʣ
    ✅ ϑϩϯτΤϯυʢ֎ܗ؂ࢹʣ
    ☑ Ϗδωε্ͷ໨త

    ✅ όοΫΞοϓʢ"84#BDLVQʣ
    AWS CDK + SDKの守備範囲

    View full-size slide

  28. ˜ "NB[PO8FC4FSWJDFT *ODPSJUTBGGJMJBUFT"MMSJHIUT
    SFTFSWFE
    AWS CDK + SDKのレシピ

    View full-size slide

  29. • $MPVE8BUDI.FUSJDT
    § &$ &$4 -BNCEB
    § 3%4 %ZNBNP%# 4
    § $MPVE8BUDI
    • $MPVE8BUDI-PHT/PUJGJDBUJPO
    • 3PVUFIFBMUIDIFDLT
    • "84#BDLVQ
    § &$ 3%4 %ZOBNP%#
    AWS CDK + SDKのレシピ

    View full-size slide

  30. • ର৅ͷϦιʔεΛҰׅऔಘͯ͠ઃఆ
    • -BNCEBͳͲΞΧ΢ϯτશମͰͷ੍ݶ͕͋Δ৔߹ʹ΋ศར
    • "MBSNͷ࢓্༷ɺຖ೔ΞϥʔϜΛ0,ʹ໭͢-BNCEB͕͋ΔͱΑ͍
    • "OPNBMZ%FUFDUJPOΛ࢖͑͹؀ڥ͝ͱͷࠩҟΛ͋Δఔ౓ແࢹͰ͖Δ
    CloudWatch Metrics

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  33. Anomaly Detectionも設定できる

    View full-size slide

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

    View full-size slide

  35. • KVTU*O$BTFͰ͸ɺҎ্ͷ"84ΞΧ΢ϯτͰ Ҏ্ͷ
    $MPVE8BUDI"MBSNΛ؅ཧ͍ͯ͠Δ
    • ΞΫηε਺ͷਪҠʹ͜Ε·ͰҎ্ʹහײʹͳͬͨ
    • &YʮΞΫηε਺ͷਪҠ͕ݟͨ͜ͱͳ͔ͬͨͷͰɺϝϧϚΨͷӨڹ͔ௐࠪ͠·͢ʯ
    • 4MBDL্Ͱ௨஌ͷάϥϑ͕ݟΒΕΔͷ͕خ͍͠
    • खಈͰ࡞੒ͨ͠3FEBTIΠϯελϯεͷετϨʔδ࢖༻ྔͳͲɺ஍ຯʹ
    ॏཁͳ໰୊ʹ͙͢ʹؾ෇͚ΔΑ͏ʹͳͬͨɻ
    CloudWatch MetricsをCDKで管理して

    View full-size slide

  36. • -PH(SPVQʹର͢Δ4VCTDSJQUJPO'JMUFSΛҰׅઃఆ
    • -BNCEBͷΑ͏ʹࣗಈͰ-PH(SPVQ͕Ͱ͖Δ৔߹ʹߴ͍ޮՌ
    • 4VCTDSJQUJPOϑΟϧλʔͰ͸ͳ͘-BNCEBͰϑΟϧλʔ͢Δख΋
    • ਖ਼نදݱ͕ར༻Ͱ͖ɺ୯ମςετ͕͠΍͍͢
    • -BNCEBͷ࣮ߦճ਺͕૿͑ΔͷͰɺίετ্͕͕Δ
    • ௨஌ϝοηʔδʹ$MPVE8BUDI΁ͷϦϯΫΛೖΕΔͱੜ࢈ੑ61
    • Τϥʔϩά͚ͩΛग़ྗ͢Δ-BNCEBΛ࡞Δͱݕূ͕ศར
    • ௨஌༻-BNCEBࣗ਎͸؂ࢹର৅͔Βআ֎͢Δ͜ͱ
    • Ԡ༻,JOFTJT%BUB'JSFIPTFʹΑΔ4΁ͷόοΫΞοϓ
    • Ԡ༻%BUBEPH΁ͷసૹ
    CloudWatch Logs + Notification

    View full-size slide

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

    View full-size slide

  38. • Τϥʔ͸ࢥͬͨΑΓ΋ى͖͍ͯΔ
    • "84$IBUCPUͷΤϥʔʢ௨஌͕དྷͳ͍ͷͰਖ਼ৗͩͱࢥͬͯ͠·͏ʣ
    • "1*(BUFXBZͷΤϥʔ
    • ීஈ࢖Θͳ͍Ϧʔδϣϯͷ-BNCEBͷΤϥʔ
    • $MPVE8BUDI-PHT΁ͷϦϯΫ͸޷ධ
    • Ԡ༻%BUBEPH΁ͷϦϯΫ
    CloudWatch Logsの通知をCDKで管理して

    View full-size slide

  39. • 3PVUFͷϨίʔυ͔Β؂ࢹର৅Λࣗಈੜ੒
    • KVTU*O$BTFͷྫ*1ΞυϨε·ͨ͸$MPVE'SPOUʹϧʔςΟϯά͞Ε͍ͯΕ͹؂ࢹ
    • ΤϯυϙΠϯτ͋ͨΓ.POUI͔Β
    • "84͔"84Ҏ֎͔ͰҟͳΔɻ
    • #BTJDೝূ΍ΫϥΠΞϯτূ໌ॻ͸ར༻Ͱ͖ͳ͍
    • Ԡ༻3PVUFҎ֎ͰϨίʔυΛ؅ཧ͍ͯͯ͠΋˓
    • Ԡ༻֎ܗ؂ࢹʹผͷαʔϏεʢ.BDLFSFM 6QUJNF3PCPU FUDʜʣ
    Route53 health checks

    View full-size slide

  40. Route53 health checks

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  43. • &$ 3%4 %ZOBNP%#ͳͲͷόοΫΞοϓΛ·ͱΊͯઃఆ
    • खಈͰ࡞ͬͨӡ༻ͷͨΊͷ&$ͳͲ΋ରԠͰ͖Δ
    • 4QPU'MFFUΛআ֎͠ͳ͍ͱόοΫΞοϓ਺͕ࡍݶͳ͘૿͑ΔͷͰ஫ҙ
    • &$ΠϯελϯεͷλάͰݟ෼͚ΒΕ·͢
    • όοΫΞοϓର৅͝ͱʹ7BVMUΛ࡞Βͳ͍Α͏ʹ஫ҙ
    • 7BVMUͷ࡞੒ݸ਺ʹ͸Ϧʔδϣϯ͝ͱͷ্ݶ͋Γ
    • όοΫΞοϓͷΠϕϯτΛ௨஌Մೳ
    • 4/4ొ࿥·ͨ͸&WFOU#SJEHFܦ༝ͰՄೳʢະݕূʣ
    AWS Backup

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  48. • DPEFOJ[FUPPMTSBEJPTPOEFc(JU)VC
    • <$%,>&$ϦετΛऔಘͯ͠શ୆ʹ$MPVE8BUDIΞϥʔϜΛઃఆ͢Δ c%FWFMPQFST*0
    • "84$%,ͰطଘͷϩάάϧʔϓʹϝτϦΫεϑΟϧλΛઃఆ͢Δํ๏ c%FWFMPQFST*0
    • $MPVE8BUDI"MBSNTΛࣗಈల։͢Δ CZ"84$%,
    • $MPVE8BUDI-PHTͷ4MBDL௨஌ࣗಈԽ CZ"84$%,
    • ֎ܗ؂ࢹͷࣗಈηοτΞοϓʂ3PVUF.BDLFSFMࣗಈԽΤϯδχΞͷ-5ձ
    参考資料

    View full-size slide

  49. Thank you!
    ˜ "NB[PO8FC4FSWJDFT *ODPSJUTB⒏MJBUFT"MMSJHIUT
    SFTFSWFE
    <"84$%,>5FDIOJDTUP(FOFSBUF $MPVE8BUDI"MBSNT
    • 小笠原寛明
    • 5PNPLJ4BUP(原稿レビュー)
    • ,PUB5PNJNBUTV(原稿レビュー・実装)
    • 5ZBNBIPSJ(登壇練習)
    4QFDJBM5IBOLT

    View full-size slide

  50. Please complete
    the session survey
    ˜ "NB[PO8FC4FSWJDFT *ODPSJUTBGGJMJBUFT"MMSJHIUT
    SFTFSWFE

    View full-size slide