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
630
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
App Runnerでパラメーターストアの値を使ってみた
miura55
0
280
ultraArmをモニター提供してもらった話
miura55
0
110
JAWS UG名古屋2023年活動報告
miura55
0
130
AWS Step Functionsの新機能「Call third-party API」を試してみた
miura55
1
100
AWS Step Functionsの新機能「Call third-party API」を試してみた
miura55
0
190
AWS CDKの新機能「cdk migrate」を試してみた
miura55
1
320
LINE DC×SORACOM UGのこれまでとこれから
miura55
0
42
社会人4年目が学生に捧げる5か条
miura55
0
130
AWSで作るGPSトラッキングシステム
miura55
0
440
Other Decks in Technology
See All in Technology
Garoon 開発チーム / Garoon development team
cybozuinsideout
PRO
1
2.8k
CloudFrontの継続的デプロイを試してみたはなし
stknohg
PRO
0
620
入社後初めてのタスクでk8sアップグレードした話.pdf
kkato1
0
370
ユーザーストーリーのレビューを自動化したみたの
bun913
1
230
プロデザ! BY リクルート vol.18_リクルートのリサーチ実践組織「リサーチブーストコミュニティ」
recruitengineers
PRO
2
190
少数チームで挑む: SwiftUI, TCA, KMPを用いた 新規動画配信アプリ 「ABEMA Live」の開発について
tomu28
0
470
コードを書く隙間を見つけて生きていく技術/Findy 思考の現在地
fujiwara3
21
4.1k
ログラスにおけるコード品質でビジネスに貢献する仕組み・カルチャー / A system and culture that contributes to business through code quality in Loglass
yoshikiiida
11
1.6k
Signals Unleashed: The Full Guide
rainerhahnekamp
0
340
[2024年3月版] Databricksのシステムアーキテクチャ
databricksjapan
7
1.8k
コンパウンドスタートアップのためのスケーラブルでセキュアなInfrastructure as Codeパイプラインを考える / Scalable and Secure Infrastructure as Code Pipeline for a Compound Startup
yuyatakeyama
3
1.7k
Databricks:『生成AI World Cup』のご案内
databricksjapan
1
110
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
318
37k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
124
32k
StorybookのUI Testing Handbookを読んだ
zakiyama
10
4.5k
VelocityConf: Rendering Performance Case Studies
addyosmani
319
23k
Into the Great Unknown - MozCon
thekraken
10
980
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
74
41k
Rails Girls Zürich Keynote
gr2m
91
13k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
118
38k
Music & Morning Musume
bryan
40
5.5k
Faster Mobile Websites
deanohume
296
30k
Thoughts on Productivity
jonyablonski
57
3.8k
Making the Leap to Tech Lead
cromwellryan
123
8.5k
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