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
AWS CDKの新機能「cdk migrate」を試してみた
Search
KMiura
October 23, 2023
Technology
1
330
AWS CDKの新機能「cdk migrate」を試してみた
color is【クラウドLT大会vol.5】フリーテーマ!
https://saison-coloris.connpass.com/event/298589/
KMiura
October 23, 2023
Tweet
Share
More Decks by KMiura
See All by KMiura
さらばあのボタンとは言わせない SORACOM LTE-M Button powerd by AWSをまだ使えるようにした(前編?)
miura55
0
13
App Runnerでパラメーターストアの値を使ってみた
miura55
0
290
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
LINE DC×SORACOM UGのこれまでとこれから
miura55
0
42
社会人4年目が学生に捧げる5か条
miura55
0
140
AWSで作るGPSトラッキングシステム
miura55
0
460
Other Decks in Technology
See All in Technology
ServiceNow Knowledge Learning Rise up
manarobot
0
210
Building a RAG-poweredAI chat appwith Python and VS Code
pamelafox
0
110
ChatGPT for IT Service Management (IT Pro)
dahatake
7
1.6k
競技としてのKaggle、役に立つKaggle
yu4u
5
2k
オーナーシップを持つ領域を明確にする
konifar
13
3.2k
Postman v10リリース後を振り返る / Looking back at Postman v10 after release
yokawasa
1
160
APIファーストなプロダクトマネジメントの実践 〜SaaSus Platformでの例〜 / "Practicing API-First Product Management - An Example with SaaSus Platform
oztick139
0
110
VS CodeでAWSを操作しよう
smt7174
8
1.7k
LangSmith入門―トレース/評価/プロンプト管理などを担うLLMアプリ開発プラットフォーム
os1ma
3
390
Reducing Cross-Zone Egress at Spotify with Custom gRPC Load Balancing Recap
koh_naga
0
210
自己改善からチームを動かす! 「セルフエンジニアリングマネージャー」のすゝめ
shoota
6
820
Compose Compiler Metricsを使った実践的なコードレビュー
tomorrowkey
1
220
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
266
19k
Rebuilding a faster, lazier Slack
samanthasiow
73
8.2k
Typedesign – Prime Four
hannesfritz
36
2.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
24
2k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
2
3.4k
VelocityConf: Rendering Performance Case Studies
addyosmani
320
23k
BBQ
matthewcrist
80
8.8k
The Language of Interfaces
destraynor
151
23k
YesSQL, Process and Tooling at Scale
rocio
164
13k
Become a Pro
speakerdeck
PRO
11
4.5k
Learning to Love Humans: Emotional Interface Design
aarron
267
39k
We Have a Design System, Now What?
morganepeng
43
6.8k
Transcript
AWS CDKの新機能「cdk migrate」を 試してみた KMiura(@k_miura_io)
自己紹介 • 三浦 耕生(こうき) • 三次元地図のスタートアップのエンジニア • JAWS UG名古屋運営 •
好きなAWSのサービス: AWS IoT、 Lambda、ECS、AWS CDK @k_miura_io koki.miura05
AWS CDKとは? • AWSのサービス構築をアプリケーションをコードで定義するためのIaCツール • モダンなプログラミング言語でAWSのアプリケーション構成を定義することで CloudFormationのテンプレートを作成できる
Terraformとの違いは? Terraform AWS CDK 対応言語 独自の言語 TypeScript, Python, Goなど 対応クラウド
AWS、Azure、GCPなど AWS ライセンス Business Source License(BSL) Apache-2.0 license
CDKは頻繁にアップデートがある • OSSで様々な開発者がコントリビュートしている • 現行のV2のマイナーバージョンは100超え • Experimentalで新機能をお試しできる(あくまで検証目的) • 新機能のアップデート情報は #cdk_releases
でキャッチアップするのがおすすめ(今回 のネタもここから選択した)
None
Migrateコマンドが導入された • CloudFormationのテンプレート(json, yaml)やデプロイ済みのCloudFormationス タックからCDKのアプリケーションを構築する機能 • テンプレートやスタックから変換されるCDKはL1コンストラクト(CloudFormationのリソー スに対応したコンストラクト)として作成される • それまでは手作業で行う必要があったCloudFormationからCDKへの移行作業が効率
よくなりそう • 2023/10現在はExperimentalでの提供
試してみた
今回構築するスタック
テンプレートの用意 • カスタムドメインを指定してS3でホスティングされるWebサイトを構築 • https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/ sample-templates-services-ap-northeast-1.html で公開しているサンプルのテンプ レートを用意
テンプレートからCDKアプリを作成 cdk migrate --stack-name CDKHelloWorld --language typescript --from-path ./S3_Website_With_CloudFront_Distribution.template
テンプレート生成したらエラーに…
なぜエラーになったのか? • 作られたスタックを呼び出すときに必要なプロパティに変数が定義されていた • スタックを呼び出す時のアプリケーション側ではそのプロパティの変数が何も設定されて なかったので追加してみた(今回の場合はホストゾーンを指定した) スタック側(プロパティの定義) アプリ側(スタックの呼び出し時)
もう少し掘り下げてみた • マネジメントコンソールを使って同じテンプレートから構築するとスタックの詳細設定のとき にホストゾーンを聞かれる • cdk migrateではこのパラメータを聞くところがプロパティの変数としてスタックで呼び出 すときに設定するように作られているよう
それでもエラーに…
このエラーの原因は? • スタック内でデプロイ先のリージョン名を参照しているが、そのデプロイ先のリージョンをア プリケーション側で何も設定していない • 実はアプリケーション側ではリージョン名、アカウントIDを定義するenvオブジェクトはコメ ントアウトしてた スタック側(リージョンを参照している) アプリ側(envオブジェクトの定義を追加)
無事にCloudFormation のテンプレートが再生成 された🎉
おまけ • WordPressを構築するスタックを作ろうとしたらエ ラーが大量に出まくった… • EC2上で構築するコマンドとかが定義されているの が原因かもしれないけど、これだけエラーあったら 自分で一から構築したほうが早いかも…
まとめ • CloudFormationで構成したスタックをCDKに移行することができた • そのままデプロイできなくて多少手直しが必要になることもあり • 非対応のスタックなどもあったりするので、まだまだ伸びしろがある • CloudFormationのテンプレートから改造するときにCDKに変換すればAWSの 環境構築が効率よくなるかも
END