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
20
0
Share
CFnのプロジェクトをCDKにしてみたい
ヤマダ(北野)
November 16, 2023
More Decks by ヤマダ(北野)
See All by ヤマダ(北野)
「Kiroってどうなの?」 リアルな使い勝手と最新の料金ガイド
yamada_r
0
100
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
3
320
カップラーメンタイマーで感じる生成AIの進化
yamada_r
0
20
Amazon Lexに感じる無限の可能性
yamada_r
0
59
JAWS DAYS 2025 re:Chrees 広報担当の振り返り
yamada_r
0
190
それ、AWS Step Functionsで置き換えれん?
yamada_r
0
35
はじめてのすくらむ
yamada_r
0
32
新米CBの自己紹介
yamada_r
0
22
Amplify StudioとFigmaで遊ぶ
yamada_r
0
26
Other Decks in Technology
See All in Technology
MLOps導入のための組織作りの第一歩
akasan
0
340
レビューしきれない?それは「全て人力でのレビュー」だからではないでしょうか
amixedcolor
0
330
はじめての MagicPod生成AI機能 機能紹介から活用方法まで
magicpod
0
110
AIでAIをテストする - 音声AIエージェントの品質保証戦略
morix1500
1
130
ARIA Notifyについて
ryokatsuse
1
120
Hacobu Tech Deck
hacobu
PRO
0
120
AzureのIaC管理からログ調査まで、随所に役立つSkillsとCustom-Instructions / Boosting IaC and Log Analysis with Skills
aeonpeople
0
240
インターネットの技術 / Internet technology
ks91
PRO
0
210
[最強DB講義]推薦システム | 基礎編
recsyslab
PRO
1
180
Rapid Start: Faster Internet Connections, with Ruby's Help
kazuho
2
690
ハーネスエンジニアリングをやりすぎた話 ~そのハーネスは解体された~
gotalab555
4
1.8k
Keeping Ruby Running on Cygwin
fd0
0
170
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.5k
Claude Code のすすめ
schroneko
67
220k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
170
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
270
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.6k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
220
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.2k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
Facilitating Awesome Meetings
lara
57
6.8k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.3k
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 ご清聴ありがとうございました