翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Next.js SSRアプリケーションを Amplify にデプロイする
デフォルトでは、Amplify は Next.js 12、13、14 をサポートする Amplify Hosting のコンピューティングサービスを使用して新しいSSRアプリケーションをデプロイします。Amplify Hosting コンピューティングは、SSRアプリケーションのデプロイに必要なリソースを完全に管理します。SSR 2022 年 11 月 17 日以前にデプロイした Amplify アカウントの アプリケーションは、Classic (Next.js 11 のみ) SSRプロバイダーを使用しています。
Classic (Next.js 11 のみ) を使用して Amplify Hosting コンピューティングSSRプロバイダーSSRにアプリケーションを移行することを強くお勧めします。Amplify は自動移行を行いません。更新を完了するには、アプリを手動で移行してから新しいビルドを開始する必要があります。手順については、Next.js 11 SSRアプリケーションを Amplify Hosting コンピューティングに移行する を参照してください。
新しい Next.js SSRアプリをデプロイするには、次の手順を使用します。
Amplify Hosting コンピューティングSSRプロバイダーを使用してSSRアプリケーションを Amplify にデプロイするには
-
にサインイン AWS Management Console し、Amplify コンソール
を開きます。 -
すべてのアプリページで、新しいアプリの作成 を選択します。
-
Amplify で構築を開始するページで、Git リポジトリプロバイダーを選択し、次へ を選択します。
-
[リポジトリブランチを追加] ページで、次の操作を行います。
-
「最近更新されたリポジトリ」リストで、接続するリポジトリの名前を選択します。
-
ブランチリストで、接続するリポジトリブランチの名前を選択します。
-
[Next (次へ)] を選択します。
-
-
アプリには、Amplify がユーザーに代わって他のIAMサービスを呼び出すときに引き受けるサービスロールが必要です。Amplify ホスティングコンピューティングにサービスロールを自動的に作成させることも、作成したロールを指定することもできます。
-
Amplify がロールを自動的に作成してアプリにアタッチできるようにするには:
-
[新しいサービスロールの作成と使用] を選択します。
-
-
以前に作成したサービスロールをアタッチするには:
-
既存のサービスロールを使用する を選択します。
-
リストから使用するロールを選択します。
-
-
-
[Next (次へ)] を選択します。
-
[レビュー]ページで、[保存してデプロイ] を選択します。
パッケージ.json ファイルの設定
Next.js アプリケーションをデプロイすると、Amplify はpackage.json
ファイル内のアプリケーションのビルドスクリプトを検査して、アプリケーションタイプを決定します。
Next.js アプリケーションのビルドスクリプトの例を次に示します。ビルドスクリプト"next build"
は、アプリケーションが SSGページと SSRページの両方をサポートしていることを示します。このビルドスクリプトは、Next.js 14 以降のSSGアプリケーションにのみ使用されます。
"scripts": { "dev": "next dev", "build": "next build", "start": "next start" },
Next.js 13 以前のSSGアプリケーションのビルドスクリプトの例を次に示します。ビルドスクリプト"next build && next export"
は、アプリケーションがSSGページのみをサポートしていることを示します。
"scripts": { "dev": "next dev", "build": "next build && next export", "start": "next start" },
Next.js SSRアプリケーションの Amplify ビルド設定
アプリのpackage.json
ファイルを検査すると、Amplify はアプリのビルド設定をチェックします。ビルド設定は、Amplify コンソールまたはリポジトリのルートにあるamplify.yml
ファイルに保存できます。詳細については、「アプリのビルド設定の構成」を参照してください。
Amplify が Next.js SSRアプリケーションをデプロイしていることを検出し、amplify.yml
ファイルが存在しない場合、アプリケーションの buildspec を生成し、 baseDirectory
に設定します.next
。ファイルが存在するアプリをデプロイする場合、amplify.yml
ファイル内のビルド設定はコンソールのビルド設定よりも優先されます。そのため、ファイル内のbaseDirectory
は手動で.next
に設定する必要があります。
以下は、baseDirectory
が.next
に設定されているアプリのビルド設定の例です。これは、ビルドアーティファクトが SSG と SSRページをサポートする Next.js アプリ用であることを示します。
version: 1 frontend: phases: preBuild: commands: - npm ci build: commands: - npm run build artifacts: baseDirectory: .next files: - '**/*' cache: paths: - node_modules/**/*
Next.js 13 以前のSSGアプリケーションのビルド設定を増幅する
Amplify が Next.js 13 以前のSSGアプリケーションをデプロイしていることを検出すると、アプリケーションのビルド仕様が生成され、 baseDirectory
が に設定されますout
。ファイルが存在するアプリをデプロイする場合は、amplify.yml
ファイル内でbaseDirectory
を手動でout
に設定する必要があります。out
ディレクトリは、エクスポートされた静的アセットを保存するために Next.js が作成するデフォルトのフォルダです。アプリのビルド仕様設定を行うときは、アプリの設定に合わせてbaseDirectory
フォルダの名前を変更します。
以下は、ビルドアーティファクトがSSGページのみをサポートする Next.js 13 以前のアプリケーション用であることを示すout
ように baseDirectory
が に設定されているアプリケーションのビルド設定の例です。
version: 1 frontend: phases: preBuild: commands: - npm ci build: commands: - npm run build artifacts: baseDirectory: out files: - '**/*' cache: paths: - node_modules/**/*
Next.js 14 SSGアプリケーションの Amplify ビルド設定
Next.js バージョン 14 では、静的エクスポートを有効にするためにnext export
、 コマンドは非推奨になり、 next.config.js
ファイルoutput: 'export'
で に置き換えられました。Next.js 14 SSG専用アプリケーションをコンソールにデプロイする場合、Amplify はアプリケーションの buildspec を生成し、 baseDirectory
を に設定します.next
。ファイルが存在するアプリをデプロイする場合は、amplify.yml
ファイル内でbaseDirectory
を手動で.next
に設定する必要があります。これは、Amplify が SSG と SSRページの両方をサポートする Next.js WEB_COMPUTE
アプリケーションに使用するのと同じbaseDirectory
設定です。
以下は、 が にbaseDirectory
設定された Next.js 14 SSG専用アプリケーションのビルド設定の例です.next
。
version: 1 frontend: phases: preBuild: commands: - npm ci build: commands: - npm run build artifacts: baseDirectory: .next files: - '**/*' cache: paths: - node_modules/**/*