APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

汎用的に使えそうなAWS構成 - 第2回 Route53/ACM 設定

はじめに

こんにちは、クラウドエンジニアリング部の本橋です。
前回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 検証を選択したため)。

CNAMEの設定
「Route 53 でレコードを作成」を選択すると簡単にCNAMEレコードを登録できます。
しばらくするとステータスが「成功」となるはずです。

CloudFrontの設定

第1回での設定に加えて、CNAMEとカスタムSSL証明書を設定したら、うまくアクセスできました。

CloudFront設定

アクセス確認
自分で設定したドメイン+証明書でアクセスできました!

詰まったところ

CloudFrontを設定せずにアクセスした時に「The request could not be satisfied.Bad Request.」と表示されて解決に時間かかりました。
結果的には以下のページに書いてあるCNAME設定をしたら解消できました。
Amazon CloudFront からの「403 エラー - The request could not be satisfied.」を解決するにはどうしたらいいですか?

Terrafrom コード

最後に今回作成した範囲をTerraform化しました。

github.com

感想

今回は主にドメイン登録と証明書取得に触れました。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/

また、一緒に働いていただける仲間も募集中です!
今年もまだまだ組織規模拡大中なので、ご興味持っていただけましたらぜひお声がけください。

www.ap-com.co.jp

本記事の投稿者: 本橋
AWSを活用したインフラ系のご支援を担当しています。