Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CFnのプロジェクトをCDKにしてみたい
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ヤマダ(北野)
November 16, 2023
Technology
25
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CFnのプロジェクトをCDKにしてみたい
ヤマダ(北野)
November 16, 2023
More Decks by ヤマダ(北野)
See All by ヤマダ(北野)
AWS Step Functions でプロンプト自動育成ワークフローを構築してみた
yamada_r
0
30
Claude 4.5 と SFnで作る 「京都語本音デコーダー」
yamada_r
0
24
CBs 2年生になれたら
yamada_r
0
78
「Kiroってどうなの?」 リアルな使い勝手と最新の料金ガイド
yamada_r
0
130
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
3
350
カップラーメンタイマーで感じる生成AIの進化
yamada_r
0
30
Amazon Lexに感じる無限の可能性
yamada_r
0
68
JAWS DAYS 2025 re:Chrees 広報担当の振り返り
yamada_r
0
220
それ、AWS Step Functionsで置き換えれん?
yamada_r
0
40
Other Decks in Technology
See All in Technology
MIRU 2026 チュートリアル
keisuke198619
0
620
データ組織の転換期 一足飛びしない段階的戦略
leveragestech
PRO
0
140
オートロックマンションなのに、各部屋は施錠なし!? 攻撃者が組織内ネットワークで大暴れする理由 / The Front Door Is Locked, but the Rooms Are Wide Open: Why Attackers Move Freely Inside Enterprise Networks
nttcom
0
1.3k
DevOps Agentで運用判断をチーム資産にする~Agent InstructionsとAgent Skillを継続的に育てる~
fujioka6789
0
200
AIで楽になるはずが、なぜ疲れる?
kinopeee
0
150
OSPN.JPバージョンアップ作業進捗のご報告 / 20260801-osc26kyoto
akkiesoft
0
160
セキュリティ研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
32
28k
それでも、技術なブログを書く理由 #kichijojipm / Why I Still Write Tech Blogs Even Now
shinkufencer
0
1.6k
AI ネイティブな組織に Gemini Enterprise Agent Platform がなぜ必要なのか
asei
1
150
[MIRU26] To What Extent Does MLLM-as-a-Judge Exhibit Cross-Model Preference Bias?
keio_smilab
PRO
0
180
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
53k
個人OSSが、机の上から世界に広がるまでの話
shinyasaita
1
290
Featured
See All Featured
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
400
Evolving SEO for Evolving Search Engines
ryanjones
0
250
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
The browser strikes back
jonoalderson
0
1.4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
200
It's Worth the Effort
3n
188
29k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Marketing to machines
jonoalderson
1
5.6k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
360
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 ご清聴ありがとうございました