API Gateway での REST API のカスタムドメイン名
カスタムドメイン名は、API ユーザーに提供できる、よりシンプルで直感的な URL です。
API のデプロイ後、お客様 (およびその顧客) は、以下の形式のデフォルトのベース URL を使用して API を呼び出すことができます。
https://
api-id
.execute-api.region
.amazonaws.com/stage
api-id
は API Gateway が生成します。region
は AWS リージョンであり、stage
は API のデプロイ時にユーザーが指定します。
URL のホスト名の部分 (
) は、API エンドポイントを参照します。デフォルトの API エンドポイント名は、ランダムに生成され、再呼び出しが難しく、ユーザーフレンドリではありません。api-id
.execute-api.region
.amazonaws.com
カスタムドメイン名を使用すると、API のホスト名を設定し、代替パスを API にマッピングするための基本パス (myservice
など) を選択できます。たとえば、API のよりわかりやすい ベース URL は以下のようになります。
https://api.example.com/myservice
考慮事項
以下の考慮事項は、カスタムドメイン名の使用に影響する可能性があります。
-
カスタムドメイン名はプライベート API ではサポートされていません。
-
API のデフォルトのエンドポイントを無効にすることができます。クライアントは引き続きデフォルトのエンドポイントに接続できますが、
403 Forbidden
ステータスコードを受け取ります。 -
リージョン別カスタムドメイン名は、REST API や HTTP API に関連付けることができます。API Gateway バージョン 2 の API を使用すると、REST API のリージョン別カスタムドメイン名を作成および管理できます。
-
カスタムドメイン名は、すべての AWS アカウントにおいてリージョン内で一意である必要があります。
-
エッジ最適化のエンドポイントとリージョン別エンドポイントの間で、カスタムドメイン名を移行できます。
-
API エンドポイントにマッピングするために DNS プロバイダーのリソースレコードを作成または更新する必要があります。このマッピングを行わないと、カスタムドメイン名宛ての API リクエストが API Gateway に届きません。
-
ワイルドカード証明書を使用すると、デフォルトのクォータを超えることなく、ほぼ無数のドメイン名をサポートできます。詳細については、「ワイルドカードカスタムドメイン名」を参照してください。
-
カスタムドメイン名のセキュリティポリシーを選択できます。詳細については、「API Gateway で REST API カスタムドメインのセキュリティポリシーを選択する」を参照してください。
-
複数のレベルで API マッピングを設定するには、リージョン別カスタムドメイン名と TLS 1.2 セキュリティポリシーを使用する必要があります。
前提条件
カスタムドメイン名を作成するための前提条件は、以下のとおりです。
ドメイン名を登録する
API のカスタムドメイン名を設定するには、登録されたインターネットドメイン名が必要です。インターネットドメインを登録するには、Amazon Route 53 を使用するか、任意のサードパーティのドメインレジストラを使用できます。カスタムドメイン名は、登録したインターネットドメインのサブドメイン名またはルートドメイン名 ("Zone Apex" とも呼ばれます) にすることができます。
ドメイン名は RFC 1035
カスタムドメイン名の証明書を指定する
API のカスタムドメイン名を設定する前に、ACM で SSL/TLS 証明書を準備する必要があります。カスタムドメイン名を作成する AWS リージョンで ACM を使用できない場合は、そのリージョンの API Gateway に証明書をインポートする必要があります。
SSL/TLS 証明書をインポートするには、カスタムドメイン名の PEM 形式の SSL/TLS 認証本文、そのプライベートキー、およびカスタムドメイン名の証明書チェーンを提供する必要があります。
ACM に保存された各証明書は ARN によって識別されます。ACM 発行の証明書により、プライベートキーなど証明書の機密の詳細が漏れる心配はありません。AWS で管理された証明書をドメイン名で使用するには、その ARN を単に参照します。
アプリケーションで証明書ピンニング (SSL ピンニングとも呼ばれる) を使用して ACM 証明書を固定すると、AWS が証明書を更新した後にアプリケーションがドメインに接続できないことがあります。詳細については、「AWS Certificate Manager ユーザーガイド」の「証明書のピンニングの問題」を参照してください。
ワイルドカードカスタムドメイン名
ワイルドカードカスタムドメイン名を使用すると、デフォルトのクォータを超えずにほぼ無数のドメイン名をサポートできます。たとえば、各お客様に個別のドメイン名を付けることができます
。customername
.api.example.com
ワイルドカードカスタムドメイン名を制作するためには、ルートドメインの可能なすべてのサブドメインを表すカスタムドメインの最初のサブドメインとして、ワイルドカード (*
) を指定します。
たとえば、ワイルドカードカスタムドメイン名として *.example.com
を使用すると、a.example.com
、b.example.com
、c.example.com
などのサブドメインが生成され、これらはすべて同じドメインにルーティングされます。
ワイルドカードカスタムドメイン名は、API Gateway の標準のカスタムドメイン名とは異なる設定をサポートします。たとえば、1 つの AWS アカウントで、*.example.com
と a.example.com
を異なる動作に設定できます。
コンテキスト変数 $context.domainName
と $context.domainPrefix
コンテキスト変数を使用して、クライアントが API を呼び出すために使用したドメイン名を判断できます。コンテキスト変数の詳細については、「API Gateway マッピングテンプレートとアクセスのログ記録の変数リファレンス」を参照してください。
ワイルドカードカスタムドメイン名を作成するには、DNS または E メール検証方法を使用して検証された証明書を ACM から発行してもらう必要があります。
注記
別の AWS アカウントで作成済みのカスタムドメイン名と競合するようなワイルドカードカスタムドメイン名を作成することはできません。たとえば、アカウント A で a.example.com
が作成済みである場合、アカウント B はワイルドカードカスタムドメイン名として *.example.com
を作成できません。
アカウント A とアカウント B の所有者が同じである場合は、AWS サポートセンター
カスタムドメイン名に関する次のステップ
カスタムドメイン名に関する次のステップは、以下のとおりです。
次のステップ
-
SSL/TLS 証明書を設定する方法については、「AWS Certificate Manager で証明書を準備する」を参照してください。
-
リージョン別カスタムドメイン名の作成方法については、「API Gateway でリージョン別カスタムドメイン名を設定する」を参照してください。
-
エッジ最適化カスタムドメイン名を作成する方法については、「API Gateway でエッジ最適化カスタムドメイン名を設定する」を参照してください。
-
リージョン別カスタムドメイン名とエッジ最適化カスタムドメイン名の間での移行方法については、「API Gateway でカスタムドメイン名を別の API エンドポイントタイプに移行する」を参照してください。
-
API ステージをカスタムドメイン名に接続する方法については、「API ステージを REST API のカスタムドメイン名にマッピングする」を参照してください。
-
カスタムドメイン名のセキュリティポリシーを選択する方法については、「API Gateway で REST API カスタムドメインのセキュリティポリシーを選択する」を参照してください。
-
カスタムドメイン名のデフォルトエンドポイントを無効にする方法については、「REST API のデフォルトのエンドポイントを無効にする」を参照してください。
-
Route 53 のヘルスチェックを使用して API Gateway API からの DNS フェイルオーバーを制御する方法については、「API Gateway API の DNS フェイルオーバーのカスタムヘルスチェックの設定」を参照してください。
カスタムドメイン名を初めて作成する場合は、「AWS Certificate Manager で証明書を準備する」から始めて、証明書を指定し、次に「API Gateway でリージョン別カスタムドメイン名を設定する」に従ってリージョン別カスタムドメイン名を作成することをお勧めします。