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
CDK使用歴1年の僕が現場でCDK導入するときに得たTips
Search
KMiura
March 22, 2023
Technology
0
710
CDK使用歴1年の僕が現場でCDK導入するときに得たTips
2022/3/22 JAWS-UG CDK支部 #6
https://jawsug-cdk.connpass.com/event/274879/
KMiura
March 22, 2023
Tweet
Share
More Decks by KMiura
See All by KMiura
運用しているアプリケーションのDBのリプレイスをやってみた
miura55
1
1.1k
Amazon Rekognitionを使ったインターホンハック
miura55
0
74
Pythonでルンバをハックしてみた
miura55
0
150
あなたの知らないクラフトビールの世界
miura55
0
330
Storage Browser for Amazon S3を触ってみた + α
miura55
0
200
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた
miura55
0
210
あのボタンでつながるSORACOM
miura55
0
130
Postman Flowsで作るAPI連携LINE Bot
miura55
0
380
Lambdaと共に歩んだAWS
miura55
3
830
Other Decks in Technology
See All in Technology
Generative AI Japan 第一回生成AI実践研究会「AI駆動開発の現在地──ブレイクスルーの鍵を握るのはデータ領域」
shisyu_gaku
0
270
新規プロダクトでプロトタイプから正式リリースまでNext.jsで開発したリアル
kawanoriku0
1
120
実践!カスタムインストラクション&スラッシュコマンド
puku0x
0
420
2つのフロントエンドと状態管理
mixi_engineers
PRO
3
110
AWSで始める実践Dagster入門
kitagawaz
1
620
JTCにおける内製×スクラム開発への挑戦〜内製化率95%達成の舞台裏/JTC's challenge of in-house development with Scrum
aeonpeople
0
230
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
180
TS-S205_昨年対比2倍以上の機能追加を実現するデータ基盤プロジェクトでのAI活用について
kaz3284
1
170
テストを軸にした生き残り術
kworkdev
PRO
0
210
Webアプリケーションにオブザーバビリティを実装するRust入門ガイド
nwiizo
7
830
LLMを搭載したプロダクトの品質保証の模索と学び
qa
0
1.1k
AI開発ツールCreateがAnythingになったよ
tendasato
0
130
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
What's in a price? How to price your products and services
michaelherold
246
12k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
520
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
For a Future-Friendly Web
brad_frost
180
9.9k
Done Done
chrislema
185
16k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Why Our Code Smells
bkeepers
PRO
339
57k
Typedesign – Prime Four
hannesfritz
42
2.8k
Transcript
CDK使用歴1年の僕が現場でCDK導入 するときに得たTips KMiura(@k_miura_io)
自己紹介 • 三浦 耕生(こうき) • JAWS UG名古屋運営 • 三次元地図技術のスタートアッ プのエンジニア&社内のAWSの
管理人 @k_miura_io koki.miura05
CDKとの出会い • 前職の勉強会で初めてCDKを触ったけど、何に使えるのかわからなかった(そもそ もAWSの知識もあんまりなかった) • 2022年のAWS Summitのライブコーディングを見ていてCDKの可能性を感じて、プ ロダクトに導入したいと思った https://youtu.be/rcFqJWLwncU
導入するときに考えたこと • 環境ごとにデプロイできるようにしたい • 環境変数の管理を効率よくしたい • CI/CDを導入したい
環境ごとにデプロイを切り替える • cdk.jsonのcontextを使うことで環境名を定義する • スタック名・リソース名に環境名を含めることでリソース管理が効率良くなる "context": { ... "environment": "dev",
}
環境変数を効率よく管理する • cdk.jsonのcontextを利用する • 環境ごとに変わる値(ドメイン名、リージョンとか)は環境名ごとにまとめると効率いい • レポジトリに入れるとまずい機密情報はSSMに格納してStackからSDKで呼び出すと安心 • 命名の重複を防ぐためにスタック名にcontextの環境名を使うとGood "context":
{ ... "environment": "dev", "dev" : { "account": "123456789011", "region": "ap-northeast-1" }, "prod" : { "account": "123456789012", "region": "ap-northeast-1" } }
CI/CDを導入する • もともと導入してたGithub ActionsにCDKのデプロイを足して運用中 • Github ActionsでビルドしたイメージをそのままPushできる • 最初はエラーが出まくったけど今は安定稼働中
チーム開発で詰まったこと • デプロイ先のリージョンを間違えた • Stackを定義するときにenvの中にリージョン名を入れることでデプロイ先リージョンを 統一する • Admin権限のないメンバーだとデプロイができない • 以前CDK支部で紹介されていたデプロイ権限を参考にIAMポリシーを作ったら必要
最小限の権限でデプロイ出来るようになった(流石に管理者があれこれ準備する必 要あり) https://bit.ly/3FGiSyG
まとめ • 環境ごとの値を.envではなくcdk.jsonにまとめておくことで環境変数を整理しやすく なる • 変数を整理することでGithub ActionsでCDKコマンドを組み込むときもスムーズに できた(本当はCDK Pipelineも導入したい…) •
チーム開発でCDKを使うときにはデプロイしたときに差異が起きないようにする仕 組み作りが大事
ほどよいCDK入門(自称) https://github.com/Miura55/jawsug- nagoya-cdk-handson ソースコード https://miura55.github.io/ cdk-handson-text/ 資料
宣伝 https://bit.ly/3JBCSDP
END