api.example.com のような独自ドメインのサブドメインでAPI Gatewayを使う設定をしてみます。
CloudFrontに独自ドメインのルートドメインを設定し、APIをサブドメインに紐付けるような使い方を想定しています。
先に独自ドメインのRoute53によるDNS設定が必要になりますが、この記事では説明しません。
下記の記事が参考になりました!
freenomで取得したドメインをRoute53に委任する。 - サーバーワークスエンジニアブログ
ACM(AWS Certificate Manager)でSSL証明書を作る
まず、AWSコンソールのACM設定画面より、SSL証明書を作ります。CloudFrontの独自ドメイン設定では必ず us-east-1 リージョンで証明書を作成しますが、API Gatewayの場合は独自ドメインで使いたいAPIのリージョンでACM設定を行います。
ACM設定画面より「証明書のリクエスト」→「パブリック証明書のリクエスト」と入力を進めます。
- ステップ 1: ドメイン名の追加
- 利用したいサブドメインを入力します。 例:api.example.com
- ステップ 2: 検証方法の選択
- 「DNSの検証」を選択します。
- ステップ 3: タグを追加
- 必須ではありません。補足情報が必要な場合は入力してください。
- ステップ 4: 確認とリクエスト
- 確認して「確定とリクエスト」ボタンを押してください。
- ステップ 5: 証明書のリクエスト
- 「Route53でのレコードの作成」→「続行」と入力してください。 ![SS_証明書のリクエスト.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1509934/f7d163eb-c271-357f-375b-95a2ed9608a4.png)
API Gateway カスタムドメインの設定
API Gateway設定画面より、「カスタムドメイン名」→「作成」と入力します。
ドメイン名を入力し、ACM証明書は先程、作成した証明書を選択します。
作成したカスタムドメイン名を選択し、APIマッピング設定へと進みます。
「新しいマッピングを追加」し、使用したいAPIを選択します。
ステージはAPIで作成しているステージから選択、パスは任意の値を入力してください。複数APIをマッピングする場合はパスが必要になります。
Route53 Aレコードを作成
Route53設定画面より、「ホストゾーン」→(作成済みのドメイン名)→「レコードの作成」と進みます。
レコードの作成画面で、レコード名、レコードタイプ、エイリアス、リージョン、エンドポイントを入力します。
レコード名はサブドメインのサブの部分を入力します。
レコードタイプはAレコードを選択します。
エイリアスをONにして「API Gateway APIへのエイリアス」を選択します。
リージョンは使用したいAPIのリージョンを入力してください。
エンドポイントはカスタムドメインで設定したAPIが選択肢に出てきますので、選択します。
独自サブドメインでAPIにアクセス
サブドメインでアクセスできるか試してみましょう。APIは直接ブラウザで開ける設定のREST APIです。
URLは下記の形式です。
```例:<code>https://api.example.com/users</code>
※普段、Chromeのアドレス欄に入力する際にはドメインから入力していましたが、この時は<code>https://</code>から入力しないと開けませんでした。ブラウザで開けなかった場合はお試しください。
![SS_ブラウザで開く.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1509934/16d58e14-241b-5c3a-ae22-970a1d951770.png)
無事、サブドメインでAPIにアクセスできました!