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
520
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS CDKの新機能「cdk migrate」を試してみた
color is【クラウドLT大会vol.5】フリーテーマ!
https://saison-coloris.connpass.com/event/298589/
KMiura
October 23, 2023
More Decks by KMiura
See All by KMiura
運用しているアプリケーションのDBのリプレイスをやってみた
miura55
1
1.2k
Amazon Rekognitionを使ったインターホンハック
miura55
0
130
Pythonでルンバをハックしてみた
miura55
0
260
あなたの知らないクラフトビールの世界
miura55
0
450
Storage Browser for Amazon S3を触ってみた + α
miura55
0
300
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた
miura55
0
320
あのボタンでつながるSORACOM
miura55
0
190
Postman Flowsで作るAPI連携LINE Bot
miura55
0
440
Lambdaと共に歩んだAWS
miura55
3
1.1k
Other Decks in Technology
See All in Technology
AI時代のYAGNI:「爆速で無駄になった機能」からの学び / 20260720 Naoki Takahashi
shift_evolve
PRO
3
520
“それは自分の仕事じゃない"を越えて行け
yuukiyo
1
520
大 AI 時代におけるC# の事情 ~ぶっちゃけトークを交えながら~
nenonaninu
0
120
ゴールデンパスは敷いただけでは道にならない ─ 企画部門のエンジニアが技術標準を事業価値に変えるまで
mhrtech
1
260
「守りたい体験」を渡すだけで E2E を生成させられるようになった話
hinac0
2
1k
2年前に削除したPHPクラスが、 ある日突然決済をエラーにした
ykagano
1
780
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
460
AI時代のPlaywright活用(システムテストを自動化する ー 実行エンジンにPla ywrightを選んだ理由)
ynisqa1988
2
950
なぜ、あなたのエージェントは言うことを聞かないのか
segavvy
1
370
ダッシュボード"開発"について 〜使われるダッシュボードのつくりかた〜
kimichan
0
200
Type-safe IaC for Dart
coborinai
0
180
CDKで書くECSのベストプラクティス、 改めて考え直す2026 #cdkconf2026
makies
3
940
Featured
See All Featured
It's Worth the Effort
3n
188
29k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
220
Unsuck your backbone
ammeep
672
58k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
470
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
360
Balancing Empowerment & Direction
lara
6
1.2k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
640
YesSQL, Process and Tooling at Scale
rocio
174
15k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
370
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