2
2

More than 3 years have passed since last update.

API Gatewayで作成したデフォルトのエンドポイントをカスタムドメイン化する

Last updated at Posted at 2021-02-07

概要

API Gatewayで作ったAPIのエンドポイントはデフォルトの状態だと次のような感じになっている。

https://xxxxxxxx.execute-api.ap-northeast-1.amazonaws.com

このままだと視覚的にわかりづらいため、任意のドメインに変更したい。

前提

Route53に変更希望の独自ドメインがすでに登録済みである事。
参照: AWSだけで独自ドメインを取得して自分のWebページを公開するまで

Lambda関数を作成

スクリーンショット 2021-02-07 16.12.01.png

まず、適当な値を返すためのLambda関数を作成する。

スクリーンショット 2021-02-07 16.13.11_censored.jpg

./lambda_function.rb
require 'json'

def lambda_handler(event:, context:)
    # TODO implement
    { statusCode: 200, body: JSON.generate('Hello from Lambda!') }
end

コードの中身はデフォルトのままでOK。

API Gatewayを作成

スクリーンショット 2021-02-07 16.18.22.png

先ほど作成したLambda関数と紐づけるためのAPIを作成。

スクリーンショット 2021-02-07 16.20.11.png

「アクション」→「リソースのアクション」→「メソッドの作成」→「GET」

  • 統合タイプ
    • Lambda関数
  • Lambdaプロキシ統合の使用
    • チェック
  • Lambdaリージョン
    • ap-northeast1
  • Lambda関数
    • customer-domain-api
  • デフォルトタイムアウトの使用
    • チェック

この辺の設定は各自お好みで。

スクリーンショット 2021-02-07 16.25.43.png

  • デプロイされるステージ
    • 新しいステージ
  • ステージ
    • v1
  • ステージの説明
    • 適宜
  • デプロイメントの説明
    • 適宜

この辺もお好みで。

スクリーンショット 2021-02-07 16.30.48_censored.jpg

デプロイに成功するとエンドポイントが表示されるのでクリック。

スクリーンショット 2021-02-07 16.32.28.png

正常にレスポンスが返ってくれば成功。

SSL証明書を発行

スクリーンショット 2021-02-07 15.24.07.png

「Certificate Manager」から「証明書のプロビジョニング」をクリック。

スクリーンショット 2021-02-07 15.24.20.png

「パブリック証明書のリクエスト」

スクリーンショット 2021-02-07 15.25.21_censored.jpg

希望のドメインを入力。

スクリーンショット 2021-02-07 15.25.35.png

「DNSの検証」

スクリーンショット 2021-02-07 15.26.09_censored.jpg

問題無ければ「確認とリクエスト」をクリック。(タグは無しでもOK)

スクリーンショット 2021-02-07 15.41.18_censored.jpg

「Route53でのレコードの作成」をクリック。

スクリーンショット 2021-02-07 16.41.34_censored.jpg

ある程度時間が経つと検証に成功するはず。

カスタムドメインを作成

スクリーンショット 2021-02-07 17.23.21_censored.jpg

「API Gateway」→「カスタムドメイン」からカスタムドメインを作成。

  • ドメイン名
    • 任意(今回は「api.」というサブドメインで運用する事を想定。)
  • ACM証明書
    • 先ほど発行した証明書

スクリーンショット 2021-02-07 16.56.45.png

「APIマッピングを設定」

  • API
    • 先ほど作成したAPI
  • ステージ
    • 任意
  • パス
    • 任意

Route53でレコード作成

スクリーンショット 2021-02-07 17.04.01_censored_censored.jpg

「Route53」→「ホストゾーン」→「レコード作成」

  • ルーティングポリシー
    • シンプルルーティング
  • レコード名
    • 任意(今回は「api.」というサブドメインでの運用を想定)
  • エイリアス
    • チェック
  • レコードタイプ
    • IPv4
  • トラフィックのルーティング先
    • API gateway APIへのエイリアス
    • アジアパシフィック(東京)
    • 該当のエンドポイント
  • ターゲットへのヘルスを評価
    • チェック

スクリーンショット 2021-02-07 17.32.22_censored.jpg

https://api.ドメイン名

レコード作成後、↑にアクセスして正常にレスポンスが返ってくればカスタムドメイン化に成功。(状況によっては反映までに時間がかかる事も有り。)

あとがき

お疲れ様でした。もし記事通りに進めて上手く動作しない箇所があったらコメント蘭などで指摘していただけると幸いです。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2