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
440
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
運用しているアプリケーションのDBのリプレイスをやってみた
miura55
1
890
Amazon Rekognitionを使ったインターホンハック
miura55
0
36
Pythonでルンバをハックしてみた
miura55
0
86
あなたの知らないクラフトビールの世界
miura55
0
250
Storage Browser for Amazon S3を触ってみた + α
miura55
0
140
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた
miura55
0
140
あのボタンでつながるSORACOM
miura55
0
90
Postman Flowsで作るAPI連携LINE Bot
miura55
0
310
Lambdaと共に歩んだAWS
miura55
3
680
Other Decks in Technology
See All in Technology
いまからでも遅くない!コンテナでWebアプリを動かしてみよう!コンテナハンズオン編
nomu
0
130
Raycast Favorites × Script Command で実現するお手軽情報チェック
smasato
1
140
組織におけるCCoEの役割とAWS活用事例
nrinetcom
PRO
4
120
Iceberg Meetup Japan #1 : Iceberg and Databricks
databricksjapan
0
310
内製化を加速させるlaC活用術
nrinetcom
PRO
2
130
JavaにおけるNull非許容性
skrb
2
2.5k
エンジニアリング価値を黒字化する バリューベース戦略を用いた 技術戦略策定の道のり
kzkmaeda
6
2.2k
JEDAI Meetup! Databricks AI/BI概要
databricksjapan
0
310
ExaDB-XSで利用されているExadata Exascaleについて
oracle4engineer
PRO
3
180
脳波を用いた嗜好マッチングシステム
hokkey621
0
280
設計を積み重ねてシステムを刷新する
sansantech
PRO
0
150
コンピュータビジョンの社会実装について考えていたらゲームを作っていた話
takmin
1
590
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
360
The Language of Interfaces
destraynor
156
24k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
Unsuck your backbone
ammeep
669
57k
Gamification - CAS2011
davidbonilla
80
5.2k
It's Worth the Effort
3n
184
28k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Docker and Python
trallard
44
3.3k
Git: the NoSQL Database
bkeepers
PRO
427
65k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
430
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