7839

雑草魂エンジニアブログ

【AWS】Route 53をDNSサービスとして使用するサブドメインの作成

Amazon Route 53にてドメインを管理している状態で、ドメインを管理しているアカウントとは別のアカウントでサブドメインを作成し、ACMにてSSL証明書を発行したい場合、あれ?どうやるんだったけ?と忘れることがあるので、備忘録として残しておく。

概要

定義

今回、ドメインアプリ開発アカウントに移行することなく、親ドメインアカウントでドメインを管理しつつも、アプリ開発アカウントでサブドメインを作成し、ACMにてSSL証明書を発行できるようにする。

サブドメイン作成

アプリ開発アカウントのRoute 53にてサブドメインを作成する。

ホストゾーンの作成」ボタンから以下の設定でホストゾーンを作成する。

  • ドメイン名:sample-api.hogehoge.com(サブドメイン名を入力)
  • 説明:(使用用途などを明記)
  • タイプ:パブリックホストゾーン(default)
  • タグ:(必要であれば追加)

ホストゾーンを作成すると、NSレコードとSOAレコードが作成される。 NSレコードを親ドメインアカウント側に追加して更新する必要があるので、NSレコードをコピーしておく。

サブドメインのネームサーバーレコードでDNS サービスを更新する

ドメインアカウントのRoute 53にて、hogehoge.comのホストゾーンにサブドメインのネームサーバーレコードを追加する。

  • レコード名:sample-api(hogehoge.com)
  • レコードタイプ:NS-ホストゾーンのネームサーバー
  • 値:サブドメインのNSレコード
  • TTL :300(default)
  • ルーティングポリシー:シンプルルーティング(default)

ACMから証明書発行

アプリ開発アカウントAWS Certificate Manager(ACM)にて証明書の発行をリクエストする。

  • 証明書タイプ:パブリック証明書をリクエス
  • ドメイン名:sample-api.hogehoge.com(サブドメイン名を入力)
  • 検証方法を選択:DNS検証 - 推奨(default)
  • タグ:(必要であれば追加)

作成した証明書の詳細を確認すると、ステータスは「保留中の検証」となっている。

「Route 53 でレコードを作成」→「レコードを作成」を実行する。これにより、Route 53のサブドメインに、CNAMEレコードが追加される。

あとは、DNS検証が完了するのを待つのみ。数分経過すると、「発行済み」のステータスになる。

以降は、通常の設定と同様である。

ロードバランサーの作成

  1. Application Load Balancer(ALB)(HTTP / HTTPS)を選択する
  2. リスナー「ロードバランサープロトコル」に、"HTTPS"を追加する
  3. セキュリティ設定で、SSL証明書を登録する
    • 証明書タイプ:ACM から証明書を選択する (推奨)
    • 証明書の名前:「ACMで発行した証明書」を選択する
  4. ターゲットの登録で、使用するEC2インスタンスを登録する
  5. 使用するEC2インスタンスのセキュリティグループに、HTTPを許可するルールを追加し、ソースには作成したELBのセキュリティグループを指定する。

Route53 ロードバランサー紐付け

サブドメインに、以下のレコードを追加する

  • レコード名:(空欄のまま)
  • レコードタイプ:A - IPv4アドレスと一部のAWSリソースにトラフィックをルーティングします。
  • エイリアスを「有効」にする
  • トラフィックのルーティング先:「Application Load Balancer と Classic Load Balancerへのエイリアス」→ ALBのリージョンを選択 → 作成したALBを選択する

まとめ

無事、ドメインアプリ開発アカウントに移行することなく、親ドメインアカウントでドメインを管理したまま、アプリ開発アカウントでサブドメインを作成し、ACMにてSSL証明書を発行できるようにすることができた。

何度かやっているのに、毎回忘れて調べているので、メモとして残しておく。

参考記事

docs.aws.amazon.com