WorryFree Computers »
Address
:
[go:
up one dir
,
main page
]
Include Form
Remove Scripts
Accept Cookies
Show Images
Show Referer
Rotate13
Base64
Strip Meta
Strip Title
Session Cookies
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
340
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
VS CodeとVimが好きなエンジニアが考えた最強のエディタ
miura55
0
95
オープンソースのロボットソフトウェア「ROS」で地図作成を試してみた
miura55
0
220
Cloudflare WorkersがPythonに対応したので試してみた
miura55
0
250
個人のAWSアカウントをマルチ運用してみた
miura55
2
310
さらばあのボタンとは言わせない SORACOM LTE-M Button powerd by AWSをまだ使えるようにした(前編?)
miura55
0
140
App Runnerでパラメーターストアの値を使ってみた
miura55
0
330
ultraArmをモニター提供してもらった話
miura55
0
130
JAWS UG名古屋2023年活動報告
miura55
0
140
AWS Step Functionsの新機能「Call third-party API」を試してみた
miura55
1
120
Other Decks in Technology
See All in Technology
機械学習モデルの運用と実用的なアプローチ
databricksjapan
0
400
入門 電気通信事業者
kurochan
8
4.3k
Goでテストをしやすくするためにやったこと
kazukihayase
1
370
Developing image pull secrets provisioner / Kubernetes Meetup Tokyo #65
pfn
PRO
2
110
Capacitor製のWebViewアプリからReact Native製のハイブリッドアプリへ
yukukotani
4
730
不要な DNS リソースレコードは消そう / Delete unused DNS records
wa6sn
4
2.2k
【Λ(らむだ)】2023年下期 アプデ情報 / RPALT20240530
lambda
0
260
Oracle Technology Night #79 -2 Oracle Database 23ai 新機能 - Large Object および SecureFiles
oracle4engineer
PRO
1
170
その失敗から何を学ぶ?不確実性をマネジメントして目標達成するための心得 #webtan
aki_iinuma
18
5.1k
週刊AWSキャッチアップ 生成AI編(2024/5/27週)
minorun365
PRO
4
110
Platform Orchestrators: The Missing Middle of Internal Developer Platforms?
syntasso
1
120
CyberAgent AI事業本部2024年度MLOps研修実践編 / MLOps Practice
hosimesi11
4
5.5k
Featured
See All Featured
The Mythical Team-Month
searls
217
42k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
Making the Leap to Tech Lead
cromwellryan
126
8.6k
YesSQL, Process and Tooling at Scale
rocio
165
13k
Statistics for Hackers
jakevdp
791
220k
The Cult of Friendly URLs
andyhume
74
5.8k
Bash Introduction
62gerente
606
210k
Building Flexible Design Systems
yeseniaperezcruz
321
37k
Design by the Numbers
sachag
275
18k
Being A Developer After 40
akosma
68
580k
For a Future-Friendly Web
brad_frost
172
9.1k
Designing with Data
zakiwarfel
96
4.9k
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