Amazon API Gateway API にデフォルトのベース URL ではなく、カスタムドメイン名を使用したいと考えています。
簡単な説明
API Gateway API 用に作成できるカスタムドメイン名には、次の 2 種類があります: リージョナルまたは (REST API のみ) エッジ最適化。
注: API Gateway は、プライベート API でのカスタムドメイン名をサポートします。
API Gateway API にカスタムドメイン名を設定するには、次の手順を実行します。
カスタムドメインを正常に構成するには、カスタムドメイン名の種類ごとの違いを把握する必要があります。リージョナルカスタムドメイン名と、エッジ最適化カスタムドメイン名の主要な相違点を次に示します。
- ターゲット側のエンドポイントでは、リージョナルカスタムドメイン名はリージョナル API エンドポイントを使用します。エッジ最適化カスタムドメイン名は、Amazon CloudFront ディストリビューションを使用します。
- SSL/TLS 証明書では、リージョナルカスタムドメイン名は API と同じ AWS リージョン内の SSL/TLS 証明書を使用する必要があります。エッジ最適化カスタムドメイン名は、次のリージョン内の証明書を使用する必要があります。 米国東部 (バージニア北部) (us-east-1)
- カスタムドメイン名では、異なる AWS リージョン間でリージョナルカスタムドメイン名を共有できます。エッジ最適化カスタムドメイン名は、一意です。カスタムドメイン名を、複数の CloudFront ディストリビューションに関連付けることはできません。
- ドメイン名では、WebSocket API のリージョナルカスタムドメイン名を REST API または HTTP API にマッピングすることはできません。ただし、リージョナルカスタムドメイン名を REST API および HTTP API に関連付けることができます。REST API では、エッジ最適化カスタムドメイン名、リージョナルカスタムドメイン名の両方に対し、エッジ最適化 API エンドポイント、リージョナル API エンドポイント、またはその両方のマッピングを設定できます。WebSocket API と HTTP API でサポートされている TLS バージョンは、TLS 1.2 のみです。
解決策
SSL/TLS 証明書をリクエストするか、インポートする
API のカスタムドメイン名を作成する前に、次のいずれかの手順を実行する必要があります。
- AWS Certificate Manager (ACM) から SSL/TLS 証明書をリクエストします。
- SSL/TLS 証明書を ACM にインポートします。
注: 詳細については、「AWS Certificate Manager で証明書を準備する」を参照してください。
証明書をリクエストまたはインポートするには、次の要件を満たす必要があります。
- ドメイン検証チェックに合格するには、証明書には代替ドメイン名としてカスタムドメイン名が含まれている必要があります。
注: エッジ最適化カスタムドメイン名での、CloudFront ディストリビューションの検証チェックに関する詳細は、「Amazon CloudFront で継続的にドメインのセキュリティを強化する」を参照してください。リージョナルカスタムドメイン名にも、同様の検証チェックが行われます。
- リージョナルカスタムドメイン名では、ACM 証明書を API と同じリージョンに配置する必要があります。
REST API、HTTP API、または WebSocket API のカスタムドメイン名を作成する
REST API では、「API Gateway のパブリック REST API 用のカスタムドメイン名」の手順を実行します。
HTTP API では、「API Gateway の HTTP API 用のカスタムドメイン名」の手順を実行します。
WebSocket API では、「API の WebSocket API 用のカスタムドメイン名」の手順を実行します。
API Gateway API にトラフィックをルーティングする
トラフィックをカスタムドメインにルーティングするには、Amazon Route 53 を使用します。
API Gateway API にトラフィックをルーティングするには、「Route 53 がトラフィックを API Gateway エンドポイントにルーティングするよう設定する」の手順に従ってください。
Route 53 の構成時には、パブリックホストゾーンまたはプライベートホストゾーンを作成する必要があります。インターネット向けアプリケーションにユーザーに公開したいリソースが含まれる場合は、パブリックホストゾーンを選択します。詳細については、「ホストゾーンの操作」を参照してください。
Route 53 は、ドメインに関連するトラフィックのルーティング先を判断するために、レコードを使用します。エイリアスレコードにより、AWS リソース に対する DNS クエリが容易になります。一方、CNAME (非エイリアス) レコードは、DNS クエリを AWS リソースの外部にリダイレクトできます。詳細については、「エイリアスレコードと非エイリアスレコードの選択」を参照してください。
構成をテストする
構成をテストするには、新しいカスタムドメイン名を使用して API を呼び出します。
- カスタムドメイン名の作成時に指定したベースパスマッピングを使用して、そのドメイン名に curl コマンドを実行します。
**注:**curl の詳細については、curl プロジェクトのウェブサイトを参照してください。
- カスタムドメイン名への応答が、API ステージ URL を呼び出したときに受け取る応答と同じであることを確認します。
関連情報
API Gateway でカスタムドメイン名を別の API エンドポイントタイプに移行する
AWS Certificate Manager でパブリック証明書をリクエストする