Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
95
Pythonでルンバをハックしてみた
miura55
0
180
あなたの知らないクラフトビールの世界
miura55
0
370
Storage Browser for Amazon S3を触ってみた + α
miura55
0
230
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた
miura55
0
230
あのボタンでつながるSORACOM
miura55
0
150
Postman Flowsで作るAPI連携LINE Bot
miura55
0
390
Lambdaと共に歩んだAWS
miura55
3
870
Other Decks in Technology
See All in Technology
Kiro を用いたペアプロのススメ
taikis
1
480
AIプラットフォームにおけるMLflowの利用について
lycorptech_jp
PRO
1
170
re:Invent 2025 ~何をする者であり、どこへいくのか~
tetutetu214
0
220
ChatGPTで論⽂は読めるのか
spatial_ai_network
11
29k
Snowflakeでデータ基盤を もう一度作り直すなら / rebuilding-data-platform-with-snowflake
pei0804
6
1.6k
プロンプトやエージェントを自動的に作る方法
shibuiwilliam
13
13k
MySQLとPostgreSQLのコレーション / Collation of MySQL and PostgreSQL
tmtms
1
1k
Microsoft Agent 365 についてゆっくりじっくり理解する!
skmkzyk
0
390
生成AI活用の型ハンズオン〜顧客課題起点で設計する7つのステップ
yushin_n
0
250
日本Rubyの会: これまでとこれから
snoozer05
PRO
4
160
Lessons from Migrating to OpenSearch: Shard Design, Log Ingestion, and UI Decisions
sansantech
PRO
1
150
今年のデータ・ML系アップデートと気になるアプデのご紹介
nayuts
1
530
Featured
See All Featured
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
69
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
0
840
Ethics towards AI in product and experience design
skipperchong
1
130
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
29
Google's AI Overviews - The New Search
badams
0
860
The Mindset for Success: Future Career Progression
greggifford
PRO
0
180
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.1k
What's in a price? How to price your products and services
michaelherold
246
13k
Optimizing for Happiness
mojombo
379
70k
Utilizing Notion as your number one productivity tool
mfonobong
2
180
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
180
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