4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

API Gatewayに独自ドメインでアクセスする方法(リージョン編)

Last updated at Posted at 2022-10-18

カスタムドメインを使って、API Gatewayに独自ドメインでアクセスする方法をまとめます。
本記事は「リージョン編(API Gatewayのエンドポイントをリージョンに設定)」でCloudFrontを利用しないので、国内限定サービスなどに良いと思います。
また、API Gateway につながる実際のAPIについては「API Gateway、Lambda(Node.js)、DynamoDB を使ったAPIの作り方」で作ったAPIを利用するので、こちらを先に見ておくと良いかと思います。

ちなみに、CloudFrontを利用するエッジ最適化については、「API Gatewayに独自ドメインでアクセスする方法(エッジ最適化編)」を参考にしてください。

前提

route53でドメインを取得していること。
本記事では取得済ドメインの サブドメイン を利用します。

ACMでSSL証明書を発行

ACM(Certificate Manager)を使って取得済ドメインのSSL証明書を発行します。
今回はリージョン編なので、任意のリージョンで証明書を発行します。

「証明書をリクエスト」をクリックします。
acm1.png

「パブリック証明書をリクエスト」が選択されているので、そのまま「次へ」をクリックします。acm2.png

「完全修飾ドメイン名」入力欄に値を入力します。例えば取得済ドメインが「hoge.com」ならば、「*.hoge.com」と入力しましょう。
検証方法は推奨されている「DNS検証」のまま、「リクエスト」をクリックします。
acm3.png

すると以下のような画面になり、まだ保留中のままになっているので、「証明書ID」のリンクをクリックします。
acm4.png

すると以下のような画面になります。あとで route53で利用するので「CNAME名」と「CNAME値」を控えておきます。
acm5.png

route53 で CNAME を設定する

route53の画面を選択、既に作成済ドメインのホストゾーンを選択して、以下のように「レコードを作成」をクリックします。
route53_1.png

レコードタイプに「CNAME」を選択し、前述の「CNAME名」と「CNAME値」を入力します
route53_2.png

その後、約20分ほどで SSL証明書が発行済となります。
以下ACMの画面からも、「発行済み」になっていることを確認できます。
acm_route53_5.png

API Gateway でカスタムドメインを作成

カスタムドメインを選択して「作成」をクリックします。
custom1.png

カスタムドメイン名(例えば取得済ドメインがhogehoge.comならば、api.hogehoge.comとする)を入力します。
その後、エンドポイント設定を「リージョン」にチェックすると、ACM証明書のところで、前述で発行したSSL証明書が選べるので選択をします。
その後に「ドメイン名を作成」をクリックします。
custom2_R.png

すると、以下のようにカスタムドメインが出来ます。
API Gatewayドメインは、のちほどroute53で利用します。
custom3_R.png

続いて「APIマッピング」タブを選択して、「APIマッピングを設定」をクリックします。
custom4.png

「新しいマッピングを追加」をクリックします。
custom5.png

APIの欄に API GatewayのAPI(ここでは「API Gateway、Lambda(Node.js)、DynamoDB を使ったAPIの作り方」を利用)、ステージには同じくAPI Gatewayのステージを選択します。
パスは任意で設定します。ここではAPIをバージョン管理できるように「v1」とつけておきます。これにより、URLが https://api.hogehoge.com/v1/ などになります。
全て設定できたら、「保存」をクリックします。
custom6.png

再び route53でサブドメインを設定

API Gatewayのカスタムドメインが設定できたら、route53でそのカスタムドメイン(サブドメイン)を設定します。
以下のよう該当のホストゾーンから「レコードを作成」をクリックします。
route53_10.png

レコード名には、カスタムドメインと同じく「api」を設定して、レコードタイプは「Aレコードとします」
トラフィックのルーティングは以下のようになりますが、ここで注目すべきは、前述で出てきた API Gatewayのエイリアス が選べるようになっていることです。API Gatewayのエイリアス を選んで「レコードを作成」をクリックしましょう。
route53_11_R.png

以上で独自ドメイン(カスタムドメイン)でAPI Gateway が利用できるようになりました。
ためしに postman でアクセスしてみましょう。
前述したように、API GatewayのAPIには(API Gateway、Lambda(Node.js)、DynamoDB を使ったAPIの作り方)で作成したAPIがつながっているので、リクエストJsonを以下のようにします。

{
    "action": "overview",
    "eid": "00001"
}

postmanでは以下のように正常にレスポンスが返ってきたことが分かります。
postman.png

以上です。

4
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
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?