4
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 1 year has passed since last update.

NLBのターゲットとしてALBを指定し、ALBでTLS終端させる

Last updated at Posted at 2022-10-15

初めに

以前書いた記事では、ウェブサーバに HTTP でアクセスしようとした場合には、NLB の TLS:443 リスナーにリダイレクトし、ALB を経由せず NLB で TLS 終端していました。

しかし ALB 型のターゲットグループをそれぞれ 80 番ポート用と 443 番ポート用の 2 つ用意することで、NLB に TCP:80、TCP:443 いずれのアクセスに対しても ALB で TLS 終端できることがわかりました。

image.png

手順

CloudFormation で基本的なリソースを作成します。以下のテンプレートを使用します。

パラメータには、インスタンスログイン用の IP アドレスと、ALB に設定するSSL証明書の ARN を入力します。

4.png

以下のようにステータスが「CREATE_COMPLETE」になったら次に進みます。

image.png

NLB と同一の AZ でインスタンスを作成します。ここでは NLB の AZ は ap-northeast-3c です。

image.png

インスタンス作成時、以下のようにサブネット(AZ が ap-northeast-3c であることを確認)、セキュリティグループを選択します。

1.png

インスタンス作成後、Apache をインストールして起動します。

sudo yum update -y
sudo yum install -y httpd
sudo systemctl start httpd

index.html ファイルを /var/www/html/index.html として配置します。

index.html
<html>
  <body>
    <h1>web-server-1</h1>
    <div id="datetime"></div>
  </body>
  <script>
    const target = document.getElementById("datetime");
    target.innerHTML = new Date();
</script>
</html>

ターゲットグループ 「nlb-alb-demo-tg」 にインスタンスを登録します。以下の「ターゲットの登録」をクリック後、作成したインスタンスを選択し、登録を行います。

2.png

NLB の DNS 名をコピーします。

3.png

ブラウザに貼り付けて確認します。

image.png

ログ確認

上記アクセス時のログの一部を抜き出しました。
1 行目のログは NLB の 80番ポートにアクセスを行い、443 番ポートにリダイレクトされていることがわかります。
2 行目のログは、NLB の 443 番にアクセスを行い、ALB の SSL 証明書が使用されていることがわかるので、ALB で TLS 終端していることがわかります。

"GET","http://nlb-alb-demo-nlb-372743b8131b44f6.elb.ap-northeast-3.amazonaws.com:80/", ...省略... ,"redirect","https://nlb-alb-demo-nlb-372743b8131b44f6.elb.ap-northeast-3.amazonaws.com:443/"
"GET","https://nlb-alb-demo-nlb-372743b8131b44f6.elb.ap-northeast-3.amazonaws.com:443/", ...省略..., "arn:aws:acm:ap-northeast-3:000000000000:certificate/f1d3ac26-51b3-4009-8e79-30066a6ebbb6"

その他メモ

テンプレート作成中に気になった部分をメモとして残しておきます。

# 以下は !Ref ALB で取得できるが、以下の書き方でも ARN を取得可能
LoadBalancerArn: !Sub arn:aws:elasticloadbalancing:${AWS::Region}:${AWS::AccountId}:loadbalancer/${ALB.LoadBalancerFullName}

参考資料

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