API Gatewayに別アカウントで所有しているドメインを使ってカスタムドメイン名を設定する
Steps
- 別アカウントで所有しているドメインを利用した証明書の取得
- 証明書をセットしたカスタムドメイン名の作成
- カスタムドメイン名をRoute53のレコードに設定
1. 別アカウントで所有しているドメインを利用した証明書の取得
証明書の発行自体はACMからすぐにできましたが、ドメインを持っていること自体の証明が必要でした。
DNS証明という方法があって、これから証明書を取得するドメイン名のサブドメインに対して、自分が指定したドメイン名(=証明書を申請した側のAWSアカウントで作成された、******.acm-validations.aws/
のようなアドレス) の組み合わせを作成し、それをドメインを所有している側のアカウントでレコードに登録することで証明しています。
参考:
2. 証明書をセットしたカスタムドメイン名の作成
API Gatewayの Custom Domain Nameから、こんな感じでドメイン名を設定します。
なお、ドメイン名に関する用語が紛らわしいので整理すると...
"デフォルトのベースURL": https://api-id.execute-api.region.amazonaws.com/stage
"リージョンのドメイン名"(またはターゲットドメイン名): https://api-id.execute-api.region.amazonaws.com
"カスタムドメイン名": https://api.example.com/myservice
ガイドにも書いてありますが、リージョンAPIのカスタムドメイン名を作成する場合にAPI Gatewayから返ってくるのは"リージョンのドメイン名"なんですね。これをDNSレコードに設定することで、カスタムドメイン名を使うための手続きが完了します。
参考: API Gateway で API のカスタムドメイン名を設定する
3. カスタムドメイン名をRoute53のレコードに設定
ドキュメント API Gateway でリージョン別 API 用のカスタムドメイン名をセットアップするではCLIのコマンドが示されている箇所です。
Aliasとして設定します。
その他
- 疎通確認の際、
http
でアクセスしないように気をつけてください。Chromeでドメインだけ(test.example.com
)打ち込むとhttp
として解釈されます。
Discussion