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

CDKの魔法を少し解いてみる ― synth・build・diffで覗くIaCの裏側 ―

CDKの魔法を少し解いてみる ― synth・build・diffで覗くIaCの裏側 ―

AWS CDKは、コードによってインフラを構築できる強力なツールであり、その手軽さから「魔法のよう」と形容されることも多い。 本発表では、その"魔法"の裏側に焦点を当て、synth・build・diff の3つのコマンドを軸に、CDKがどのようにCloudFormationテンプレートを生成し、IaCを実現しているのかに迫る。

Avatar for Nagai Takafumi

Nagai Takafumi

November 12, 2025
Tweet

Other Decks in Technology

Transcript

  1. アジェンダ ◼ 自己紹介 ◼ CDK とは、、? ◼ よく使う CDK のコマンド

    synth diff deploy ◼ 深堀り ◼ まとめ 2 © Computer Engineering & Consulting Ltd. All rights reserved.
  2. 自己紹介 ◼ 氏名  長井 崇文(Nagai Takafumi) ◼ 経歴 

    2023 株式会社シーイーシー 新卒入社  2025 Japan All AWS Certifications Engineers 社内AWS CCoE 教育推進チーム 所属 ◼ 出身  兵庫県の田舎 ◼ 趣味  旅行 今年12月にイタリアに行くので、おすすめとかあれば教えてください! 4 © Computer Engineering & Consulting Ltd. All rights reserved.
  3. CDK とは、、? ◼ CDK とは、AWS の IaC ツールです!じゃ、IaC って? 今回のテーマなんで、ご存じだと思いますが、、

    コード クラウドリソース • 一貫性 • 再利用化 • 自動化 • バージョン管理 → AI を効果的に使える 6 © Computer Engineering & Consulting Ltd. All rights reserved.
  4. CDK とは、、? ◼ 改めて、 CDK とは! → プログラミング言語を使って、AWS リソースを作成できるサービス (同じく

    IaC ツールの CloudFormation は JSON または YAML ) プログラムコード AWSリソース 7 © Computer Engineering & Consulting Ltd. All rights reserved.
  5. CDK とは、、? ◼ もう一歩踏み込むと、、 → CDK は CloudFormation を通じてデプロイ! プログラムコード

    コンストラクタ CloudFormation テンプレート AWSリソース 8 © Computer Engineering & Consulting Ltd. All rights reserved.
  6. CDK とは、、? ◼ もう一歩踏み込むと、、 → CDK は CloudFormation を通じてデプロイ! プログラムコード

    コンストラクタ AWSリソース CloudFormation テンプレート cdk deploy はしたことあるぜ! cdk synth ってなにしてる? context.json ってgit管理した方が良い? 9 © Computer Engineering & Consulting Ltd. All rights reserved.
  7. よく使う CDK コマンド ◼ まずはよく使う CDK コマンドの全体像から! cdk synth 10

    © Computer Engineering & Consulting Ltd. All rights reserved. 出典:AWS Black Belt(https://youtu.be/aqa2bFFzcjs?si=K8Q1IVHU5k4uAHLc&t=307)
  8. よく使う CDK コマンド ◼ cdk synth  CDKコードを合成して、CloudFormationテンプレートを作成 cdk synth

    出典:AWS Black Belt(https://youtu.be/aqa2bFFzcjs?si=K8Q1IVHU5k4uAHLc&t=307) 11 © Computer Engineering & Consulting Ltd. All rights reserved.
  9. よく使う CDK コマンド ◼ cdk diff  合成したテンプレートと、すでにデプロイ済みのテンプレートとの比較 出典:AWS Black

    Belt(https://youtu.be/aqa2bFFzcjs?si=K8Q1IVHU5k4uAHLc&t=307) cdk synth 12 © Computer Engineering & Consulting Ltd. All rights reserved.
  10. よく使う CDK コマンド ◼ cdk deploy  テンプレートでAWSリソース作成 出典:AWS Black

    Belt(https://youtu.be/aqa2bFFzcjs?si=K8Q1IVHU5k4uAHLc&t=307) cdk synth 13 © Computer Engineering & Consulting Ltd. All rights reserved.
  11. 深堀り ◼ cdk synth  CDKコードを合成して、CloudFormationテンプレートを作成 cdk synth 出典:AWS Black

    Belt(https://youtu.be/aqa2bFFzcjs?si=K8Q1IVHU5k4uAHLc&t=307) 14 © Computer Engineering & Consulting Ltd. All rights reserved.
  12. 深堀り ◼ cdk synth CDK コードを合成して、CloudFormation テンプレートを作成 アウトプット ◆cdk.out/ フォルダに

    CloudFormation テンプレートが出力 ◆context.json に CDK の外部解決(lookup)結果をローカルにキャッシュする。 再現性・速度・CI の安定性を高める 例えば、AMI や、Route53 の HostZone の検索結果など → キャッシュされることで、AMI をみんなで揃えることができる。 一歩先へ ◆context.json はバージョンを共有したい以下の場合に有用 • 例えば、EC2 の AMI を最新のバージョンを取得するように指定した場合 タイミングによって、違う AMI を参照することを防ぐ 15 © Computer Engineering & Consulting Ltd. All rights reserved.
  13. 深堀り ◼ cdk synth  $ cdk init sample-app –language

    typescript 16 © Computer Engineering & Consulting Ltd. All rights reserved.
  14. 深堀り ◼ cdk synth  $ cdk init sample-app –language

    typescript cdk synth の実行前 17 © Computer Engineering & Consulting Ltd. All rights reserved.
  15. 深堀り ◼ cdk synth  $ cdk init sample-app –language

    typescript cdk synth の実行後 18 © Computer Engineering & Consulting Ltd. All rights reserved.
  16. 深堀り ◼ cdk synth  $ cdk init sample-app –language

    typescript cdk synth の実行後 今回はcontext.json は作成されていない 19 © Computer Engineering & Consulting Ltd. All rights reserved.
  17. 深堀り ◼ cdk deploy テンプレートで AWS リソース作成 cdk deploy を実行すると、内部で

    cdk synth が実行される 23 © Computer Engineering & Consulting Ltd. All rights reserved.
  18. まとめ ◼ CDK コマンドを理解して、安全に快適に AWS を楽しみましょう! 出典:AWS Black Belt(https://youtu.be/aqa2bFFzcjs?si=K8Q1IVHU5k4uAHLc&t=307) cdk

    synth diff って なんの比較? cdk synth って 美味しいの? 25 © Computer Engineering & Consulting Ltd. All rights reserved.