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
650
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
AWS×IoTについて語り合う会
miura55
0
60
クラウドを活用して家電をハックしてみた
miura55
0
55
Amplify Gen2でLambda構築してみた
miura55
0
72
Amplify Gen2でLambda構築してみた
miura55
1
500
Amplify Gen2がGAされたので試してみた
miura55
0
81
VS CodeとVimが好きなエンジニアが考えた最強のエディタ
miura55
0
180
オープンソースのロボットソフトウェア「ROS」で地図作成を試してみた
miura55
0
280
Cloudflare WorkersがPythonに対応したので試してみた
miura55
0
400
個人のAWSアカウントをマルチ運用してみた
miura55
2
360
Other Decks in Technology
See All in Technology
サービスの持続的な成長と技術負債について
siva_official
PRO
10
4.4k
目標設定は好きですか? アジャイルとともに目標と向き合い続ける方法 / Do you like target Management?
kakehashi
10
3k
Azure AI ことはじめ
tsubakimoto_s
0
130
JBUG岡山 #6 WordCamp男木島の チームビルディング
takeshifurusato
0
150
Git 研修 Advanced【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
200
ABEMAにおけるLLMを用いたコンテンツベース推薦システム導入と効果検証
cyberagentdevelopers
PRO
1
730
AWSで”最小権限の原則”を実現するための考え方 /20240722-ssmjp-aws-least-privilege
opelab
10
4.3k
たくさん本を読んだけど 1年後には綺麗サッパリ!を乗り越えて 学習の鬼になるぞ👹
yum3
0
160
コミュニティサービスに「あなたへ」フィードを リリースするまでの試行錯誤
takapy
1
150
DevIO2024_レガシー運用からの脱却 -クラウド活用の実践事例とベストプラクティス-
jun2882
0
210
Git 研修 Basic【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
310
AOAI Dev Day - Opening Session
yoshidashingo
2
440
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
93
5k
Building Flexible Design Systems
yeseniaperezcruz
323
37k
Design by the Numbers
sachag
277
18k
Building Your Own Lightsaber
phodgson
101
5.9k
Web Components: a chance to create the future
zenorocha
307
41k
RailsConf 2023
tenderlove
16
720
Build your cross-platform service in a week with App Engine
jlugia
227
17k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
23
1.9k
Fontdeck: Realign not Redesign
paulrobertlloyd
79
5.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
277
13k
Raft: Consensus for Rubyists
vanstee
134
6.5k
Designing on Purpose - Digital PM Summit 2013
jponch
113
6.6k
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