概要
API Gateway + LambdaでAPI Gatewayのドメイン名をRoute53で紐付ける方法を紹介します。
API Gateway + Lambdaの構築は以下の記事で紹介しましたので、この記事ではそこからRoute53を使ってAPI Gatewayのドメイン名の向き先の紐づけ手順を紹介します。
前提
- Route53でドメインは取得済みとします
- ACMでSSL証明書も取得済みとします
手順
- ①カスタムドメイン名を作成する
- ②API マッピングを行う
- ③Route53で紐付ける
①カスタムドメイン名を作成する
- API Gateway -> 「カスタムドメイン名」 -> 「ドメイン名を追加」
- ドメイン名を入力
- 「ACM 証明書」に該当の証明書を選択
※API GatewayではHTTPS エンドポイントのみ対応しているので、ACMの紐付けが必要になります
Amazon API Gateway で作成された API は、HTTPS エンドポイントのみ公開します。API Gateway は非暗号化 (HTTP) エンドポイントをサポートしません。
https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/data-protection-encryption.html
②API マッピングを行う
- API Gateway -> 「カスタムドメイン名」 -> 上記で作成したドメインを選択 -> 「API マッピング」を設定
- 該当API、ステージ、パス(空のまま)を選択して保存
- 「API Gateway ドメイン名」が生成されたことを確認します
※デプロイ直後だとステージがプルダウンに表示されないのでその場合は数分待ちます
③Route53で紐付ける
AWS Route53で上記ドメイン名を紐付けします (もちろん「お名前.com」とか他でも可能)。
- Route53 -> ホストゾーン -> 該当ドメイン選択 -> レコードを作成
- レコードタイプA
- エイリアスは「API Gateway API へのエイリアス」を選択
- 先ほど作成したAPI Gateway ドメイン名を選択して、レコード作成
※他で同じドメインに紐付けている既存のレコードが残っている場合は、まずはそれを削除してから行います(重複登録エラーになるため)
以上で、少し待つと無事に反映されました!