はじめに
こんにちは、クラウドエンジニアリング部の本橋です。
前回client -> CloudFront -> S3へのアクセスを確認するところまで行いました。
その続きからやっていきます。
前回記事はこちら: 汎用的に使えそうなAWS構成 - 第1回 - APC 技術ブログ
今回やること
今回は自分のドメインを取得してそのドメインを使ってS3上のページにアクセスするところまでやります。
範囲を図で表すと以下になります。
(前回の図にはACMが入っていなかったので追加してます)
ドメイン取得
Route53の機能を使ってドメインを取得します。
Route53の画面から、登録済みドメイン -> ドメイン登録を選択します。
ドメインの取得自体はドメイン登録 → 連絡先入力 → 確認の3ステップでした。今回「veriws.net」を取得しています。
ドメイン取得をリクエストしたら、「メールアドレス認証してください」のメールが来ました。
証明書取得
自分のドメインを取得できたのでCloudFrontに配置する証明書をACMで取得します。
AWS Certificate Managerの画面から「証明書をリクエスト」を選択して以下のようにパラメータを設定します。
- 証明書タイプ
- パブリック証明書をリクエスト
- 完全修飾ドメイン名
- www.veriws.net
- 検証方法
- DNS 検証
- キーアルゴリズム
- ECDSA P 256
証明書リクエスト後、CNAMEレコードを対象のhosted zoneに設定します(DNS 検証を選択したため)。
「Route 53 でレコードを作成」を選択すると簡単にCNAMEレコードを登録できます。
しばらくするとステータスが「成功」となるはずです。
CloudFrontの設定
第1回での設定に加えて、CNAMEとカスタムSSL証明書を設定したら、うまくアクセスできました。
自分で設定したドメイン+証明書でアクセスできました!
詰まったところ
CloudFrontを設定せずにアクセスした時に「The request could not be satisfied.Bad Request.」と表示されて解決に時間かかりました。
結果的には以下のページに書いてあるCNAME設定をしたら解消できました。
Amazon CloudFront からの「403 エラー - The request could not be satisfied.」を解決するにはどうしたらいいですか?
Terrafrom コード
最後に今回作成した範囲をTerraform化しました。
感想
今回は主にドメイン登録と証明書取得に触れました。AWSの機能を使うことでどちらも簡単にできました。
余談ですが、TerraformでRoute53のドメイン管理する場合少し特殊みたいです。
Terraform Registry
The aws_route53domains_registered_domain resource behaves differently from normal resources in that if a domain has been registered, Terraform does not register this domain, but instead "adopts" it into management. terraform destroy does not delete the domain but does remove the resource from Terraform state.
Terraformですべてを管理したいケースとかは使えるのかもしれませんね。(今回は利用してません)
おわりに
私達クラウド事業部はAWSなどのクラウド技術を活用したSI/SESのご支援をしております。
https://www.ap-com.co.jp/service/utilize-aws/
また、一緒に働いていただける仲間も募集中です!
今年もまだまだ組織規模拡大中なので、ご興味持っていただけましたらぜひお声がけください。