Amplify の一般的な問題のトラブルシューティング - AWS Amplify ホスティング

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amplify の一般的な問題のトラブルシューティング

以下の情報は、Amplify ホスティングの一般的な問題のトラブルシューティングに役立ちます。

HTTP 429 ステータスコード (リクエストが多すぎる)

Amplify は、受信リクエストが消費する処理時間とデータ転送に基づいて、ウェブサイトへの 1 秒あたりのリクエスト数 (RPS) を制御します。アプリケーションが HTTP 429 ステータスコードを返した場合、受信リクエストは、アプリケーションに割り当てられた処理時間とデータ転送の時間を超えています。このアプリケーション制限は、Amplify の REQUEST_TOKENS_PER_SECOND サービスクォータによって管理されます。クォータの詳細については、「Amplify ホスティング Service Quotas」を参照してください。

この問題を修正するには、アプリを最適化してリクエスト期間とデータ転送を短縮し、アプリの RPS を増やすことをお勧めします。例えば、同じ 20,000 トークンでは、100 ミリ秒以内に応答する高度に最適化された SSR ページは、レイテンシーが 200 ミリ秒を超えるページと比較しても、より高い RPS をサポートできます。

同様に、1 MB の応答サイズを返すアプリケーションは、250 KB の応答サイズを返すアプリケーションよりも多くのトークンを消費します。

また、特定の応答がキャッシュに保持される時間を最大化するように Cache-Control ヘッダーを設定して、Amazon CloudFront キャッシュを活用することをお勧めします。CloudFront キャッシュから送信されるリクエストは、レート制限にはカウントされません。各 CloudFront ディストリビューションは 1 秒あたり最大 250,000 件のリクエストを処理できるため、キャッシュを使用してアプリケーションを大幅にスケールアップすることができます。CloudFront キャッシュの詳細については、「Amazon CloudFront デベロッパーガイド」の「キャッシュの最適化と可用性」を参照してください。

Amplify コンソールにアプリのビルドステータスと最終更新時間が表示されない

Amplify コンソールですべてのアプリページに移動すると、現在のリージョンのアプリごとにタイルが表示されます。デプロイ済み、アプリの最終更新時間などのビルドステータスが表示されない場合、アプリにはProductionステージブランチが関連付けられていません。

コンソールでアプリケーションを一覧表示するために、Amplify は ListApps API を使用します。Amplify は ProductionBranch.status 属性を使用してビルドステータスを表示し、 ProductionBranch.lastDeployTime 属性を使用して最終更新時間を表示します。この API の詳細については、Amplify ホスティング API ドキュメントProductionBranch を参照してください。

以下の手順に従って、Productionステージをアプリケーションのブランチに関連付けます。

  1. Amplify コンソールにサインインします。

  2. すべてのアプリページで、更新するアプリを選択します。

  3. ナビゲーションペインで、アプリ設定を選択し、次にブランチ設定を選択します。

  4. ブランチ設定セクションで、編集 を選択します。

  5. Production ブランチで、使用するブランチ名を選択します。

  6. [保存] を選択します。

  7. すべてのアプリのページに戻ります。これで、アプリのビルドステータスと最終更新時間が表示されます。

新しいプルリクエストのウェブプレビューが作成されていない

ウェブプレビュー機能を使用すると、プルリクエストからの変更を 統合ブランチにマージする前にプレビューできます。ウェブプレビューは、リポジトリに対して行われたすべてのプルリクエストを、メインサイトが使用する URL とは異なる一意のプレビュー URL にデプロイします。

アプリのウェブプレビューを有効にしても、新しい PRs 用に作成されていない場合は、次のいずれかが問題の原因であるかどうかを調べます。

  1. アプリが最大Branches per appサービスクォータに達したかどうかを確認します。クォータの詳細については、「Amplify ホスティング Service Quotas」を参照してください。

    アプリごとに 50 ブランチのデフォルトのクォータ内に収まるようにするには、アプリで自動ブランチ削除を有効にすることを検討してください。これにより、リポジトリに存在しなくなったブランチをアカウントに蓄積できなくなります。

  2. パブリック GitHub リポジトリを使用していて、Amplify アプリに IAM サービスロールがアタッチされている場合、Amplify はセキュリティ上の理由からプレビューを作成しません。例えば、バックエンドを備えたアプリやWEB_COMPUTEホスティングプラットフォームにデプロイされるアプリには IAM サービスロールが必要です。そのため、これらの種類のアプリのリポジトリが公開されている場合、ウェブプレビューを有効にすることはできません。

    ウェブプレビューをアプリで機能させるには、サービスロールの関連付けを解除するか (アプリにバックエンドがないかWEB_COMPUTE、アプリでない場合)、GitHub リポジトリをプライベートにすることができます。

手動デプロイが Amplify コンソールで保留中のステータスでスタックしている

手動デプロイでは、Git プロバイダーに接続せずに Amplify ホスティングでウェブアプリを発行できます。次の 4 つのデプロイオプションのいずれかを使用できます。

  1. Amplify コンソールでアプリケーションフォルダをドラッグアンドドロップします。

  2. Amplify コンソールで .zip ファイル (サイトのビルドアーティファクトを含む) をドラッグアンドドロップします。

  3. .zip ファイル (サイトのビルドアーティファクトを含む) を Amazon S3 バケットにアップロードし、そのバケットを Amplify コンソールのアプリに接続します。

  4. Amplify コンソールで、.zip ファイル (サイトのビルドアーティファクトを含む) を指すパブリック URL を使用します。

Amplify コンソールで手動デプロイにアプリケーションフォルダを使用する場合、ドラッグアンドドロップ機能の問題を認識しています。これらのデプロイは、次の理由で失敗する可能性があります。

  • 一時的なネットワークの問題が発生します。

  • アップロード中にファイルに対するローカルの変更があります。

  • ブラウザセッションは、大量の静的アセットを同時にアップロードしようとします。

ドラッグアンドドロップアップロードの信頼性の向上に取り組んでいますが、アプリケーションフォルダをドラッグアンドドロップするのではなく、.zip ファイルを使用することをお勧めします。

.zip ファイルを Amazon S3 バケットにアップロードすることを強くお勧めします。これにより、Amplify コンソールからのファイルのアップロードが回避され、手動デプロイの信頼性が向上します。Amplify と Amazon S3 の統合により、このプロセスが簡素化されます。詳細については、「Amazon S3 バケットから Amplify への静的ウェブサイトのデプロイ」を参照してください。

アプリケーションの Node.js バージョンを更新する必要がある

Node.js バージョン 16 および 18 を使用するアプリケーションの Amplify サポートは、2025 年 9 月 15 日に終了します。既にデプロイされているアプリケーションは引き続き実行されます。ただし、この日以降は、Node.js バージョン 20 以降にアップグレードするまで、アプリケーションに更新をデプロイすることはできません。

Amazon Linux 2023 ビルドイメージを使用している場合、Node.js バージョン 20 はデフォルトでサポートされています。2025 年 9 月 15 日以降、AL2023 イメージは自動的に Node.js 22 をサポートし、デフォルトの Node.js バージョンを 18 から 22 に変更します。

Amazon Linux 2 (AL2) は、Node.js バージョン 20 以降を自動的にサポートしていません。現在 AL2 を使用している場合は、AL2023 に切り替えることをお勧めします。ビルドイメージは Amplify コンソールで変更できます。指定した Node.js バージョンをサポートするカスタムビルドイメージを使用することもできます。

アップグレードする前に、新しいブランチでアプリケーションをテストして、正しく機能することを確認することをお勧めします。

アップグレードオプション

Amplify コンソール

Amplify コンソールのライブパッケージ更新機能を使用して、使用する Node.js のバージョンを指定できます。手順については、「ビルドイメージでの特定のパッケージバージョンと依存関係バージョンの使用」を参照してください。

カスタムビルドイメージ

カスタムビルドイメージを使用していて、NVM がイメージにインストールされている場合は、Dockerfile nvm install 20に を追加できます。カスタムビルドイメージの要件と設定手順の詳細については、「」を参照してくださいビルドイメージのカスタマイズ

ビルド設定

preBuild nvm use コマンドセクションに コマンドを追加することで、アプリケーションのamplify.ymlビルド設定で使用する Node.js バージョンを指定できます。アプリケーションのビルド設定を更新する手順については、「」を参照してくださいAmplify アプリケーションのビルド設定の構成

次の例は、ビルド設定をカスタマイズしてデフォルトの Node.js バージョンを Node.js 18 に設定し、 という名前のテストブランチで Node.js バージョン 20 にアップグレードする方法を示していますnode-20

frontend: phases: preBuild: commands: - nvm use 18 - if [ "${AWS_BRANCH}" = "node-20" ]; then nvm use 20; fi
警告

preBuild コマンドは、ライブパッケージの更新後に実行されることに注意してください。nvm use コマンドで指定された Node.js バージョンは、ライブパッケージの更新で設定された Node.js バージョンを上書きします。