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
ヤマダ(北野)
November 16, 2023
Technology
24
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
16
Claude 4.5 と SFnで作る 「京都語本音デコーダー」
yamada_r
0
22
CBs 2年生になれたら
yamada_r
0
67
「Kiroってどうなの?」 リアルな使い勝手と最新の料金ガイド
yamada_r
0
120
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
3
340
カップラーメンタイマーで感じる生成AIの進化
yamada_r
0
29
Amazon Lexに感じる無限の可能性
yamada_r
0
68
JAWS DAYS 2025 re:Chrees 広報担当の振り返り
yamada_r
0
210
それ、AWS Step Functionsで置き換えれん?
yamada_r
0
40
Other Decks in Technology
See All in Technology
AI Agent SaaS を支える自社仮想化基盤への挑戦と実運用 / ai-agent-saas-virtualization
flatt_security
2
1.1k
依頼文化をやめる日 EM視点で語るPlatform EngineeringとInclusive SRE / Discussing Platform Engineering and Inclusive SRE from an EM's Perspective
shin1988
3
1.8k
金融の未来を考える / Thinking About the Future of Finance
ks91
PRO
0
150
Docker Desktop不要の時代が来る? WSL標準の「wslc」で Linuxコンテナを動かしてみた.
ueponx
0
680
飲食店もAIで。レジ締めやハンディシステムをつくってる話 / Using AI for restaurant management
vtryo
0
240
SRE歴2ヶ月でも開発6年の知見を活かして、チームで止まっていた環境改善を前に進めた話
a_ono
1
200
AI時代のエンジニアキャリアについて今一度考える
sakamoto_582
1
1.2k
從觀望到全公司落地:AI Agentic Coding 導入實戰 — 流程整合與安全治理
appleboy
1
780
組織における AI-DLC 実践
askul
0
310
【FinOps】データドリブンな意思決定を目指して
z63d
3
610
フルAIで個人開発して学んだあれこれ / yuruai vol.1
isaoshimizu
0
180
AIをフル活用してオンコール機能のプロトタイプを2日で作った話 / Building an AI-Powered On-Call Prototype in Just Two Days
nari_ex
0
180
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
250
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
220
Documentation Writing (for coders)
carmenintech
77
5.4k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Crafting Experiences
bethany
1
200
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Discover your Explorer Soul
emna__ayadi
2
1.2k
For a Future-Friendly Web
brad_frost
183
10k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
240
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 ご清聴ありがとうございました