---
title: Next.jsをAmplifyに_しっかり_と載せるためには
tags: 
author: [NishimuraWataru](https://image.docswell.com/user/_n13u_)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/9J2933PWER.jpg?width=480
description: 本資料では、Next.js を AWS Amplify の Hosting に載せる際に考慮すべき技術要素を整理し、AppSync や Cognito などの Amplify サービスとの統合目的か単なるデプロイ目的かを見極める重要性を説明しています。また、amplify‑js と @aws‑amplify/adapter‑nextjs が別物であること、Amplify Hosting のビルド・デプロイフロー、Lambda・S3・CloudFront の役割分担、レスポンスサイズやタイムアウトなどの実装上の制約、そして Next.js 16 の一部機能が未対応である点についても具体例を交えて紹介しています。本資料では、Next.js を AWS Amplify の Hosting に載せる際に考慮すべき技術要素を整理し、AppSync や Cognito などの Amplify サービスとの統合目的か単なるデプロイ目的かを見極める重要性を説明しています。また、amplify‑js と @aws‑amplify/adapter‑nextjs が別物であること、Amplify Hosting のビルド・デプロイフロー、Lambda・S3・CloudFront の役割分担、レスポンスサイズやタイムアウトなどの実装上の制約、そして Next.js 16 の一部機能が未対応である点についても具体例を交えて紹介しています。  おすすめタグ：Next.js,AWS Amplify,SSR,デプロイ,技術制約
published: August 28, 26
canonical: https://image.docswell.com/s/_n13u_/KN7QL7-2026-08-28-085659
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/9J2933PWER.jpg)

Next.js をAmplifyに&quot;しっかり&quot;と
載せるためには
n13u / 2026.08.25 / #AWSAmplifyJP


# Page. 2

![Page Image](https://bcdn.docswell.com/page/DEY41159JM.jpg)

⾃⼰紹介
●
Nishimura Wataru / ⻄村航
●
ちょっと株式会社
プロダクト部 Orizm プロダクトマネージャー
●
Next.js / React 愛好家
●
最近の好きなもの
○
⾳楽：BOOM BOOM SATELLITES
○
本：プロジェクト・ヘイルメアリー


# Page. 3

![Page Image](https://bcdn.docswell.com/page/VJNY22ND78.jpg)

ちょっと株式会社 について
●
ちょっと株式会社（chot Inc.）は、AIやテクノロジーを活⽤して社会に「ちょっといい変
化」をもたらすことを⽬指しています
○
●
⽇本初のVercel公式パートナーとして、⼤規模Webサイトの制作や独⾃CMS「Orizm」
の開発を⼿掛けています。
○
●
Next.jsを中⼼としたモダンフロントエンド開発に特化しており、AIアプリケーションやエージェント型Webサイ
トの開発を⾏っています。
VercelとAWSはIntergrationがあったりするので競合でもありつつ、⼀緒に使えるサービスなんですよね...
フルリモートで柔軟な働き⽅が可能で、エンジニアが成⻑できる環境を提供しています。


# Page. 4

![Page Image](https://bcdn.docswell.com/page/YE9P11R8J3.jpg)

Orizm について
●
Orizmはちょっと社が提供する企業の情報発信を⽀援するためのWebサービスです
●
BaaS型のCMSサービスと組み合わせたWebマーケティングを効率化するための仕組みを
提供しています


# Page. 5

![Page Image](https://bcdn.docswell.com/page/GE8D44WZED.jpg)



# Page. 6

![Page Image](https://bcdn.docswell.com/page/LELM66N17R.jpg)

AWS Amplify と私（ とちょっと社）
●
AWS AmplifyはOrizm公式ドキュメント docs.orizm.com サイトのホスティングに利⽤
しています
●
Nextraをベースに、静的サイト⽣成（SSG）したものをデプロイしています
●
受託側では必要に応じて軽量なNext.js製Webアプリケーションのデプロイに利⽤してい
ます
●
社内サービスのVercel-&gt;Amplify移⾏を考えたことがきっかけで今⽇の登壇につながって
います
○
●
OrizmはCMSをVercelにデプロイしていますが、今後Amplifyも視野に⼊れています（が厳しそう
私⾃⾝はAmplify Gen1の時に触る機会が多かったです


# Page. 7

![Page Image](https://bcdn.docswell.com/page/4JMY55X5JW.jpg)

今⽇する話


# Page. 8

![Page Image](https://bcdn.docswell.com/page/PJR933NZ79.jpg)

AmplifyにNext.jsをしっかりとのせる
●
Next.jsをAWS Amplifyに載せる時に考えるべき技術的要素とその原因を探ってみます
●
●
そこから導き出されるAWS AmplifyにおけるNext.jsとの向き合い⽅をまとめます
前提としている知識の整理
○
○
○
Node.js環境とブラウザJavaScript環境の違い
フロントエンドメタフレームワークにおけるレンダリング⽅式の違い
AWS Amplify、Next.js、Reactの基礎知識


# Page. 9

![Page Image](https://bcdn.docswell.com/page/PEXQ44N1JX.jpg)

最初に結論
●
Next.jsをAWS Amplifyで動かしたいときに、AppSyncやCognitoなどを統合して使える
ことにメリットを感じているのか、デプロイ環境として単純にAWSを選んでいるのかを考
える必要がある
●
Amplify Hosting で未対応な機能は、Next.jsもAWS Amplifyも悪くなく現状の技術的な
制約によるもの。なのでLambdaでもいいことがある。でもLambdaだと⾃分で
CloudFrontやS3との連携を書く必要がある。
●
Amplifyに載せるときはやりたいことをしっかり考えて整理することが⼤事


# Page. 10

![Page Image](https://bcdn.docswell.com/page/3EK9ZZNMED.jpg)

amplify-jsとAmplifyのホスティング環境は
別物である（おさらい）
以下の２つは別のもので、それぞれでNext.jsとの相性を考える必要があります
●
aws-amplify（amplify-js）
CognitoやAppSyncにAmplifyが提供するラッパーを通してアクセスするためのSDK
○
●
@aws-amplify/adapter-nextjs
SSR環境でaws-amplifyを動かすためのNext.js向けのSDK（サーバー⽤）
Amplify Hosting
デプロイされたアプリケーションが動くAmplifyのインフラ基盤。aws-amplifyとの依
存関係はない


# Page. 11

![Page Image](https://bcdn.docswell.com/page/L73WDDV275.jpg)

整理するとこう
Amplify Hosting（Compute）
aws-amplify（amplify-js）
役割
ビルド・配信・SSR 実⾏をするデプロイ環境
ognito / AppSync / S3 を叩くnpm
パッケージ
実体
S3、CloudFront、Lambdaなどの集合。
内部の詳細は公開されていない
SigV4と⾃前のfetchを持っている
元はブラウザ向けのSDK
Next.js
対応
公式では12~15まで
13.5.0~16.xまで
環境
どんなフレームワークでもデプロイできる
どんなホスティング環境でも動く


# Page. 12

![Page Image](https://bcdn.docswell.com/page/87DKPP86JG.jpg)

Next.js を動かす上 で⼤事なこと はAmplify が
提供するAWSサービス を使いたいのかというこ
と
● ⾃分のアプリケーションでやりたいことを考える
●
Cognitoの認証基盤の上で、AppSync経由のDynamoDBにデータストアを⾏いアプリ
ケーションを構築したい
→aws-amplifyとNext.jsとの間の制約を探す
●
ではなくNext.jsアプリケーションをデプロイしたいだけ
→デプロイ環境として、どのレンダリング⽅式が最適かを考える


# Page. 13

![Page Image](https://bcdn.docswell.com/page/VJPKNNWZE8.jpg)

Amplify Hosting の制約


# Page. 14

![Page Image](https://bcdn.docswell.com/page/2EVVKK8MEQ.jpg)

Amplify Hostingの制約を知る
●
Next.jsアプリケーションはApp Router登場からキャッシュやレンダリング⽅式⾯、⾮同
期な処理の扱い、デプロイ先を選ばないようなビルド時のAdapter規約の開発など新しい
機能をどんどん出しており、実際のWebアプリケーション構築で利⽤できるチャンスが多
いです
●
ただ、機能が動くためにはインフラ環境側に制約がいくつかありそれらを知らないと
「アレ、これVercel（やLambda）だと動くけどAmplifyだと動かないね？？？」
ということになります
●
今回はSSGでなくできる限りSSR環境で、そしてApp RouterやNext.jsの最新機能を使お
うという前提です（受託案件では特にISRやキャッシュ機構を使うことが多いです


# Page. 15

![Page Image](https://bcdn.docswell.com/page/57GLQQ5XEL.jpg)

Amplifyのデプロイフローを整理
Git push
└→ Amplify CI/CD ＝ 中⾝は CodeBuild
└→ next build → .next（← ここがoutだとSSGとしてAmplifyが検知し置き換える）
└→ Amplifyのclosed adapter（多分ある、NuxtやSvelteKitはOSSのアダプタが変換し
ている
└→ amplify-compute-bundle-output/
├─ compute/default/
server.js、chunks/、node_modules/
├─ static/
└─ deploy-manifest.json
└→ S3 + Lambda に配置


# Page. 16

![Page Image](https://bcdn.docswell.com/page/4EQYKKZ5JP.jpg)

Amplifyがどうやってリクエストを捌くか
→ CloudFront（Amplify 管理。⾃分の AWS アカウントには⾒えない）cache policy を
content type で⾃動選択
Amplify-Default … Authorization/Accept/Viewer-Country/Host + Cookie全部 + QS全部
Amplify-DefaultNoCookies … 上から Cookie を除外
Amplify-StaticContent
… Cookie / QS を cache key に含めない
Amplify-ImageOptimization
routes を先頭から評価
├─ Static
→ S3
├─ ImageOptimization → Amplify の最適化サービス（sharp は⾃動デプロイ）
└─ Compute
→ AWS Lambda


# Page. 17

![Page Image](https://bcdn.docswell.com/page/KJ4WPP3V71.jpg)

つまり、どういうことか
●
●
●
Next.jsが動くためのバンドル結果をLambda、S3に分けておくためにアダプタ（変換機
構）が存在している
CloudFrontでインターネットからのアクセスをContent-Typeごとに整理してS3や
Lambdaに振り分けることでNext.jsアプリケーションを動かしている
Lambdaに制約が左右される
○
○
○
○
○
SSR ビルド出⼒
220 MB（⾮圧縮）→今⽇社内でこれに引っかかっている⼈がいました
レスポンス最⼤
5.72 MB
タイムアウト 30秒
Lambda メモリ 1024 MB 固定
etc…


# Page. 18

![Page Image](https://bcdn.docswell.com/page/LE1Y99147G.jpg)

`deploy-manifest.json` ファイル
●
●
●
Amplify Hosting向けにRoute構成設定を書き、S3に振り分けるのかLambdaに振り分
けてSSRするのかを分割する
Next.jsでも⽣成されているはず（⽣成の仕組みはclosed）
詳細は公式ドキュメントに書かれている
○
●
https://docs.aws.amazon.com/ja_ jp/amplify/latest/userguide/ssr-deployment-speciﬁcation.html
このファイルでできること＝Amplify Hostingでできること


# Page. 19

![Page Image](https://bcdn.docswell.com/page/GEWGQQ8ZJ2.jpg)

Next.js最新（16.x）で
何ができて何ができないのか


# Page. 20

![Page Image](https://bcdn.docswell.com/page/47ZLWW8LJ3.jpg)

Amplify HostingとAWS Amplifyの
Next.js対応状況をおさらい
●
AWS Amplify→Amplify JSのAdapterがNext.js 16まで対応
○
●
がドキュメントは未更新っぽい
Amplify Hosting→15まで公式サポート、16はどう...？どんな機能使えるの...?


# Page. 21

![Page Image](https://bcdn.docswell.com/page/YJ6WGGPMJV.jpg)

公式ドキュメント では 以下の通りだが...
●
サポートされていない機能
○
○
○
○
○
○
○
●
イメージの最適化
OnDemand-ISR
国際化 (i18n) ドメインルーティング
国際化 (i18n) ⾃動ロケール検出
ミドルウェア
エッジ ミドルウェア
エッジ API ルート¶
上記どれも全てNext.js 15までの機能しか網羅されていない


# Page. 22

![Page Image](https://bcdn.docswell.com/page/GJ5MVVKQJ4.jpg)

Amplify Hostingの技術的制約
●
●
公式ドキュメントに「未対応」と明記されている5つ
○
○
○
○
○
Edge API Routes / Edge Middleware
On-demand ISR（revalidatePath / revalidateTag)
Next.js ストリーミング ・
静的アセットと最適化画像への middleware 実⾏ ・
unstable_after
○
○
○
PPR
Cache Components（use cache / cacheComponents）
Server Actions（動くが redirect() で不安定報告 / Issue #4075）
ドキュメントに記載すらないが実質使えないもの
4つの根本原因
1.
レスポンスをバッファして返す
a.
2.
共有キャッシュのプリミティブが無い
a.
b.
3.
manifest のキャッシュ表現が cacheControl と minimumCacheTTL のみ
on-demand ISR / revalidateTag / use cache のためのバックエンドにRedis等が必要だが...
アプリディレクトリが read-only
a.
b.
4.
レスポンス上限 5.72MB ≒ Lambda 同期呼び出しサイズと同じで公式も使えないことを明記している
streaming / PPR / Suspense / Server Actions の逐次配信が使えない...orz
EROFS: read-only ﬁle system, open &#039;/tmp/app/.next/server/app/….html&#039;（Issue #3707 他、2023年から）
Next.js 既定の ﬁle-system cache handler による prerender cache 更新ができない
CloudFront で分岐して Lambdaに届かない...


# Page. 23

![Page Image](https://bcdn.docswell.com/page/9E2933WW7R.jpg)

例えばCache Componentsは？
●
●
●
16.0から登場した15.xまでで提供していたDynamicIO、PPR、Cacheをまとめた1つの機
能
アプリケーション全体のうち静的な箇所とキャッシュ可能な箇所（または常に動的な箇
所）を分けて、構築することでキャッシュサイズやライフタイムを機能・コンポーネント・
データ単位ごとに最適化できる
Amplify Hostingは⾮対応、つまりAWS AmplifyをAmplify HostingでCache
Components下で使っても意図した通りに動かない


# Page. 24

![Page Image](https://bcdn.docswell.com/page/D7Y411L9EM.jpg)

Cache Componentsの中⾝
●
●
●
Cache Componentsは基本的にStreaming＋Next.js Cache機構の機能を多分に使って
いる
意図した振る舞いをしないことの⽅が多い...
実際のデモでは動いているように⾒えるけど...
○
○
インメモリキャッシュなので、Lambdaのインスタンスが変わるとキャッシュが落ちる→Cacheされてはいるので
Cache Componentsとしてはまあ動いている...？ただ予測不可な振る舞いになるといえばそう
Streamingが効いていないのでFallbackが効かない...


# Page. 25

![Page Image](https://bcdn.docswell.com/page/VENY224DJ8.jpg)

ストリーミングが使えないと...
●
&lt;Suspense&gt;で囲んだアプリケーションのfallback→本体の表⽰がうまく動かなくなる
○
●
●
段階的に画⾯をローディングすることもできない...
他のReactフレームワークでもRSC＋SSRを使う際に気をつける必要が出てくる
詰まるところNext.js App RouterやCache Componentsが提供する部分的に更新してい
くUXモデルが機能しない


# Page. 26

![Page Image](https://bcdn.docswell.com/page/Y79P11Q8E3.jpg)

Next.js 16.2
Deployment Adapters
APIの登場


# Page. 27

![Page Image](https://bcdn.docswell.com/page/G78D44GZ7D.jpg)

⾰命（？） かも
●
●
●
Next.js 16.2 登場時にオフィシャルでリリースされたデプロイ前のビルド時の振る舞いを
新しく定めどんなデプロイ環境でも準拠できるAPI
現在Vercelもこれに従ってデプロイ⽤の変換を記述している
開発にあたってAWS Amplifyチームも参加しているっぽい
○
●
Thank you to the members of the Build Adapters working group: engineers at Netlify, Cloudﬂare,
Google Cloud, AWS Amplify, and OpenNext who invested their time co-designing this API and
validating it for their platforms. Thank you to every contributor who built adapters, ﬁled bugs, and
shipped workarounds. （https://nextjs.org/blog/nextjs-across-platforms#the-ecosystem-working-group）
とはいえ、ビルド時の変換をするだけでdeploy-manifest.jsonで表現できる範囲しか
Amplify Hostingでは実現で不可なのでできるようになることは少ない...


# Page. 28

![Page Image](https://bcdn.docswell.com/page/L7LM66G1JR.jpg)

Amplify Hostingこれができたら完璧
●
Next.js 公式 Adapter API への対応
○
○
●
レスポンスのストリーミング
○
○
●
revalidateTag / on-demand ISR / use cache が全部ここに依存している...
書き込み可能な（インスタンス間で共有される）キャッシュ領域
○
●
●
⼤きな原因の１つ。対応してくれると嬉しい
Next.js 公式の要件表でも軒並み &quot;Streaming: Required&quot;な機能が多い
■
LambdaはStreaming Responseが使えるはずなので..？
共有キャッシュと cacheHandler の差し込み⼝
○
●
AWS 向け adapter は「OpenNext 経由で開発中」とアナウンス済み
Amplify Hostingも対応して欲しいが、deploy-manifest.jsonではない仕組みをAmplifyが導⼊
/tmp/app が read-only なので Next.js 既定の ﬁle-system cache handler が prerender cache を更新でき
ない
未対応機能を「未対応」とドキュメントに書く
サポート対象 Next.js バージョンの追随とロードマップの公開
○
Feature Request Tracker は公開されているが、Next.js バージョン追随の⾒通しは載っていない
などなどありますが...


# Page. 29

![Page Image](https://bcdn.docswell.com/page/4EMY55Q5EW.jpg)

お願い、AWSさん 🙏


# Page. 30

![Page Image](https://bcdn.docswell.com/page/PER9338ZJ9.jpg)

Next.jsを”しっかり”と載せるために
Next.js の最新機能（PPR / use cache / streaming / on-demand ISR）が要件？
├─ YES → Vercel、または Fargate で next start
└─ NO
├─ プライベート VPC 内のリソースに直接繋ぐ？
│
└─ YES → Amplify Hosting は落ちる（ECS / Lambda+VPC）
└─ NO
├─ 開発者5名以上 &amp; バックエンドが AWS → Amplify Hosting
└─ 少⼈数 &amp; 転送量が多い
→ その他サービス


# Page. 31

![Page Image](https://bcdn.docswell.com/page/P7XQ4481EX.jpg)

結論振り返り
●
Next.jsをAWS Amplifyで動かしたいときに、AppSyncやCognitoなどを統合して使える
ことにメリットを感じているのか、デプロイ環境として単純にAWSを選んでいるのかを考
える必要がある
●
Amplify Hosting で未対応な機能は、Next.jsもAWS Amplifyも悪くなく現状の技術的な
制約によるもの。なのでLambdaでもいいことがある。でもLambdaだと⾃分で
CloudFrontやS3との連携を書く必要がある。
●
Amplifyに載せるときはやりたいことをしっかり考えて整理することが⼤事（というかなん
でもそうですね...


# Page. 32

![Page Image](https://bcdn.docswell.com/page/37K9ZZKM7D.jpg)

イベント宣伝


# Page. 33

![Page Image](https://bcdn.docswell.com/page/LJ3WDDZ2J5.jpg)



# Page. 34

![Page Image](https://bcdn.docswell.com/page/8JDKPPR6EG.jpg)

おまけ


# Page. 35

![Page Image](https://bcdn.docswell.com/page/VEPKNNMZ78.jpg)

それでもAmplify+Next.jsを使いたいあなた
に
Next.jsアプリケーションをどう構築するか
● On-Demand ISRがない→時間ベースでのキャッシュ更新しかできない
●
●
●
Streamingがない→App Router/Cache Componentsの機能の⼤部分が意図した挙動を
しない
とはいえ、今後対応される可能性はあるのでそこを⾒越すべき...
すべきこと...
○
○
Container/Presentationalパターンの導⼊→Cache Components/App Routerでも有効な⼿法
https://zenn.dev/akfm/books/nextjs-basic-principle/viewer/part_2_container_presentational_pattern
SWRやTanStack QueryとSuspense（クライアントサイド）を利⽤して段階的なUI提供は可能
■
擬似的に動的な箇所と静的な範囲を整理できる→Cachedに将来的にしたい箇所とStaticな箇所を分けてお
ける


