Slide 1

Slide 1 text

CDK の魔法を少し解いてみる ― synth・build・diff で覗く IaC の裏側 ― 株式会社シーイーシー 長井崇文 1 © Computer Engineering & Consulting Ltd. All rights reserved.

Slide 2

Slide 2 text

アジェンダ ◼ 自己紹介 ◼ CDK とは、、? ◼ よく使う CDK のコマンド synth diff deploy ◼ 深堀り ◼ まとめ 2 © Computer Engineering & Consulting Ltd. All rights reserved.

Slide 3

Slide 3 text

いきなりですが、質問です! CDK のコマンドは理解して使ってますか? diff って なんの比較? cdk synth って 美味しいの? 3 © Computer Engineering & Consulting Ltd. All rights reserved.

Slide 4

Slide 4 text

自己紹介 ◼ 氏名  長井 崇文(Nagai Takafumi) ◼ 経歴  2023 株式会社シーイーシー 新卒入社  2025 Japan All AWS Certifications Engineers 社内AWS CCoE 教育推進チーム 所属 ◼ 出身  兵庫県の田舎 ◼ 趣味  旅行 今年12月にイタリアに行くので、おすすめとかあれば教えてください! 4 © Computer Engineering & Consulting Ltd. All rights reserved.

Slide 5

Slide 5 text

CDK とは、、? ◼ CDK とは、AWS の IaC ツールです!じゃ、IaC って? 今回のテーマなんで、ご存じだと思いますが、、 コード クラウドリソース 5 © Computer Engineering & Consulting Ltd. All rights reserved.

Slide 6

Slide 6 text

CDK とは、、? ◼ CDK とは、AWS の IaC ツールです!じゃ、IaC って? 今回のテーマなんで、ご存じだと思いますが、、 コード クラウドリソース • 一貫性 • 再利用化 • 自動化 • バージョン管理 → AI を効果的に使える 6 © Computer Engineering & Consulting Ltd. All rights reserved.

Slide 7

Slide 7 text

CDK とは、、? ◼ 改めて、 CDK とは! → プログラミング言語を使って、AWS リソースを作成できるサービス (同じく IaC ツールの CloudFormation は JSON または YAML ) プログラムコード AWSリソース 7 © Computer Engineering & Consulting Ltd. All rights reserved.

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

CDK とは、、? ◼ もう一歩踏み込むと、、 → CDK は CloudFormation を通じてデプロイ! プログラムコード コンストラクタ AWSリソース CloudFormation テンプレート cdk deploy はしたことあるぜ! cdk synth ってなにしてる? context.json ってgit管理した方が良い? 9 © Computer Engineering & Consulting Ltd. All rights reserved.

Slide 10

Slide 10 text

よく使う CDK コマンド ◼ まずはよく使う CDK コマンドの全体像から! cdk synth 10 © Computer Engineering & Consulting Ltd. All rights reserved. 出典:AWS Black Belt(https://youtu.be/aqa2bFFzcjs?si=K8Q1IVHU5k4uAHLc&t=307)

Slide 11

Slide 11 text

よく使う 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.

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

よく使う 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.

Slide 14

Slide 14 text

深堀り ◼ 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.

Slide 15

Slide 15 text

深堀り ◼ 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.

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

深堀り ◼ cdk synth  $ cdk init sample-app –language typescript cdk synth の実行後 今回はcontext.json は作成されていない 19 © Computer Engineering & Consulting Ltd. All rights reserved.

Slide 20

Slide 20 text

深堀り ◼ cdk diff  合成したテンプレートと、すでにデプロイ済みのテンプレートとの比較 出典:AWS Black Belt(https://youtu.be/aqa2bFFzcjs?si=K8Q1IVHU5k4uAHLc&t=307) cdk synth 20 © Computer Engineering & Consulting Ltd. All rights reserved.

Slide 21

Slide 21 text

深堀り ◼ cdk diff 合成したテンプレートと、すでにデプロイ済みのテンプレートとの比較 cdk diff を実行すると、内部で cdk synth が実行される 21 © Computer Engineering & Consulting Ltd. All rights reserved.

Slide 22

Slide 22 text

深堀り ◼ cdk deploy  テンプレートでAWSリソース作成 出典:AWS Black Belt(https://youtu.be/aqa2bFFzcjs?si=K8Q1IVHU5k4uAHLc&t=307) cdk synth 22 © Computer Engineering & Consulting Ltd. All rights reserved.

Slide 23

Slide 23 text

深堀り ◼ cdk deploy テンプレートで AWS リソース作成 cdk deploy を実行すると、内部で cdk synth が実行される 23 © Computer Engineering & Consulting Ltd. All rights reserved.

Slide 24

Slide 24 text

まとめ CDK のコマンドは理解して使ってますか? diff って なんの比較? cdk synth って 美味しいの? 24 © Computer Engineering & Consulting Ltd. All rights reserved.

Slide 25

Slide 25 text

まとめ ◼ 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.

Slide 26

Slide 26 text

[ お問い合わせ先 ] 株式会社シーイーシー コネクティッドイノベーション事業部 クラウドサービス開発部 長井崇文 Email :[email protected]