AWS Amplify を利用したブログのデプロイ手順
Next.js で作成したブログを AWS Amplify を使ってデプロイする方法を記載します。
この記事では、特に カスタムドメイン設定 や、デプロイ時に発生しやすいエラーとその対処法についても共有しますので、少しでもお役に立てたら幸いです。
前提条件
- AWS アカウントを作成済み
- Route 53 を使用してドメインを管理している、または外部プロバイダーのドメインを AWS に移行済み
- GitHub リポジトリにブログのソースコードがアップロード済み
手順
1. Amplify アプリケーションを作成
- AWS コンソールで Amplify にアクセス
- 「アプリをホストする」を選択
- ソースコード管理(例: GitHub)と連携し、リポジトリを選択
- ブランチを指定し、「保存して続行」をクリック
2. 環境の構築とデプロイ
Amplify が自動的に以下の手順を実行します。
- ビルド設定の生成(例: Next.js 用)
- バックエンドリソース(必要に応じて)の作成
- アプリケーションのビルドとホスティング
注意: ビルドエラーが発生する場合、環境に合わせて
amplify.yml
を修正する必要があります。
ビルド設定の例 (amplify.yml
)
version: 1
frontend:
phases:
preBuild:
commands:
- yarn install
build:
commands:
- yarn build
artifacts:
baseDirectory: out
files:
- '**/*'
cache:
paths:
- node_modules/**/*
3. カスタムドメインを設定
- Amplify 管理画面で「ドメインの管理」を選択
- 「ドメインを接続する」をクリックし、使用するカスタムドメインを入力
- Route 53 を選択している場合、自動的に DNS レコードが作成されます
- 外部プロバイダーの場合は、提供された DNS レコード(CNAME など)を手動で設定が必要です
実際に起きた問題
1. ドメインのアクティベーションが完了しない
原因:
DNS レコードが正しく設定されていない、または伝播が完了していない
対処法:
- Route 53 を使用している場合は、自動生成されたレコードが正しいか確認する
- 外部プロバイダーの場合は、Amplify で提供される CNAME レコードを正確に追加する ※なお、DNS の伝播には最大 48 時間かかることがあるため注意
2. ビルドエラーが発生する
原因:
ビルド設定が適切でない、またはライブラリのバージョン不一致
対処法:
- amplify.yml ファイルを確認し、Next.js 用に適切な設定を行う
- Node.js のバージョンが Amplify のデフォルト(14.x)と一致しているか確認する
- 必要に応じて、package.json の設定を見直す
3. 「サブドメインの追加を要求される」エラー
原因:
Amplify が所有権確認用の CNAME レコードを要求している
対処法:
- Amplify の指示に従い、CNAME レコードを Route 53 に手動で追加
- 所有権確認が完了すると、このエラーは解消します