カスタムドメインのトラブルシューティング - AWS Amplify ホスティング

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

カスタムドメインのトラブルシューティング

Amplify コンソールのアプリケーションにカスタムドメインを接続する際に問題が発生した場合は、このセクションのトピックを参考にしてください。

ここで問題の解決策が見つからない場合は、 サポートにお問い合わせください。詳細については「AWS サポート ユーザーガイド」の「サポートケースの作成」を参照してください。

CNAME が解決されることを確認する必要がある

  1. サードパーティのドメインプロバイダーで DNS レコードを更新したら、dig などのツールや https://www.whatsmydns.net/ などの無料ウェブサイトを使用して、CNAME レコードが正しく解決されているかどうかを確認できます。次のスクリーンショットは、whatsmydns.net を使用して www.example.com というドメインの CNAME レコードを確認する方法を示しています。

    whatsmydns.net のアプリケーションでは、確認するウェブサイトの名前を入力します。
  2. [検索] を選択すると、whatsmydns.net に CNAME の検索結果が表示されます。次のスクリーンショットは、CNAME が cloudfront.net URL に正しく解決されることを確認する結果のリストの例です。

    解決 CNAME の結果を示す whatsmydns.net アプリケーション。

サードパーティーでホストされているドメインが [Pending Verification] (検証待ち) 状態のままになっている

  1. カスタムドメインが「検証待ち」の状態のままになっている場合は、CNAME レコードが解決中であることを確認してください。このタスクの実行方法については、前述のトラブルシューティングのトピック「CNAME 解決を確認する方法」を参照してください。

  2. CNAME レコードが解決されない場合は、ドメインプロバイダーの DNS 設定に CNAME エントリが存在することを確認してください。

    重要

    カスタムドメインを作成したらすぐに CNAME レコードを更新することが重要です。アプリが Amplify コンソールで作成されると、CNAME レコードが数分ごとにチェックされ、解決したかどうかを判別します。1 時間経っても解決しない場合は、数時間ごとにチェックが行われるため、ドメインを使用する準備ができるまでに時間がかかる可能性があります。アプリを作成してから数時間後に CNAME レコードを追加または更新した場合、これがアプリが「検証保留中」の状態で停止する最も可能性の高い原因です。

  3. CNAME レコードが存在することが確認できた場合は、DNS プロバイダーに問題がある可能性があります。DNS 検証 CNAME が解決しない理由を診断するには、DNS プロバイダーに連絡するか、DNS を Route 53 に移行することができます。詳細については、「Amazon Route 53 を既存ドメインの DNS サービスにする」を参照してください。

Amazon Route 53 でホストされているドメインが [Pending Verification] (検証待ち) 状態のままになっている

ドメインを Amazon Route 53 に移行した場合、ドメインのネームサーバーが、アプリの作成時に Amplify によって発行されたものとは異なる可能性があります。エラーの原因を診断するには、次の手順を実行します。

  1. Amazon Route 53 コンソールにサインインします

  2. ナビゲーションペインで、[ホストゾーン] をクリックし、検証する必要のあるドメインの名前を選択します。

  3. ホストゾーンの詳細」セクションのネームサーバーの値を記録します。次のステップを完了するには、これらの値が必要です。次の Route 53 コンソールのスクリーンショットでは、右下隅にネームサーバー値の場所が表示されています。

    Route 53 コンソールのホストゾーンの詳細セクションには、ネームサーバーの値が表示されます。
  4. ナビゲーションペインで [Registered Domains] をクリックします。[登録済みドメイン] セクションに表示されるネームサーバーが、前のステップで [ホストゾーンの詳細] セクションに記録したネームサーバーの値と一致することを確認します。一致しない場合は、ネームサーバーの値をホストゾーンの値と一致するように編集します。次の Route 53 コンソールのスクリーンショットでは、右側にネームサーバー値の場所が表示されています。

    Route 53 コンソールの登録済みドメインセクションには、ネームサーバーの値が表示されます。
  5. これでも問題が解決しない場合は、 サポートにお問い合わせください。詳細については「AWS サポート ユーザーガイド」の「サポートケースの作成」を参照してください。

マルチレベルサブドメインを持つアプリが検証保留中状態でスタックしている

サードパーティーの DNS プロバイダーに接続するときに、マルチレベルサブドメインを持つアプリが検証保留中状態でスタックする場合、DNS レコードの形式に問題がある可能性があります。一部の DNS プロバイダーは、第 2 レベルドメイン (SLD) と最上位ドメイン (TLD) のドメインサフィックスをレコードに自動的に追加します。SLD と TLD を含む形式でドメインを指定する場合、ドメイン検証の問題が発生する可能性があります。

ドメインを接続するときは、まず、Amplify が提供する完全な形式、例えば を使用してドメイン名を指定してみてください_hash.docs.backend.example.com。SSL 設定が検証保留中状態でスタックする場合は、レコードから TLD と SLD を削除してみてください。例えば、完全な形式が の場合_hash.docs.backend.example.com、 を指定します_hash.docs.backend。レコードが伝播されるまで 15~30 分待ちます。次に、MX Toolbox などのツールを使用して、検証プロセスが機能しているかどうかを確認します。

DNS プロバイダーが完全修飾ドメイン名の A レコードをサポートしていない

一部の DNS プロバイダーは、 などの完全修飾ドメイン名 (FQDN) の A レコードをサポートしていませんexample.cloudfront.net。例えば、Cloudflare A recordsはIPv4アドレスのみを書き込み、 をサポートしていませんFQDNs。この制限を回避するには、DNS設定A recordsで ではなく CNAMEレコードを使用することをお勧めします。

例として、次のDNS設定では を使用しますA record。

A | @ | ***.cloudfront.net CNAME | www | ***.cloudfront.net

CNAME レコードのみを使用するように次のDNS設定を変更します。

CNAME | @ | ***.cloudfront.net CNAME | www | ***.cloudfront.net

この回避策により、Cloudflare のシステムで の IPv4-onlyの制限を回避しながら、apex ドメイン (@ レコード) を A records CloudFront などのサービスに適切にポイントできます。

「CNAMEAlreadyExistsException」エラーが発生した

CNAMEAlreadyExistsException エラーが発生した場合、接続しようとしたホスト名のいずれか (サブドメイン、または apex ドメインなど) が別の Amazon CloudFront ディストリビューションに既にデプロイされていることを意味します。エラーの原因は、現在のホスティングプロバイダーと DNS プロバイダーによって異なります。

example.com や CNAME などのエイリアスは、一度に 1 つの CloudFront ディストリビューションにのみ関連付けsub.example.comることができます。CNAMEAlreadyExistsException は、ドメインが別の CloudFront ディストリビューションに既に関連付けられているか AWS アカウント、同じアカウント内または別のアカウントにある可能性があることを示します。Amplify ホスティングによって作成された新しいディストリビューションが機能する前に、ドメインと以前の CloudFront ディストリビューションとの関連付けを解除する必要があります。お客様またはお客様の組織が複数の を所有している場合は AWS アカウント、複数のアカウントの確認が必要になる場合があります。

CNAMEAlreadyExistsException エラーの原因を診断するには、次の手順を実行します。

  1. Amazon CloudFront コンソールにサインインし、このドメインが別のディストリビューションにデプロイされていないことを確認します。CloudFront ディストリビューションには、一度に 1 つの CNAME レコードのみをアタッチすることができます。

  2. 以前に CloudFront ディストリビューションにドメインをデプロイしていた場合は、削除する必要があります。

    1. 左のナビゲーションペインで、[ディストリビューション]を選択します。

    2. 編集するディストリビューションの名前を選択します。

    3. [General] (全般) タブを選択します。設定 セクションで、編集 を選択します。

    4. 代替ドメイン名 (CNAME) からドメイン名を削除します。次に、[変更を保存する]を選択します。

  3. このドメインを使用している他の CloudFront ディストリビューションが現在 AWS アカウント または他の に存在していないことを確認します AWS アカウント。現在実行中のサービスを中断しない場合は、ホストゾーンを削除して再作成してみてください。

  4. このドメインが、所有する別の Amplify アプリに接続されているかどうか確認します。接続されている場合は、ホスト名のいずれかを再利用していないことを確認します。別のアプリwww.example.comに を使用している場合、現在接続しているアプリwww.example.comで を使用することはできません。などの他のサブドメインを使用できますblog.example.com

  5. このドメインが別のアプリに正常に接続され、過去 1 時間以内に削除された場合は、1 時間以上経過してからもう一度試してください。6 時間後にこの例外が引き続き表示される場合は、 にお問い合わせください サポート。詳細については「AWS サポート ユーザーガイド」の「サポートケースの作成」を参照してください。

  6. Route 53 を介してドメインを管理する場合は、古い CloudFront ディストリビューションを指すホストゾーンCNAMEまたはALIASレコードを必ずクリーンアップしてください。

  7. 前のステップを完了したら、Amplify ホスティングからカスタムドメインを削除し、ワークフローから始めて、Amplify コンソールでカスタムドメインを接続します。

「追加の検証が必要です」というエラーが表示されます。

追加の検証が必要なエラーが発生した場合、 AWS Certificate Manager (ACM) はこの証明書リクエストを処理するために追加情報を必要とすることを意味します。この状況は不正保護対策として生じることがあります。たとえば、ドメインが「Alexa の上位 1,000 のウェブサイト」内にランク付けされている場合です。要求された情報を提供するには、サポートセンターから サポートにお問い合わせください。サポートプランを契約していない場合は、ACM フォーラムに新しいスレッドを投稿してください。

注記

末尾が amazonaws.com、cloudfront.net、または elasticbeanstalk.com などの Amazon が所有するドメイン名に証明書をリクエストすることはできません。

CloudFront URL に 404 エラーが出る

トラフィックを処理するために、Amplify ホスティングは CNAME レコードを介して CloudFront URL を指します。アプリをカスタムドメインに接続する過程で、Amplify コンソールにはアプリの CloudFront URL が表示されます。ただし、この CloudFront URL を使用してアプリケーションに直接アクセスすることはできません。404 エラーが返される。アプリケーションは、Amplify アプリの URL (例: https://main.d5udybEXAMPLE.amplifyapp.com) またはカスタムドメイン (例: www.example.com) を使用してのみ解決されます。

Amplify は、デプロイされた正しいブランチにリクエストをルーティングする必要があり、ホスト名を使用してこれを行います。たとえば、アプリのメインラインブランチを指すドメイン www.example.com を設定できるだけでなく、同じアプリの dev ブランチを指すドメイン dev.example.com も設定できます。そのため、Amplify がそれに応じてリクエストをルーティングできるように、設定されているサブドメインに基づいてアプリケーションにアクセスする必要があります。

自分のドメインにアクセスしたときに SSL 証明書または HTTPS エラーが発生する。

サードパーティーの DNS プロバイダーで設定された認証機関認可 (CAA) DNS レコードがある場合、 AWS Certificate Manager (ACM) はカスタムドメイン SSL 証明書の中間証明書を更新または再発行できない場合があります。これを解決するには、Amazon の認証局ドメインの少なくとも 1 つを信頼する CAA レコードを追加する必要があります。次の手順では、実行する必要のあるステップについて説明します。

Amazon 認証局を信頼する CAA レコードを追加するには
  1. Amazon の認証局ドメインの少なくとも 1 つを信頼するように、ドメインプロバイダーに CAA レコードを設定します。CAA レコードの設定について詳しくは、「AWS Certificate Manager ユーザーガイド」の「Certificate Authority Authorization (CAA) の問題」を参照してください。

  2. SSL 証明書を更新するには、次のいずれかの方法を使用します。