0
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 3 years have passed since last update.

【AWS】Terraformでアクセスを分散、WebサーバーをHTTPS化する その2(Route53)

Last updated at Posted at 2021-08-22

概要

TerraformでAWSサービスを使用して、

  • 負荷分散
  • 独自ドメインの設定
  • SSL証明書を作成してHTTPS化

上記の3つを含めた構成を作成する手順をまとめました。

目次

本記事は「2. Route53でDNS設定」について記述。
「1. ALBの作成」まではこちら → 【AWS】Terraformでアクセスを分散、WebサーバーをHTTPS化する その1(ALB)

  1. アプリケーションロードバランサー(ALB)の作成
  • ALBの作成
  • ターゲットグループの作成 / ターゲットの登録
  • リスナーを設定
  • ALBのDNS名からHTTPアクセス確認
  1. Route53でDNS設定 ←本記事はここから
  • ドメインの取得(例はfreenomの無料ドメイン)
  • ホストゾーンの作成
  • DNSレコードの定義
  • ネームサーバーの設定を加える
  • 取得したドメインへHTTPアクセス確認 ←ここまで
  1. AWS Certificate Manager(ACM)でSSL証明書の作成
  • SSL証明書の作成
  • SSL証明書の検証
  • HTTPSリスナーの定義
  • HTTPSアクセス確認

構成図

目標構成図はこちら。
ALB_Route53_ACM.png

2. Route53でDNS設定

ドメインの取得

まずはドメインを取得。
今回は勉強用ということで、freenomというドメインプロバイダを使って、無料の独自ドメインを一時的に登録する。
freenom (https://www.freenom.com/ja/index.html) にアクセスし、アカウントを作成orサインイン。
ヘッダーの「Services」タブでメニューを開き、「Register a New Domain」を選択。

取得したいドメイン名をインプットフィールドに入力し、「Check Availability」をクリック。
ドメイン名が利用可能であればチェックアウトをする。
スクリーンショット 2021-08-21 22.33.53.png
スクリーンショット 2021-08-21 22.34.32.png
その後、利用期間や料金などを確認して、ドメインを取得。(今回は一時的な取得のため、無料かつ期間も適当。)
スクリーンショット 2021-08-21 22.36.52.png

ホストゾーンの作成

同ディレクトリにroute53.tfを作成。
取得したドメインをホストゾーンとしてRoute53の設定を記述していく。

route53.tf
# 新規のホストゾーンを作成
resource "aws_route53_zone" "hostzone" {
  name = # 取得したドメイン
}

ホストゾーンでは、ドメインのトラフィックをルーティングする情報(DNSレコード)を束ねて保持している。

DNSレコードの定義

続いてDNSレコードを定義する。

route53.tf
# DNSレコード
resource "aws_route53_record" "dns_record" {
  zone_id = aws_route53_zone.hostzone.zone_id
  name    = aws_route53_zone.hostzone.name
  type    = "A" # Aレコード

  alias {
    name                   = aws_lb.alb.dns_name
    zone_id                = aws_lb.alb.zone_id
    evaluate_target_health = true
  }
} 
  • alias
    AWS独自拡張のレコードであるaliasレコードを定義。ALBのDNS名とゾーンIDを指定することで、ALBのIPアドレスへ名前解決をしている。

aliasレコード
DNS名を持つAWSリソースに対して直接ドメインを登録することができ、CNAMEレコードと比較して名前解決のパフォーマンスが良い。

  • 名前解決の流れの比較例
    • CNAMEレコード: ドメイン名 → xxxxxxxxxx.ap-northeast-1.elb.amazon.aws.com → IPアドレス
    • aliasレコード: ドメイン名 → IPアドレス

要するにDNSクエリが1回で済み、名前解決までのステップが少ないため、パフォーマンスが良い。
IPアドレスのAレコードを直接定義すれば良いとも考えられるが...
IPアドレスが動的に変化する可能性のあるAWSリソースには最適な方法ではないため、aliasレコードが使われる。

ここまでterraform applyを実行し、マネジメントコンソールで確認。

ネームサーバーの設定を加える

これだけではまだドメインにアクセスできないため、下記の手順でネームサーバーの設定を加える。

  1. freenomのMy Domainページにて、「Manage Domain」をクリック。
  2. 「Management Tools」タブの「Nameservers」を選択する。
  3. ラジオボタンで「Use custom name servers (enter below)」を選択し、マネジメントコンソールのDNSレコードのNSタイプの値をそれぞれ設定する。
  4. 「Change Nameservers」で設定を保存する。(反映に数分かかる。)

スクリーンショット 2021-08-22 0.01.20.png
スクリーンショット 2021-08-22 0.10.10.png

取得したドメインへHTTPアクセス確認

Nameservers設定の反映を数分待ち...取得したドメイン名にHTTPアクセスしてみる。
ALBからの分散先ページが問題なく表示されたら、Route53でのDNS設定は成功!

終わりに

今回はRoute53でのDNS設定をまとめました。
次の記事で今回設定したドメインのSSL証明書を取得して、HTTPSアクセスができるようにします。

0
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
0
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?