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

CDK使用歴1年の僕が現場でCDK導入するときに得たTips

KMiura
March 22, 2023

 CDK使用歴1年の僕が現場でCDK導入するときに得たTips

2022/3/22 JAWS-UG CDK支部 #6
https://jawsug-cdk.connpass.com/event/274879/

KMiura

March 22, 2023
Tweet

More Decks by KMiura

Other Decks in Technology

Transcript

  1. CDK使用歴1年の僕が現場でCDK導入
    するときに得たTips
    KMiura(@k_miura_io)

    View Slide

  2. 自己紹介
    • 三浦 耕生(こうき)
    • JAWS UG名古屋運営
    • 三次元地図技術のスタートアッ
    プのエンジニア&社内のAWSの
    管理人
    @k_miura_io koki.miura05

    View Slide

  3. CDKとの出会い
    • 前職の勉強会で初めてCDKを触ったけど、何に使えるのかわからなかった(そもそ
    もAWSの知識もあんまりなかった)
    • 2022年のAWS Summitのライブコーディングを見ていてCDKの可能性を感じて、プ
    ロダクトに導入したいと思った
    https://youtu.be/rcFqJWLwncU

    View Slide

  4. 導入するときに考えたこと
    • 環境ごとにデプロイできるようにしたい
    • 環境変数の管理を効率よくしたい
    • CI/CDを導入したい

    View Slide

  5. 環境ごとにデプロイを切り替える
    • cdk.jsonのcontextを使うことで環境名を定義する
    • スタック名・リソース名に環境名を含めることでリソース管理が効率良くなる
    "context": {
    ...
    "environment": "dev",
    }

    View Slide

  6. 環境変数を効率よく管理する
    • cdk.jsonのcontextを利用する
    • 環境ごとに変わる値(ドメイン名、リージョンとか)は環境名ごとにまとめると効率いい
    • レポジトリに入れるとまずい機密情報はSSMに格納してStackからSDKで呼び出すと安心
    • 命名の重複を防ぐためにスタック名にcontextの環境名を使うとGood
    "context": {
    ...
    "environment": "dev",
    "dev" : {
    "account": "123456789011",
    "region": "ap-northeast-1"
    },
    "prod" : {
    "account": "123456789012",
    "region": "ap-northeast-1"
    }
    }

    View Slide

  7. CI/CDを導入する
    • もともと導入してたGithub ActionsにCDKのデプロイを足して運用中
    • Github ActionsでビルドしたイメージをそのままPushできる
    • 最初はエラーが出まくったけど今は安定稼働中

    View Slide

  8. チーム開発で詰まったこと
    • デプロイ先のリージョンを間違えた
    • Stackを定義するときにenvの中にリージョン名を入れることでデプロイ先リージョンを
    統一する
    • Admin権限のないメンバーだとデプロイができない
    • 以前CDK支部で紹介されていたデプロイ権限を参考にIAMポリシーを作ったら必要
    最小限の権限でデプロイ出来るようになった(流石に管理者があれこれ準備する必
    要あり)
    https://bit.ly/3FGiSyG

    View Slide

  9. まとめ
    • 環境ごとの値を.envではなくcdk.jsonにまとめておくことで環境変数を整理しやすく
    なる
    • 変数を整理することでGithub ActionsでCDKコマンドを組み込むときもスムーズに
    できた(本当はCDK Pipelineも導入したい…)
    • チーム開発でCDKを使うときにはデプロイしたときに差異が起きないようにする仕
    組み作りが大事

    View Slide

  10. ほどよいCDK入門(自称)
    https://github.com/Miura55/jawsug-
    nagoya-cdk-handson
    ソースコード
    https://miura55.github.io/
    cdk-handson-text/
    資料

    View Slide

  11. 宣伝
    https://bit.ly/3JBCSDP

    View Slide

  12. END

    View Slide