はじめに
こんにちは、AmazonブラックフライデーセールでiPad Airを買いました、アプリケーションサービス部 ディベロップメントサービス1課の北出です。
今回は、無料のドメインでAPI Gatewayにリクエストを送る検証をする必要があり、やったことを記述させていただきます。 無料ドメインにかかわらず、外部ドメインを使用する際は近い流れになるかと思いますので参考になれば幸いです。
関連サービス
- AWS
- Amazon Route53
- AWS Certificate Manager
- Amazon API Gateway
- その他
無料ドメインの取得に、当初はfreenomの使用を検討していましたが、freenomが使用不可になっていたため、InfinityFreeを使用しました。
前提条件
API Gatewayは作成済み
無料ドメインの取得
- InfinityFreeにアクセスし、サインアップし、ログインします。
- ログイン後、
Create Account
を選択します - 無料プランを選択し、
Create Now
を選択します。 - ドメイン名を設定し、
Check Availability
を選択し、問題なければCreate Account
を選択します。
サブドメインの作成
ドメイン名からAPI Gatewayのエンドポイントに通信を転送するためには、CNAMEレコードを設定する必要があります。
しかし、InfinityFreeではデフォルトのドメインのターゲットをAPI Gatewayのエンドポイントに設定することができないため、サブドメインを設定し、サブドメインをAPI Gatewayのエンドポイントに設定します。
例えば、作成したドメイン名の最初にapi.
を追加したものをサブドメイン名とします。
Route53でホストゾーンの作成
- AWSマネジメントコンソールにログインし、Route53に移動します
ホストゾーンの作成
を選択します- サブドメインを含めたドメイン名を設定し、パブリックホストゾーンにチェックし、
ホストゾーンの作成
を選択します。
- サブドメインを含めたドメイン名を設定し、パブリックホストゾーンにチェックし、
ACM証明書の取得
サブドメインのACM証明書をリクエスト
- AWS マネジメントコンソールにログインし、AWS Certificate Managerに移動します。
- 証明書をリクエストを選択します。
パブリック証明書をリクエスト
を選択します。- ドメイン名にサブドメイン名を指定し、ほかの設定はデフォルトのまま
リクエスト
を選択します
Route53にレコード追加
- 証明書からリクエスト中の証明書を選択します
- ドメインの
Route53でレコードを作成
を選択します。 - 作成したドメインを選択し、レコードの作成をします
- Route53のホストゾーンにCNAMEレコードが作成されたことを確認します
InfinityFreeにCNAMEレコードを追加
- InfinityFreeで作成したドメインのアカウントを選択します。
Manage
を選択します- 移動後の画面で左ナビゲーションバーから
DNS Records
を選択します。 Add Record
を選択し、Create CNAME Record
を選択します。Name
にはRoute53に追加されたCNAMEレコード名をコピーしますTarget
にはレコードの値から末尾のピリオドを除いた部分をコピーしますCreate CNAME Record
でレコードを追加します
- 1~2時間程度でACM証明書のリクエストが完了します。
API Gatewayにカスタムドメインを設定
- AWS マネジメントコンソールにログインし、API Gatewayに移動します
- 左のナビゲーションバーでカスタムドメイン名を選択します。
ドメイン名を追加
を選択します- ドメイン名に作成したサブドメイン名を設定します。
- 下部のACM証明書に作成されたACM証明書を選択します
- 他の設定はデフォルトのまま
ドメイン名を追加
を選択します
- カスタムドメインの画面のAPI マッピングで
APIマッピングを設定
を選択します。- API マッピングで作成しているAPIとステージを選択し保存します。
InfinityFreeにCNAMEレコードを追加
- API Gatewayで作成したカスタムドメイン名を選択します
- エンドポイント設定のAPI Gatewayドメイン名をコピーします
- InfinityFreeで
Create CNAME Record
を選択しますName
にはサブドメイン名を設定しますTarget
には、コピーしたAPI Gatewayドメイン名を設定します。Create CNAME Record
でレコードを追加します
サブドメイン名にアクセスする
以上の設定をしたうえでサブドメイン名にアクセスするとAPI GatewayのAPIのアクセスしたのと同様の結果になります
最後に
AWSでは、Route53でドメインを取得して使うことが多いかもしれませんが、外部のドメインを使うケースや、お金をかけずに試してみたいといったケースもあるかもしれないと思いますのでその一助になれば幸いです。