API Gateway(HTTP API)でカスタムドメインを設定する方法を教えてください

2023.05.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

API Gateway(HTTP API)でカスタムドメインの設定がうまくいきません。
カスタムドメインを設定する方法を教えてください。

どう対応すればいいの?

HTTP API のカスタムドメインの設定方法は、以下ドキュメントに記載されています。

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

必要な手順は以下のとおりです。

  • カスタムドメインの準備
  • 上記カスタムドメインのACM証明書作成
  • API Gateway でカスタムドメインを作成
  • DNS レコードの設定(カスタムドメインを API Gateway にマッピング)

API Gateway(HTTP API)のカスタムドメインの設定を行ってみた

上記手順のとおり、カスタムドメインの設定を行っていきます。

カスタムドメインの準備

この手順はスキップします。
以降は、カスタムドメインを Route53 で取得しており、パブリックホストゾーンも作成済みの状況であるとの前提で進みます。

カスタムドメインの ACM 証明書作成

コンソールから AWS Certificate Manager に移動し、「リクエスト」をクリックします。

パブリック証明書をリクエストします。

証明書のドメインには、カスタムドメインを指定します。
その他の設定はデフォルトのままにします。

その後、証明書のステータスが「保留中の検証」になるので、「Route53 でレコードを作成」をクリックします。

Route53 のホストゾーンを確認すると、CNAME レコードが作成されていることが分かります。
今回は、数分待つと証明書のステータスが発行済みになりました。

API Gateway でカスタムドメインを作成

コンソールから API Gateway に移動し、「カスタムドメイン名」からカスタムドメインを作成します。
ドメイン名に取得したカスタムドメインを入力し、エンドポイントタイプに「リージョン」を選択、ACM証明書に先ほど作成した証明書を選択します。

DNS レコードの設定(カスタムドメインを API Gateway にマッピング)

上記カスタムドメインの作成が完了すると API Gateway ドメイン名が表示されるので、カスタムドメインのホストゾーンの A レコードのエイリアスで、その API Gateway ドメイン名を指定します。

Aレコードの作成が完了したら、API Gateway のカスタムドメインの API マッピングにより、カスタムドメイン名を利用してリクエストを行う API Gateway の HTTP API を指定します。
なお、この手順では HTTP API を作成済みである前提です。

以上で、カスタムドメインの設定は完了です。

HTTP API を呼び出す

最後に、カスタムドメイン名で HTTP API を呼び出すことができるか確認します。
まずはデフォルトのドメイン名で呼び出してみます。

> curl https://xxx.execute-api.ap-northeast-1.amazonaws.com/test
Hello

正常に呼び出せました。
次に、カスタムドメイン名で呼び出せるか確認します。

> curl https://test-xxx.net/test   
Hello

カスタムドメイン名でも正常に呼び出せることが確認できました。

参考資料

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

API Gatewayでカスタムドメインを利用する(SSL証明書のみAWS機能で用意するパターン)