ALB(AWS Application Load Balancer)の設定だけでhttpのアクセスをhttpsにリダイレクトする方法を説明します。
ちなみに間違いやすいですがリスナーによるリクエストのプロトコル変更ではなくリダイレクトとなります。
下記のようにALBにリスナーhttp(ポート80)を追加し、このリスナーにhttps(ポート443)へリダイレクトする設定を行うことで実現できます。
ALBのリスナーには「ターゲットグループへの転送」、「リダイレクト」、「固定レスポンス」の機能があり「リダイレクト」機能を設定します。
下記のように80のリスナーを追加し、デフォルトのホスト、パス、クエリでリダイレクトの設定を行います。
ステータスコードは永続的なリダイレクトとなるため301を設定します。
リスナーを追加すると下記のようにリダイレクト先設定がされます。
「https://#{host}:443/#{path}?#{query}」
これでhttpでアクセスすると自動でhttpsにリダイレクトされるようになります。