Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CFnのプロジェクトをCDKにしてみたい
Search
ヤマダ(北野)
November 16, 2023
Technology
0
12
CFnのプロジェクトをCDKにしてみたい
ヤマダ(北野)
November 16, 2023
Tweet
Share
More Decks by ヤマダ(北野)
See All by ヤマダ(北野)
「Kiroってどうなの?」 リアルな使い勝手と最新の料金ガイド
yamada_r
0
78
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
3
270
カップラーメンタイマーで感じる生成AIの進化
yamada_r
0
7
Amazon Lexに感じる無限の可能性
yamada_r
0
44
JAWS DAYS 2025 re:Chrees 広報担当の振り返り
yamada_r
0
130
それ、AWS Step Functionsで置き換えれん?
yamada_r
0
15
はじめてのすくらむ
yamada_r
0
15
新米CBの自己紹介
yamada_r
0
10
Amplify StudioとFigmaで遊ぶ
yamada_r
0
14
Other Decks in Technology
See All in Technology
[デモです] NotebookLM で作ったスライドの例
kongmingstrap
0
150
ChatGPTで論⽂は読めるのか
spatial_ai_network
9
28k
エンジニアリングをやめたくないので問い続ける
estie
2
1.2k
AIと二人三脚で育てた、個人開発アプリグロース術
zozotech
PRO
1
730
AI-DLCを現場にインストールしてみた:プロトタイプ開発で分かったこと・やめたこと
recruitengineers
PRO
2
140
Reinforcement Fine-tuning 基礎〜実践まで
ch6noota
0
190
コンテキスト情報を活用し個社最適化されたAI Agentを実現する4つのポイント
kworkdev
PRO
0
1.4k
Databricks向けJupyter Kernelでデータサイエンティストの開発環境をAI-Readyにする / Data+AI World Tour Tokyo After Party
genda
1
120
【AWS re:Invent 2025速報】AIビルダー向けアップデートをまとめて解説!
minorun365
4
530
AWSを使う上で最低限知っておきたいセキュリティ研修を社内で実施した話 ~みんなでやるセキュリティ~
maimyyym
2
1.5k
Microsoft Agent 365 についてゆっくりじっくり理解する!
skmkzyk
0
340
.NET 10の概要
tomokusaba
0
110
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
37
7.1k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Context Engineering - Making Every Token Count
addyosmani
9
520
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Become a Pro
speakerdeck
PRO
31
5.7k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
286
14k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Optimizing for Happiness
mojombo
379
70k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
The Cult of Friendly URLs
andyhume
79
6.7k
Transcript
北野 涼平 CFnのプロジェクトを CDKにしてみたい 2023/11/16 アイレット株式会社 クラウドインテグレーション事業部 開発第1セクション
自己紹介 2 所属:アイレット株式会社 X:@benkyo_ganbaman 趣味:ハーゲンダッツの蓋集め 好きなAWSサービス:AWS FIS、AWS Lambda 図を配置してください ヤマダ(北野
涼平)
3 本題
本題 4 すでにある程度の開発フローが確立されている案件に参画! CloudFormation初心者として頑張るぞ! 既存案件に参画することになったヤマダ
本題 5 • 既存のプロジェクト • CloudFormationを使用 ◦ Lambdaあり ◦ 環境によってリソースの有無がある
• 複数環境(アカウント)へのデプロイが必要 • いくつかバッチファイルが用意されている ◦ 何に使うんだろう感 そして案件の詳細を目にすると ...
本題 6 CloudFormationでフローが確立されていたが、後から参画した自分には以下の点で分かりにくく感じ た。 • CFnの記述が非常に縦に長い • デプロイ方法が明確ではない(バッチが複数存在する) • リソース同士の関連性を読み取りづらい(実力不足もあり)
そこで、こういった問題への改善を考えた時、CDKの存在が頭に浮かびました。 CDKに置き換えることでどのような利点があるのかを考えつつ、第一歩としてどういうことから取り組 めばいいのかをまとめてみることにする。 今回の案件について
本題 7 1. 第一歩 ◦ 記事を見る(AWS CDKを始めるハンズオン) ◦ 記事の内容を進めてみる 2.
既存のプロジェクトを見直す ◦ CFnを見てなんとなくの構想を立てる ◦ 既存の分かりにくかった部分を書いてみる ▪ 入力補完 ▪ リソース有無の切り替え ◦ cdk watchについて 3. まとめ アジェンダ
8 第一歩
第一歩 9 いきなり既存プロジェクトを置き換えようとしても何から始めていいのか全く分かりません。 ということで初心者に優しい記事を参考にまずは勉強を進めていきます!いきなり手をつけるのでは なく、まずは全体にざっと目を通すのが良いと思います。 AWS CDKを始めるハンズオン ─ IaCの第一歩をAWS LambdaとDynamoDBのシンプルな仕組みで
学ぶ https://eh-career.com/engineerhub/entry/2023/04/27/093000 記事を見る
第一歩 10 全体をまとめると、AWS CDKを始めるに当たってメリットの説明から実際に簡単な構成を作るところま でカバーしてくれています!私は一通りハンズオンを実施しました。特に内容で詰まることもなく、初学 者に優しい内容でした。「今日からレッツCDK!」という方には是非とも一度体験してほしいです。 記事を読了すると、CDKの基礎、デプロイ、AWS Lambda・Amazon DynamoDBの構築について学 べます。また、最後に次のステップへのアドバイスもありました。
記事の内容を進めてみる
11 既存プロジェクトを見直す
既存プロジェクトを見直す 12 今回置き換えようとしている対象のCFnを見てみました。また、案件としてリソースの追加対応が必要 だったので、一旦既存のテンプレートを修正しました。そこで分かりにくかった点を挙げると以下になり ます。 • リソースを追加する際の設定項目のスペルミスが気になる • インデントが分かりにくい •
Lambdaとロールなどの関連性が分かりにくい • リソースの有無を切り替えるのが難しかった(ParametersやらConditionsやら) CloudFormationのテンプレートをみる
既存プロジェクトを見直す 13 • Lambda ◦ VPCに配置する ◦ 環境変数を設定 ◦ 環境によって作成するかどうかを判定する
• VPC ◦ プライベートサブネット 今回CDKで書いてみる内容(緩め)
14 書きました!!!
15 CFnの記述といくつか比較していきたいと思います もちろん擬似コードです。
16 入力補完
CFnとCDKを比較 17 <CFn> • 補完なし 入力補完について
CFnとCDKを比較 18 <CDK> • 手厚い補完あり 入力補完について 「role」などあからさますぎる名前で とても分かりやすいので補完で作 業がすすむ
19 リソース有無(切り分け)
CFnとCDKを比較 20 <CFn> • 何ヶ所かに記述が必要 • 直感的に分かりにくい • コマンドを叩く際 に--parameter-overridesで指定
リソース有無(切り分け)
CFnとCDKを比較 21 <CDK> • プログラムで制御 • 直感的に分かりやすい • 複数環境へのデプロイ リソース有無(切り分け)
22 結論:CDKの方がスラスラと書けるし直感的
23 cdk watchについて
cdk watchについて 24 冒頭で紹介した入門編の記事の最後でも触れられていますが、ファイル変更を監視して自動的にデプ ロイしてくれるコマンドです。今回はLambda関数をデプロイしているのでついでに少し使ってみまし た。 Lambdaのソースファイルの"Hello World!"を1文字だけ増やす対応が必要だとしてデプロイにかかる 時間などを見てみます。 cdk
watchとは
cdk watchについて 25 まずはファイルを変更後、通常通りのデプロイをしてみます。Total timeは約45秒ほどかかりました。追 加した文言に勢いはありますが、かかった時間には爽快感がありません。。 cdk deploy
cdk watchについて 26 先ほどとは少し手順が変わり、いきなり「cdk watch」を叩きます。その後任意のファイルを変更し、保 存をするだけで勝手にデプロイしてくれます。変更のあるファイルのみを判断してくれるので信じられな いスピードでログが流れたため、スクショも一度失敗したくらいです。 cdk watch
cdk watchについて 27 さらにデプロイしたLambdaを実行すると開発環境でもログが流れます。まさにwatchしてくれているん だなーと感心しました! cdk watch
28 まとめ
まとめ 29 • 直感的に分かりやすいようになった! →後から参画するメンバーに優しい。 • 複数アカウントへのデプロイが楽になった! →情報もまとまってみやすく、縦に長いファイルがなくなる。 • 補完のおかげでスイスイと記述できるようになった!
→CFnを記述していたときは記事などを見ながら行ったり来たりを繰り返していた。 補完のおかげでタイプミスもなくなる。 • 記述が大幅に減った! →今回は緩めの要件で書き直してみただけだが、それでも目に見えて記述量は減った。 CFnを使用しているプロジェクトを CDKにしてみると
30 次のプロジェクトでは最初から提案できるように これからも精進します。
31 ご清聴ありがとうございました