BeeX Tech blog

BeeXではクラウドネイティブアプリ開発、企業の基幹クラウド基盤構築、システム移行、運用保守を行っています。

API Gatewayのカスタムドメイン化がちょっとだけややこしかった話


朝起きたらめちゃ寒かったので皆さん風邪などひかぬよう気をつけましょう、那須です。

タイトルの通りなんですが、API Gatewayってドメイン設定しなければamazonaws.comドメインでAPIが作成されます。

それをカスタムドメインにしたかっただけなんですが、思いのほか手順がややこしかったので軽くまとめました。

わかってしまえば簡単なんですが、AWSドキュメントだけ見てるとあちこちページが飛んでしまってよくわからなくなってしまいがちなので備忘のために書き残します。

ドキュメント情報

docs.aws.amazon.com
docs.aws.amazon.com

前提条件

・バージニアリージョンのACMで対象ドメインの有効期限内の証明書が存在すること

 ・エンドポイント設定がエッジ最適化のAPIの場合のみ。裏でCloudFrontが作成されてそれ経由でのアクセスになるため。

 ・エンドポイント設定がリージョンの場合は当該リージョンのACMで証明書を作成しておく。

手順

カスタムドメイン作成

まずはAPI Gatewayでカスタムドメインを定義しましょう。

API Gatewayコンソールで、カスタムドメイン名カスタムドメイン名の作成とたどります。

情報を入力して保存を押します。

ドメイン名は実際にアクセスする名前を書きましょう(例:https://test.hoge.com/ でアクセスさせる場合は test.hoge.com )

ACM証明書はバージニアリージョンの証明書をプルダウンから選択してください。

初期化に40分くらいかかるとドキュメントには書かれていますが、実際はその半分くらいでした。

次のステップで使うのでターゲットドメイン名(cloudfront.netで終わるもの)をメモしておきましょう。

Route53コンソールで、対象ホストゾーンにAレコードを作成します。

Alias指定し、Alias先に先程メモしたターゲットドメイン名(cloudfront.netで終わるもの)を入力しましょう。

(例:hoge.comホストゾーンにtest.hoge.comのAレコードを作成する)

マッピング変更

API Gatewayコンソールで、カスタムドメイン名→対象カスタムドメインのベースパスマッピングの編集を押します。

パスと送信先を指定して保存を押します。

パスはベースパスと呼ばれ、カスタムドメインの後ろにこのパスが必ず付きます。指定しなければつきません。

送信先は対象のAPIとステージを選択します。

こんな感じでリスト表示されればOKです。

これでカスタムドメインでアクセスすると、指定したAPIのステージに転送されますよ。

最後に

API Gatewayは触ってるといろんな発見があって面白いですね。
できることが増えれば、あれもできるのでは?これもこうすればいいのでは?と、いろんなアイディアが出てきます。
もう少しAPI Gatewayでいろいろ試してみて、仕事に取り入れてみようと思いました。