目次Category
AWSでApplication Load Balancer(ALB)を作成すると、AWSからデフォルトのDNS名が割り当てられます。
このDNS名を利用してWebサイトへアクセスすることもできますが、実際のWebサービスでは、独自ドメインを設定し、HTTPSで通信を暗号化する構成がよく利用されます。
この記事では、Amazon Route 53とAWS Certificate Manager(ACM)を利用して、ALBに独自ドメインを設定し、HTTPSでアクセスできるようにする方法を紹介します。
この記事でできること
- Route 53で独自ドメインをALBに紐付ける
- ACMでSSL/TLS証明書を発行する
- ALBにHTTPSリスナーを追加する
- 独自ドメインへHTTPSでアクセスできることを確認する
この記事の対象者
- AWSを学び始めた方
- Route 53やACMを初めて利用する方
- ALBを独自ドメイン・HTTPSで公開する方法を知りたい方
Route 53・ACM・ALBの役割
| サービス | 役割 |
|---|---|
| Route 53 | 独自ドメインとALBを紐付けるDNSサービス |
| ACM | HTTPS通信で利用するSSL/TLS証明書を発行・管理するサービス |
| ALB | HTTP/HTTPSリクエストを受け付け、ターゲットへ振り分けるロードバランサー |
ポイント
Route 53が「どこへ接続するか」を案内し、ACMが「HTTPS通信に必要な証明書」を用意し、ALBが実際にHTTPSリクエストを受け付けます。
1. 今回試す内容
今回のハンズオンでは、作成済みのALBに独自ドメインを設定し、その後HTTPS化します。
↓
Route 53で独自ドメインを設定
↓
ACMでSSL/TLS証明書を発行
↓
ALBにHTTPSリスナーを追加
↓
独自ドメインへHTTPSでアクセス
2. 事前確認
今回のハンズオンでは、事前にターゲットグループとALB(Application Load Balancer)を作成していることを前提とします。
まず、ALBの詳細画面に表示されているデフォルトDNS名へHTTPでアクセスし、Webページが正常に表示されることを確認します。
事前にアクセスできない場合
独自ドメインやHTTPSの設定を行う前に、ALB、ターゲットグループ、EC2、セキュリティグループなどの設定を確認してください。
3. Route 53で独自ドメインを設定する
手順1:Route 53を開く
- AWSマネジメントコンソールへログインします。
- 「Route 53」を開きます。
- 左側メニューから「ホストゾーン」を選択します。
手順2:使用するホストゾーンを選択する
ホストゾーン一覧から、今回使用するドメインを選択します。
今回のハンズオンでは、用意されている ojt.yaz.co.jp のホストゾーンを使用します。
手順3:ALB向けのレコードを作成する
ホストゾーンを開いたら、「レコードを作成」をクリックします。
| 設定項目 | 設定内容 |
|---|---|
| レコード名 | alb-[name] |
| エイリアス | 有効化(トグルをON) |
| トラフィックのルーティング先 | Application Load Balancer と Classic Load Balancer へのエイリアス |
| リージョン | ALBを作成したリージョン |
| ロードバランサー | 作成済みのALB |
設定内容を確認し、「レコードを作成」をクリックします。
エイリアスレコードとは?
Route 53では、ALBなどのAWSリソースをエイリアスレコードのルーティング先として指定できます。これにより、独自ドメインへのアクセスをALBへ向けることができます。
手順4:独自ドメインからアクセスする
レコード作成後、ブラウザから次の形式でアクセスします。
http://alb-[name].ojt.yaz.co.jpWebページが正常に表示されれば、Route 53を利用した独自ドメインの設定は完了です。
4. ACMでSSL/TLS証明書を発行する
手順1:証明書をリクエストする
- AWSマネジメントコンソールから「AWS Certificate Manager(ACM)」を開きます。
- 「証明書をリクエスト」をクリックします。
- 「パブリック証明書をリクエスト」を選択し、「次へ」をクリックします。
手順2:完全修飾ドメイン名(FQDN)を入力する
完全修飾ドメイン名(FQDN)には、Route 53で設定した独自ドメインを入力します。
alb-[name].ojt.yaz.co.jp入力内容を確認し、「リクエスト」をクリックします。
手順3:Route 53でドメインを検証する
作成した証明書の詳細画面を開き、「ドメイン」セクションにある「Route 53でレコードを作成」をクリックします。
対象ドメインにチェックが入っていることを確認し、「レコードを作成」をクリックします。
Route 53にDNS検証用のレコードが追加されます。
証明書がすぐに発行されない場合
DNS検証には少し時間がかかる場合があります。ACMの証明書ステータスが「発行済み」になるまで待ちます。
5. ALBにHTTPSリスナーを追加する
手順1:対象のALBを開く
- EC2コンソールを開きます。
- 左側メニューから「ロードバランサー」を選択します。
- 今回使用しているALBを選択します。
手順2:HTTPSリスナーを追加する
「リスナーとルール」タブを開き、「リスナーの追加」をクリックします。
| 設定項目 | 設定内容 |
|---|---|
| プロトコル | HTTPS |
| ポート | 443 |
| デフォルトアクション | 作成済みのターゲットグループへ転送 |
| 証明書 | ACMで先ほど作成した証明書 |
設定内容を確認し、「リスナーの追加」をクリックします。
6. セキュリティグループを確認する
ALBにHTTPSリスナーを追加しても、ALBのセキュリティグループで443番ポートへの通信が許可されていない場合、HTTPSでアクセスできません。
ALBに設定しているセキュリティグループのインバウンドルールを確認し、必要に応じてHTTPS通信を許可します。
| 項目 | 内容 |
|---|---|
| タイプ | HTTPS |
| プロトコル | TCP |
| ポート | 443 |
注意
実際の環境では、送信元を必要以上に広く設定せず、要件に合わせたアクセス範囲を設定してください。
7. HTTPSでアクセスできることを確認する
すべての設定が完了したら、ブラウザから次の形式でアクセスします。
https://alb-[name].ojt.yaz.co.jpWebページが正常に表示され、HTTPSによる保護された通信になっていることを確認します。
ここまでで完成です
Route 53による独自ドメインの設定と、ACM・ALBを利用したHTTPS化が完了しました。
8. 今回の構成を整理する
今回設定した内容を、各サービスの役割ごとに整理すると以下のようになります。
| サービス | 今回行った設定 | 役割 |
|---|---|---|
| Route 53 | ALBへのエイリアスレコードを作成 | 独自ドメインからALBへアクセスできるようにする |
| ACM | SSL/TLS証明書を発行 | ALBのHTTPSリスナーで使用する証明書を管理する |
| ALB | HTTPS:443のリスナーを追加 | HTTPSリクエストを受け付け、ターゲットグループへ転送する |
| セキュリティグループ | HTTPS:443の通信を許可 | ALBへのHTTPS通信を許可する |
通信の流れ
ユーザーが独自ドメインへアクセスすると、Route 53によってALBへ名前解決されます。ALBはACMで発行したSSL/TLS証明書を利用してHTTPS通信を受け付け、受け取ったリクエストをターゲットグループへ転送します。
9. うまくアクセスできない場合
独自ドメインでアクセスできない
Route 53のレコード名、エイリアス先のALB、ALBを作成したリージョンが正しいか確認します。
ACMの証明書が「保留中の検証」のまま
Route 53にDNS検証用のレコードが作成されているか確認します。作成直後の場合は、少し時間を置いてから再度確認します。
HTTPではアクセスできるがHTTPSではアクセスできない
ALBにHTTPS:443のリスナーが追加されているか、ACM証明書が設定されているか、セキュリティグループで443番ポートが許可されているか確認します。
まとめ
今回確認したこと
- Route 53で独自ドメインをALBへ紐付ける方法
- ACMでSSL/TLS証明書を発行する方法
- Route 53を利用したDNS検証の方法
- ALBにHTTPS:443のリスナーを追加する方法
- 独自ドメインへHTTPSでアクセスするまでの流れ
Route 53、ACM、ALBを組み合わせることで、AWS上のWebサービスを独自ドメインかつHTTPSで公開できることを確認できました。
それぞれの手順だけでなく、「Route 53がアクセス先を案内し、ACMの証明書を使ってALBがHTTPS通信を受け付ける」という役割の違いを意識すると、構成を理解しやすくなります。
同じカテゴリーの記事
同じカテゴリの記事を読む