はじめに
今日は、パブリックALB(Application Load Balancer)→プライベートEC2を使用して簡単なHTTPSサイトを作成してみます。
これは一般的に使用されるシステムです。
前提
ALBを構築する前に、次のリソースを作成しました
● Route53パブリックホストゾーンを作成しました。
● ACMのパブリックSSL証明書が発行されました。 (https://qiita.com/tannh/items/6314601fb2121e30da6b)
● プライベートEC2インスタンスでApache WebServer(HTTP:80)も作成しました。(パブリックIPアドレスがありません)
手順
1. ALBのセキュリティグループ作成
まず、ALBのセキュリティグループを作成する必要があります
ALBのセキュリティグループは、インターネットからALBのHTTPS:443およびHTTP:80ポートへの接続を許可します。
次に、EC2インスタンスのセキュリティグループがALBからの接続を許可していることを確認します。
ALBがEC2インスタンスに接続できない場合、ヘルスチェックは失敗し、クライアントはWebサイトのコンテンツを表示できなくなります。
2. ALBのターゲットグループ作成
各ターゲットグループは、1 つ以上の登録されているターゲットにリクエストをルーティングするために使用されます。
3. ALB作成
これでALBの生成が開始されます。
パブリックALBの場合、少なくとも2つのパブリックアベイラビリティーゾーン(Availability Zones)を定義する必要があります
手順[1]と[2]で作成したセキュリティグループとターゲットグループを設定します
ACM( https://qiita.com/tannh/items/6314601fb2121e30da6b )で発行されたSSL証明書を選択します
4. Route53でDNSレコード作成
事前に準備したRoute53 Hosted Zoneで、ALBのドメイン名を指すAレコード(エイリアス)を作成します。
5. 結果
ドメイン名を使用したALBへのHTTPS接続が成功しました。
6. (Optional) HTTP:80にアクセスするときにリダイレクト設定
ユーザーがorigin.sample.linkのようなURLをブラウザに入力した場合、一部のブラウザはHTTP:80に接続します。
その後、接続エラーが発生します。
したがって、ユーザーがHTTP:80にアクセスすると、リダイレクトがHTTPS:443に設定されます。
ドキュメント参照
[What is an Application Load Balancer?]
https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html
[Create an Application Load Balancer]
https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html
[Create an HTTPS listener for your Application Load Balancer]
https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html
[Create a target group]
https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-target-group.html