[[AWSメモ]] >
* 独自ドメイン名で API Gateway または EC2にアクセスする [#wee37ad8]
#mynavi(AWSメモ)
#setlinebreak(on);

* 目次 [#y706f531]
#contents
-- 関連
--- [[AWSメモ]]
- 関連
-- [[CloudFormationでカスタムドメイン対応の API Gateway を作成する]]

** 概要 [#s0bccb56]
* 概要 [#s0bccb56]
#html(<div style="padding-left: 10px;">)
独自ドメイン名で EC2上のWebAPサーバ、または API Gateway にアクセス出来るようにする為の手順を記載する。
以下の例では、ドメイン名は example.com として、サブドメイン付きの  aws-sample.example.com  で EC2 または API Gateway にアクセスできるようにする手順を記載する。
#html(</div>)

** 証明書の作成 [#xb4b33c1]
* 証明書の作成 [#xb4b33c1]
#html(<div style="padding-left: 10px;">)

- [[マネージメントコンソールから Certificate Manager>https://ap-northeast-1.console.aws.amazon.com/acm/home?region=ap-northeast-1#/]] を開き、[証明書のリクエスト] ボタンを押下する
- ドメイン名( aws-sample.example.com )を入力し、[次へ]
- 検証方法で [DNSの検証] または [Eメールの検証] を選択し、[確認] を押下。 ※後述 「[[ドメイン名の検証について>#w4c85b0b]]」を参照
- 内容を確認して [確定とリクエスト] を押下する。

*** ドメイン名の検証について [#w4c85b0b]
** ドメイン名の検証について [#w4c85b0b]
#html(<div style="padding-left: 10px;">)
-「DNSの検証」では DNSの cname を設定する事によりドメインの持ち主である事を確認する。

  ※DNSのTTL設定等にもよる為、少し時間がかかる。(ドキュメントには72時間以内に検証可能な状態になれば良い旨が書いてある)
  ※参考 ... [[DNS を使用したドメインの所有権の検証>https://docs.aws.amazon.com/ja_jp/acm/latest/userguide/gs-acm-validate-dns.html]]

-「Eメールの検証」では以下のアドレスに送信される確認メールに記載されているリンクから確認作業を行う。
-- administrator@ドメイン名
-- hostmaster@ドメイン名
-- postmaster@ドメイン名
-- webmaster@ドメイン名
-- admin@ドメイン名

  ※確認メールは上記の5つのメールアドレス全てに送られる。
  ※リンク先の [I Approve] を押下後はすぐに検証OKとなるので、上記のアドレスでメール受信できる場合は「Eメールの検証」の方が早い。
  ※参考 ... [[E メールを使用したドメインの所有権の検証>https://docs.aws.amazon.com/ja_jp/acm/latest/userguide/gs-acm-validate-email.html]]

#html(</div>)

#html(</div>)

** EC2にアクセスする場合 [#w5bd1845]
* EC2にアクセスする場合 [#w5bd1845]
#html(<div style="padding-left: 10px;">)

ACM で作成したパブリック証明書はエクスポートできない為、EC2等でそのまま利用する事はできない。
その為、EC2へのアクセス時に利用する場合は、ELBやCloudFront等を噛ます必要がある。
ここでは、ELBを利用する手順を記載する。
※参考 [[AWS Certificate Manager のよくある質問>https://aws.amazon.com/jp/certificate-manager/faqs/]]

- マネージメントコンソールの EC2から [ロードバランサー] を選択し「ロードバランサーの作成」を押下
- Application Load Balancer の「作成」を押下
- 名前、スキーム、IP アドレスタイプ を入力/選択。
- リスナーに HTTP(ポート:80) 及び HTTPS(ポート:443) を設定
- アベイラビリティーゾーンを設定(対象のEC2インスタンスのあるVPC/アベイラビリティゾーンを選択)
- 証明書タイプで 「ACM から証明書を選択する」を選択し、証明書の名前で先ほど作成した証明書を選択する。
- セキュリティポリシーで「ELBSecurityPolicy-2016-08」を選択する。
 ※ELBでは、カスタムセキュリティポリシーを利用する事はできない為、用意されているものを利用する必要がある。
  (用意されているセキュリティポリシーは [[Application Load Balancer の HTTPS リスナー>https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/create-https-listener.html]] を参照)
- セキュリティグループの設定で 80 及び 443 ポートを許可するセキュリティグループを選択する。 ※無い場合は「新しいセキュリティグループを作成する」から作成可能
- ターゲットグループ、ヘルスチェックの設定を行う。 ※ターゲットの種類は「インスタンス」を選択
- ターゲットの登録で、対象のEC2インスタンス選択/追加する。
&br;
- 最後に、作成したロードバランサーのDNS名を対象ドメインのDNSに cname として設定する。
&br;Bindの設定例) ドメイン名: aws-sample.example.com   ロードバランサーのDNS: elb-aws-xxxxxxxxxx.ap-northeast-1.elb.amazonaws.com の場合
#myterm2(){{
aws-sample IN CNAME elb-aws-xxxxxxxxxx.ap-northeast-1.elb.amazonaws.com.
}}
※Route53を使用している場合は、Route53で設定可能。

#html(</div>)


** API Gateway にアクセスする場合 [#dde6161e]
* API Gateway にアクセスする場合 [#dde6161e]
#html(<div style="padding-left: 10px;">)

API Gateway へのアクセス時に作成した証明書を利用する場合は、カスタムドメインを設定する。

(参考)
https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/how-to-custom-domains.html
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html


- マネージメントコンソールの API Gateway から「カスタムドメイン名」を選択。
- 「カスタムドメイン名の作成」を押下。
- ドメイン名を入力し、エンドポイントの設定で「Regional」を選択、ACM証明書で作成した証明書を選択後に「保存」を押下。
- ベースパスマッピングで対象のAPIとのマッピングを設定する。
&br;
- 最後に、作成したカスタムドメインの「ターゲットドメイン名」を対象ドメインのDNSに cname として設定する。
&br;Bindの設定例) ドメイン名: aws-sample.example.com   ターゲットドメイン名:  xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com の場合
#myterm2(){{
aws-sample IN CNAME xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com.
}}
※Route53を使用している場合は、Route53で設定可能。

#html(</div>)

 以上で、https://aws-sample.example.com でEC2 または API Gateway にアクセス可能となる。
以上で、https://aws-sample.example.com でEC2 または API Gateway にアクセス可能となる。

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS