※前回記事の続きでございます。
やりたいこと
SpringBootで開発したREST APIアプリケーションをLambdaにデプロイし、API Gatewayで公開したい。
API GatewayのエンドポイントのURLをRoute53を使ってカスタムドメイン化したい。
②でやること
前回は、Lambda環境で動作するSpringBootアプリケーションの開発、Lambdaへのデプロイ、API Gatewayとの連携まで行いました。
今回は、API GatewayとRoute53を使った、APIのエンドポイントのカスタムドメイン化を行います。
(独自ドメインを保有していることを前提に進めさていただきます。)
前回記事はこちら↓↓↓
Route53の設定
AWSマネジメントコンソールでRoute53開き、ホストゾーンの作成をクリックします。
ドメイン名に自身のドメインを入力し、それ以外はデフォルトで作成しました。
次に、作成したドメインのNSレコードの値/トラフィックのルーティング先の情報を、ドメインを購入したネームサーバーに紐づけます。
ACMで証明書取得
API Gatewayで独自ドメインを使用する場合、証明書を使ってACMに証明書を登録する必要があるみたいなので、ACMで証明書の取得を行いたいと思います。
AWS Certificate Manager→証明書→証明書をリクエスト→パブリック証明書をリクエストを開きます。
完全修飾ドメイン名にご自身のドメインを入力し、それ以外はデフォルトでリクエストします。
リクエストが完了すると、ステータスが保留中の検証になります。
このままだと検証が終わらずタイムアウトになってしまうため、Route53でレコードを作成をクリックして、Route53のCNAMEレコードを作成します。
作成されると、Route53のホストゾーンにCNAMEレコードが追加されます。
API GatewayとRoute53の連携
次にAPI GatewayとRoute53を連携してAPIエンドポイントの独自ドメイン化を実現したいと思います。
API Gatewayからカスタムドメイン名を開きます。
ドメイン名には自身のドメインを入力します。
ACM証明書には先ほど作成した証明書を選択し、ドメイン名を追加をクリックします。
次にAPIマッピングを設定します。
API、ステージ共に対象のAPIを設定し、APIとドメインのマッピングを設定します。
次にAPI GatewayへトラフィックするためのレコードをRoute53に作成します。
Route53から対象のホストゾーンを選択、レコードの作成をクリックします。
トラフィックのルーティング先にAPI Gatewayへのエイリアス、そして対象のAPIを選択します。
最後に、デフォルトのAPI Gatewayエンドポイントを非アクティブ化します。
(これをしないと、設定した独自ドメインをエンドポイントとして使うことができません。)
API Gateway→API→対象のAPIを選択→APIの設定→APIの設定を編集からデフォルトのエンドポイントを非アクティブにし、変更を保存します。
以上の設定ののち、独自ドメインからAPIをコールし、問題なく動作すれば全量完了です。
お疲れさまでした!!
参考にさせていただいた記事