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
早さを求めて個人アプリをAmplifyからCDKに移行してみた!
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yosuke Suzuki
September 08, 2026
Technology
34
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
早さを求めて個人アプリをAmplifyからCDKに移行してみた!
Yosuke Suzuki
September 08, 2026
More Decks by Yosuke Suzuki
See All by Yosuke Suzuki
connpass LT会検索エージェントを作ってみた話
ysuzuki
0
82
Amazon Quick 入門!
ysuzuki
2
190
3年目エンジニアが企業ブースを担当して気付いた話
ysuzuki
0
100
入門!AWS Blocks
ysuzuki
1
280
amazon-connect-voice-3methods-LT-editable
ysuzuki
0
34
Amazon Connect Customer で日本語要約試してみた〜 標準機能 vs カスタマイズ、どこまでできる? 〜
ysuzuki
0
45
Amazon Connect の MCP Server を作ってみた話
ysuzuki
0
56
Jr. Champions 活動振り返り
ysuzuki
0
80
New CBs New Challenges
ysuzuki
1
250
Other Decks in Technology
See All in Technology
Bet AI Day 2026丨バクラク Autopilot、業務システムの再設計
layerx
PRO
2
1.1k
[DroidKaigi 2026] Making UI specifications visible: Android UI development in the AI agent era supported by Compose Screenshot Testing and galleries
syarihu
0
530
書籍『生成AIの安全性入門』の入門
wataoka
0
210
プロダクト思考 × 基盤思考を AIで実現する Compound Engineering
tkc66buzz
1
240
KAEN Company Deck
kaen
PRO
0
290
Level Up Your CDK DX: 5 Tools I’ve Been Building
gotok365
2
190
Does an AI Watermark Survive Translation?
machinetranslation
0
520
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
2
2.1k
Azure App Service / Container Apps の組み込み認証
kuniteru
0
190
少人数データチームのDevin活用実践事例
runandy16
2
430
生成AI時代の クレデンシャルとパーミッション設計
nrinetcom
PRO
3
1.5k
Where Is JetBrains AI Heading- — Central CLI, Air Alpha, and the Agentic Development Stack
x5gtrn
PRO
0
120
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Ethics towards AI in product and experience design
skipperchong
2
360
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.6k
Embracing the Ebb and Flow
colly
88
5.2k
エンジニアに許された特別な時間の終わり
watany
108
250k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
How STYLIGHT went responsive
nonsquared
100
6.3k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
400
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
640
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
Transcript
早さを求めて個人アプリをAmplifyから CDKに移行してみた! JAWS-UG CDK支部 #26 〜CDKに関する真夏のLT大会〜 2026/09/08 鈴木陽介
自己紹介 鈴木 陽介(アマコネ芸人) ◆所属:株式会社ウフル ◆業務内容 • お客様窓口(コンタクトセンター)の構築 ◆好きなサービス • Amazon
Connect Customer , AWS CDK ◆最近ハマっていること • Slack App開発 • Webアプリ開発(Amplify Gen2)
本日の内容について ◆Qiitaに投稿した以下の記事をベースにアップデートした内容です。 ◆ご興味がある方がいらっしゃいましたらこちらから確認いただけると幸いです!
はじめに:作ったもの • AI模試ノート(ベンダー資格対策問題集アプリ) • AWS ANSリベンジのために開発中… • 試験ガイドやSkill Builder (無料サンプル問題),
合格体験記系Techブログをベースに問題生成 • クローズドβテスト中(弊社開発メンバー)
はじめに:作ったもの • AI模試ノート(ベンダー資格対策問題集アプリ) • AWS ANSリベンジのために開発中… • 試験ガイドやSkill Builder (無料サンプル問題),
合格体験記系Techブログをベースに問題生成 • クローズドβテスト中(弊社開発メンバー) • プチ実績:合格実績あり(笑)
システム構成(概要)
Amplify を使ったWebアプリ開発について(所感) • 機能としては大満足! • SSRでの ホスティングと Cognito 認証基盤が揃っている •
Git push だけでビルドからデプロイまで完結(CI/CD)を自前する必要なし • アイドル時ほぼ0円(無料枠範囲)
Amplify を使ったWebアプリ開発について(所感) • 機能としては大満足! • SSRでの ホスティングと Cognito 認証基盤が揃っている •
Git push だけでビルドからデプロイまで完結(CI/CD)を自前する必要なし • アイドル時ほぼ0円(無料枠範囲) • 気になった点:Amplify ビルド時間 • 1回あたり平均 7.5分:build時のキャッシュの往復がネック • 復元 91秒 + 作成・アップロード 109秒 で全体の約半分 • リリース:200回弱/月: • ビルド時間課金が嵩む(0.01 USD・分)ためなるべく短縮したい…
ビルド時間の内訳 (例:新規試験問題追加時) キャッシュ作成・アップロード 109秒 next build (コンパイル・型検査) 98秒 キャッシュ復元 (取得・展開)
91秒 バックエンド deploy (ampx) 44秒 環境キャッシュ・後処理 22秒 npm install 20秒 セットアップ・clone 4秒 キャッシュ関連だけで 3分22秒 = 全体の 51%
ビルド時間の内訳 (例:新規試験問題追加時) キャッシュ作成・アップロード 109秒 next build (コンパイル・型検査) 98秒 キャッシュ復元 (取得・展開)
91秒 バックエンド deploy (ampx) 44秒 環境キャッシュ・後処理 22秒 20秒 npm install セットアップ・clone キャッシュ関連だけで 3分22秒 = 全体の 51% 4秒 もっと劇的に 早くビルドするには・・・
まず Amplify のままビルド時間を短縮するには buildSpecの見直し • キャッシュを対象の選定 • .npm 484MB をキャッシュ対象から外す
: node_modules が復元されるなら不要 • CDK 系依存を devDependencies へ整理 : node_modules 2.2GB を圧縮 • ビルド回数自体を減らす • 文言修正だけなら PR をまとめて 1 ビルドに寄せる
まず Amplify のままビルド時間を短縮するには buildSpecの見直し • キャッシュを対象の選定 • .npm 484MB をキャッシュ対象から外す
: node_modules が復元されるなら不要 • CDK 系依存を devDependencies へ整理 : node_modules 2.2GB を圧縮 • ビルド回数自体を減らす • 文言修正だけなら PR をまとめて 1 ビルドに寄せる • CDKでローカルデプロイ • → コンテナ起動やキャッシュ転送・再生成時間なども無いのではもっと早くなる(はず!)
検証スタックのアーキテクチャ Amplify Gen2 と同種の構成を素の CDK で再現。CloudFront+S3 + Lambda Web Adapter
素の CDK で検証 : 遅さの正体は安定化待ち cdk deploy 301秒 の内訳(LWA 構成・新規作成)
CloudFront Distribution 約156秒 キャッシュ無効化 待ち 約90秒 その他 約55秒 デプロイ時間の 約8割がCloudFront と キャッシュ無効化待ち CONSISTENCY_CHECK (一貫性チェック) + キャッ シュ無効化待ち そもそもCloudFormation は何を待っている? ・リソースを作った後、設定が全リージョンへ行き 渡るのを確認してから次へ進む。 →CloudFront はこの伝播が遅い(初回デプロイ)。 ・他静的アセット配置(BucketDeployment)も Distribution の ID を参照するのでさらに待機時間増
素の CDK で検証 : 遅さの正体は安定化待ち cdk deploy 301秒 の内訳(LWA 構成・新規作成)
CloudFront Distribution 約156秒 キャッシュ無効化 待ち 約90秒 その他 約55秒 デプロイ時間の 約8割がCloudFront と キャッシュ無効化待ち CONSISTENCY_CHECK (一貫性チェック) + キャッ シュ無効化待ち そもそもCloudFormation は何を待っている? ・リソースを作った後、設定が全リージョンへ行き 渡るのを確認してから次へ進む。 →CloudFront はこの伝播が遅い(初回デプロイ)。 ・他静的アセット配置(BucketDeployment)も Distribution の ID を参照するのでさらに待機時間増 Amplify から CDK に移しただけでは・・・ 483秒 → 329秒 の 約1.5倍どまり 待ち時間そのものは残ったまま
解消法:CDK Express モードを使う • 何をするもの? • cdk deploy --express で
CloudFormation の安定化待ち(一貫性チェック)を省略 • 既存の CDK コードはそのまま利用可能
解消法:CDK Express モードを使う • 何をするもの? • cdk deploy --express で
CloudFormation の安定化待ち(一貫性チェック)を省略 • 既存の CDK コードはそのまま利用可能 • 実測 : ほぼ変わらず • デプロイ時間 301秒 → 270秒 で 約1.1倍(全体 329秒 → 281秒) • 理由 : 待ちの正体が Express の対象外 (カスタムリソース) • Custom::CDKBucketDeployment の キャッシュ無効化待ち(120秒) • →カスタムリソースのためスキップ対象外(参考)
解消法:CDK Express モードを使う • 何をするもの? • cdk deploy --express で
CloudFormation の安定化待ち(一貫性チェック)を省略 • 既存の CDK コードはそのまま利用可能 • 実測 : ほぼ変わらず • デプロイ時間 301秒 → 270秒 で 約1.1倍(全体 329秒 → 281秒) • 理由 : 待ちの正体が Express の対象外 (カスタムリソース) • Custom::CDKBucketDeployment の キャッシュ無効化待ち(120秒) • →カスタムリソースのためスキップ対象外(参考) • もっと早いのがあるぞ(神の声)
cdkd (CDK Direct) AWS DevTools Hero の gotoさん が開発した OSS(GitHub
https://github.com/go-to-k/cdkd) • CDK CLI をフルスクラッチで作り直したツール(紹介記事: https://zenn.dev/go_to_k/articles/cdkd-cdk-direct) • 最大 15倍 速いデプロイ • CloudFormationを介さずAWS SDK で直接プロビジョニング • CDK 互換(書き換え不要) • cdk deploy を cdkd deploy に置き換えるだけ。 • CDK CLI を置き換えるものではなく、補完するもの • 開発 ・ テスト向け (本番はCDKを推奨)
cdkd (CDK Direct) AWS DevTools Hero の gotoさん が開発した OSS(GitHub
https://github.com/go-to-k/cdkd) • CDK CLI をフルスクラッチで作り直したツール(紹介記事: https://zenn.dev/go_to_k/articles/cdkd-cdk-direct) • 最大 15倍 速いデプロイ • CloudFormationを介さずAWS SDK で直接プロビジョニング • CDK 互換(書き換え不要) • cdk deploy を cdkd deploy に置き換えるだけ。 • CDK CLI を置き換えるものではなく、補完するもの • 開発 ・ テスト向け (本番はCDKを推奨) 早さ is 正義
cdkd (CDK Direct) やっていき! AWS DevTools Hero の gotoさん が開発した
OSS(GitHub https://github.com/go-to-k/cdkd) • CDK CLI をフルスクラッチで作り直したツール(紹介記事: https://zenn.dev/go_to_k/articles/cdkd-cdk-direct) • 最大 15倍 速いデプロイ • CloudFormationを介さずAWS SDK で直接プロビジョニング • CDK 互換(書き換え不要) • cdk deploy を cdkd deploy に置き換えるだけ。 • CDK CLI を置き換えるものではなく、補完するもの • 開発 ・ テスト向け (本番はCDKを推奨) 早さ is 正義
cdkd はなぜ速いのか(概要) synth までは CDK と完全に同じ。デプロイエンジンが違う(CDK CLIとCFnエンジンをフルスクラッチ) cdk deploy (CDK
CLI + CloudFormation) cdkd deploy (フルスクラッチエンジン) CloudFormation テンプレート作成まではCDKと同じ Asset Build & Publish Asset Build & Publish S3 ZIP アップロード・ECR イメージの push S3 ZIP アップロード・ECR イメージの push ▼ ▼ ChangeSet 作成 cdkd Engine 変更セットを CloudFormation に登録 DAG 解析・Diff 計算・並列実行 ▼ ▼ CFn が順次実行 SDK Provider Cloud Control API 各リソースの安定化を待って進む 各リソースを SDK で直接操作 追加タイプをフォールバック ▼ ▼ 完了 完了 ChangeSet 作成と一貫性チェックの待ち時間がまるごと無くなる
結果 : 全体時間の比較 483秒 Amplify Gen2 CI/CD 素の CDK cdk
deploy 329秒 cdkd cdkd deploy Amplify 比 約4.1倍 1回の push で 6分 返ってくる 281秒 CDK Express --express CDK Express + キャッシュ無効化なし cdkd で 8分3秒 → 1分57秒 214秒 117秒 プロビジョニングだけなら cdkd 101秒 は通常CDK比 約3.0倍 全体時間 = synth + asset 公開 + デプロイ。 Next.js ビルド (約100秒) は含まない
まとめ(結果からわかったこと) Amplify Gen2 → CDK → CDK –express → cdkd
それぞれでデプロイ 01 02 03 プロビジョニングは約3.0倍 全体では約2.8倍 Amplify 比では約4.1倍 デプロイ 301秒 → 101秒 329秒 → 117秒 483秒 → 117秒 CloudFormation を迂回し、一貫性 チェック待ちが消える ※synth・asset 公開は残る 1回の push あたり約6分カット 結論 : 開発・テストや個人アプリのイテレーションは cdkd にガンガン寄せると幸せになる! ここからさらに早くビルドできるようにリファクタリングしていきます!