Application Load Balancer を使用して、ドメインを別のドメインにリダイレクトする方法を教えてください。

所要時間2分
0

Application Load Balancer を使用して、ドメインを別のドメインにリダイレクトしたいと考えています。

簡単な説明

Application Load Balancer サービスは、ドメイン名のリダイレクトと HTTP から HTTPS へのリダイレクトをサポートしています。Application Load Balancer を指すドメインがある場合は、Application Load Balancer を使用してドメインを設定します。

**注:**Amazon Simple Storage Service (Amazon S3) の代わりに Application Load Balancer を使用してドメインを設定するのがベストプラクティスです。

解決策

**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーを受け取った場合は、最新の AWS CLI バージョンを使用していることを確認してください

設定の一部として Application Load Balancer を使用すると、ドメインを別のドメインにリダイレクトできます。

  1. Amazon Elastic Compute Cloud (Amazon EC2) コンソールを開きます。
  2. ナビゲーションペインの [ロードバランシング] で、[ロードバランサー] を選択します。
  3. ロードバランサーを選択し、[リスナー] タブを選択します。
  4. 使用するロードバランサーリスナーの [ルールの表示/編集] を選択します。
  5. [ルールを追加] アイコン (プラス記号) を選択します。
  6. [ルールを挿入] を選択します。
  7. [条件を追加] を選択します。
  8. 条件セクション (IF) で、[条件を追加] を選択します。次に、以下の操作を実行します。
    [ホストヘッダー] を選択し、ホスト名 (example.com など) を入力します。
    保存するには、チェックマークアイコンを選択します。
  9. アクションセクション (THEN) で、[アクションを追加] を選択します。次に、以下の操作を実行します。
    [リダイレクト先] を選択します。
    ユースケースに応じて、プロトコルとポートを指定します。
    元のホスト、パス、クエリ****をカスタムホスト、パス、クエリに変更します。
    ホスト には、「example2.com」 と入力します。
    パスクエリについては、デフォルト値をそのまま使用します (ユースケースで変更が必要な場合を除く)。
    レスポンスHTTP 301 "Permanently moved" または HTTP 302 "Found" に設定します。
    保存するには、チェックマークアイコンを選択します。
    これで THEN セクションが表示されます。
    https://example2.com:443/#{path}?#{query} にリダイレクトする
    ステータスコード: HTTP_301
  10. [保存] を選択します。

**注:**両方のドメインが同じ Application Load Balancer を指している場合は、以下のタスクのいずれかを実行します。

  • 両方のドメインに別々の証明書を用意してください。
  • サブジェクトの別名 (SAN) 証明書を使用してドメインを検証します。

リダイレクトが機能していることを確認するには、次の手順を実行します。

1.AWS CLI では、次の curl 関数を使用します。

curl
    -Iv https://example.com -L
* Rebuilt URL to: https://example.com/
. . .
* Connected to example.com (1.2.3.4) port 443 (#0)
<SSL handshake>
 > Host: example.com.   ------> Host name is example.com
 > User-Agent: curl/7.61.1
 >
     Accept: */*>
 * Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
 < HTTP/2 301       ------> ALB does redirection
 < server: awselb/2.0
 < date: Fri, 06 Mar 2020 09:18:33 GMT
 < content-type: text/html
 < content-length: 150

 < location: https://example2.com:443/.   ----> redirected to "example2.com"
 <
 * Issue another request to this URL: 'https://example2.com:443/'. ------> Curl initiates another request that is to example2.com
 *   Trying 34.195.219.169...

 * TCP_NODELAY set
 <SSL handshake>
 > Host: example2.com.   ------> Host name has changed to example2.com
 > User-Agent: curl/7.61.1
 > Accept: */*
 >
 * Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
 <
     HTTP/2 200 ----> We got a response

2.インターネットブラウザで「example.com」と入力し、それが example2.com にリダイレクトされていることを確認します。

: Application Load Balancer は 301 と 302 のリダイレクトのみをサポートします。これらのリダイレクトにより、クライアントは後続のリクエストで HTTP メソッドを POST から GET に変更できます。307 リダイレクトが必要な場合は、リダイレクトはターゲットアプリケーションを経由する必要があります。

関連情報

Simple Storage Service (Amazon S3) と Amazon Route 53 を使用して apex ドメインを別のドメインにリダイレクトする方法はありますか。

Application Load Balancer は、サーバー名表示 (SNI) を使用したスマートセレクションによる複数の TLS 証明書をサポートするようになりました

AWS公式
AWS公式更新しました 4ヶ月前
コメントはありません

関連するコンテンツ