WebSocket API のカスタムドメイン名の設定 - Amazon API Gateway

WebSocket API のカスタムドメイン名の設定

カスタムドメイン名は、API ユーザーに提供できる、よりシンプルで直感的な URL です。

API のデプロイ後、お客様 (およびその顧客) は、以下の形式のデフォルトのベース URL を使用して API を呼び出すことができます。

https://api-id.execute-api.region.amazonaws.com/stage

api-id は API Gateway によって生成され、region (AWS リージョン) は API の作成時に、stage は API のデプロイ時に、ユーザーが指定します。

URL のホスト名の部分 (つまり api-id.execute-api.region.amazonaws.com) は API エンドポイントを参照します。デフォルトの API エンドポイントは再呼び出しが難しく、ユーザーフレンドリではありません。

カスタムドメイン名を使用すると、API のホスト名を設定し、代替パスを API にマッピングするための基本パス (myservice など) を選択できます。たとえば、API のよりわかりやすい ベース URL は以下のようになります。

https://api.example.com/myservice
注記

WebSocket API のカスタムドメイン名を REST API または HTTP API にマッピングすることはできません。

WebSocket API では、リージョンのカスタムドメイン名がサポートされます。

WebSocket API の場合、サポートされる TLS バージョンは TLS 1.2 のみです。

ドメイン名を登録する

API のカスタムドメイン名を設定するには、登録されたインターネットドメイン名が必要です。ドメイン名は RFC 1035 仕様に準拠している必要があり、ラベルあたり最大 63オクテット、合計 255 オクテットを含めることができます。必要に応じて、Amazon Route 53 を使用するか、任意のサードパーティーのドメインレジストラを使用して、インターネットドメインを登録できます。API のカスタムドメイン名は、登録されたインターネットドメインのサブドメイン名またはルートドメイン名 (「Zone Apex」など) にすることができます。

カスタムドメイン名が API Gateway で作成されたら、API エンドポイントにマッピングするために DNS プロバイダーのリソースレコードを作成または更新する必要があります。このマッピングを行わないと、カスタムドメイン名宛ての API リクエストが API Gateway に届きません。

リージョン別カスタムドメイン名

特定のリージョンの API のカスタムドメイン名を作成すると、API Gateway は API のリージョン別ドメイン名を作成します。カスタムドメイン名をリージョン別ドメイン名にマッピングするように、DNS レコードを設定する必要があります。カスタムドメイン名の証明書を提供する必要もあります。

ワイルドカードカスタムドメイン名

ワイルドカードカスタムドメイン名を使用すると、デフォルトのクォータを超えずにほぼ無数のドメイン名をサポートできます。たとえば、各お客様に個別のドメイン名を付けることができます customername.api.example.com

ワイルドカードカスタムドメイン名を制作するためには、ルートドメインの可能なすべてのサブドメインを表すカスタムドメインの最初のサブドメインとして、ワイルドカード (*) を指定します。

たとえば、ワイルドカードカスタムドメイン名として *.example.com を使用すると、a.example.comb.example.comc.example.com などのサブドメインが生成され、これらはすべて同じドメインにルーティングされます。

ワイルドカードカスタムドメイン名は、API Gateway の標準のカスタムドメイン名とは異なる設定をサポートします。たとえば、1 つの AWS アカウントで、*.example.coma.example.com を異なる動作に設定できます。

コンテキスト変数 $context.domainName$context.domainPrefix コンテキスト変数を使用して、クライアントが API を呼び出すために使用したドメイン名を判断できます。コンテキスト変数の詳細については、「API Gateway マッピングテンプレートとアクセスのログ記録の変数リファレンス」を参照してください。

ワイルドカードカスタムドメイン名を作成するには、DNS または E メール検証方法を使用して検証された証明書を ACM から発行してもらう必要があります。

注記

別の AWS アカウントで作成済みのカスタムドメイン名と競合するようなワイルドカードカスタムドメイン名を作成することはできません。たとえば、アカウント A で a.example.com が作成済みである場合、アカウント B はワイルドカードカスタムドメイン名として *.example.com を作成できません。

アカウント A とアカウント B の所有者が同じである場合は、AWS サポートセンターに連絡して例外をリクエストできます。

カスタムドメイン名の証明書

重要

カスタムドメイン名の証明書を指定します。アプリケーションで証明書ピンニング (SSL ピンニングとも呼ばれる) を使用して ACM 証明書を固定すると、AWS が証明書を更新した後にアプリケーションがドメインに接続できないことがあります。詳細については、「AWS Certificate Manager ユーザーガイド」の「証明書のピンニングの問題」を参照してください。

ACM がサポートされているリージョンでカスタムドメイン名の証明書を提供するには、ACM に証明書をリクエストする必要があります。ACM がサポートされていないリージョンで、リージョン別カスタムドメイン名の証明書を提供するには、そのリージョン内の API Gateway に証明書をインポートする必要があります。

SSL/TLS 証明書をインポートするには、カスタムドメイン名の PEM 形式の SSL/TLS 認証本文、そのプライベートキー、およびカスタムドメイン名の証明書チェーンを提供する必要があります。ACM に保存された各証明書は ARN によって識別されます。AWS で管理された証明書をドメイン名で使用するには、その ARN を単に参照します。

ACM を使用すると、API のカスタムドメイン名を簡単に設定して使用できます。特定のドメイン名の証明書を作成 (または証明書をインポート) し、ACM が提供する証明書の ARN を使用して API Gateway でドメイン名を設定します。次に、カスタムドメイン名のベースパスを、デプロイされた API のステージにマッピングします。ACM 発行の証明書により、プライベートキーなど証明書の機密の詳細が漏れる心配はありません。

カスタムドメイン名の設定

カスタムドメイン名の設定の詳細については、「 での証明書の準備AWS Certificate Manager」および「API Gateway でのリージョン別カスタムドメイン名の設定」を参照してください。