スキップしてコンテンツを表示

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

所要時間2分
0

Application Load Balancer を使用して、あるドメイン名から別のドメイン名にトラフィックをリダイレクトしたいです。

簡単な説明

Application Load Balancer を使用してドメインを別のドメインにリダイレクトするには、Amazon Elastic Compute Cloud (Amazon EC2) コンソールでリスナールールを作成します。Application Load Balancer は、ドメイン間および HTTP から HTTPS へのリダイレクトをサポートします。

この設定では、Amazon Simple Storage Service (Amazon S3) ではなく、Application Load Balancer を使用することをおすすめします。

解決策

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

Amazon EC2 コンソールでリスナールールを作成するには、次の手順を実行します。

  1. 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 リダイレクトが必要な場合、リダイレクトはターゲットアプリケーションを経由する必要があります。

関連情報

Amazon S3 と Amazon Route 53 を使用して、apex ドメインをそのサブドメインまたは任意の別のドメインにリダイレクトする方法を教えてください

Application Load Balancer で、SNI を使用したスマートセレクションによる複数の TLS 証明書がサポートされるようになりました

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

関連するコンテンツ