AWS Route53を用いた【開発環境/本番環境】dev.example.comの構築
本記事ではAWS Route53とALBを用いた開発/本番環境の切り分けのやり方をまとめていきます。
いきなり結論ですが最終的には以下のような画像のような状態になります。
Route53におけるexample.comの設定
Route53におけるdev.example.comの設定
それでは早速具体的にどのようにやっていくか見ていきましょう!
ベストプラクティス
ベストプラクティスとして、本番環境と開発環境では、同じ構成(VPC内にALBやRDSを配置するなど)を別物として作ることが推奨されています。また、AWSアカウントを分けて管理するのが望ましいとされています。本記事では、dev.example.comを開発環境、example.comを本番環境として扱います。
Route53でdev.example.com用のサブドメイン設定
サブドメイン作成
1. Route53でホストゾーンの作成を行い、dev.example.comのホストゾーンを作成します。
- ドメイン名: dev.example.com (サブドメイン名を入力)
- 説明: (使用用途などを明記)
- タイプ: パブリックホストゾーン (default)
- タグ: (必要であれば追加)
2. ホストゾーンを作成すると、NSレコードとSOAレコードが自動で作成されます。NSレコードを親ドメインアカウント側に追加して更新する必要があるので、NSレコードをコピーしておきます。
3. 親ドメイン(example.com)のRoute53ホストゾーンにて、サブドメインのネームサーバーレコードを追加します。
- レコード名: dev (example.com)
- レコードタイプ: NS - ホストゾーンのネームサーバー
- 値: サブドメインのNSレコード
- TTL: 300 (default)
- ルーティングポリシー: シンプルルーティング (default)
SSL/TLS証明書の取得
1. ACMにてdev.example.com用の証明書の発行をリクエストします。
- 証明書タイプ: パブリック証明書をリクエスト
- ドメイン名: dev.example.com (サブドメイン名を入力)
- 検証方法: DNS検証 - 推奨 (default)
- タグ: (必要であれば追加)
2. 証明書を作成した直後はステータスが「保留中の検証」となります。「Route 53でレコードを作成」→「レコードを作成」を実行すると、Route 53のサブドメインにCNAMEレコードが追加されます。
3. DNS検証が完了するのを待ちます。数分経過すると、ステータスが「発行済み」になります。
Application Load Balancerの作成
1. Application Load Balancer (ALB) (HTTP/HTTPS) を選択します。
2. リスナーの「ロードバランサーのプロトコル」に、"HTTPS"を追加します。
3. セキュリティ設定で、取得したSSL証明書を登録します。
- 証明書タイプ: ACMから証明書を選択する (推奨)
- 証明書の名前: ACMで発行した証明書を選択
4. ターゲットの登録で、使用するEC2インスタンスを登録します。
5. 使用するEC2インスタンスのセキュリティグループに、HTTPを許可するルールを追加し、ソースには作成したALBのセキュリティグループを指定します。
Route53とALBの紐付け
1. サブドメインに、以下のレコードを追加します。
- レコード名: (空欄のまま)
- レコードタイプ: A - IPv4アドレスと一部のAWSリソースにトラフィックをルーティングします。
- エイリアスを「有効」にする
- トラフィックのルーティング先: 「Application Load BalancerとClassic Load Balancerへのエイリアス」→ ALBのリージョンを選択 → 作成したALBを選択
以上の手順で、本記事の冒頭に示したように開発環境としてdev.example.comのサブドメインを構築することができます。本番環境のexample.comについても同様の手順で別途構築する必要があります。
※本QiitaはKCompnayのテックブログのです。 個人的に開発に役立つ記事を執筆して公開していきます。