5

現在、我々は、メソス - マラソンクラスターで動作する200個のコンテナー(いくつかの異なるアプリケーション)を持っています。これはHAproxyインスタンスの背後にあり、HTTP/HTTPSプロトコルで動作します。AWS ALB(Application Load Balancer)と連携するために必要なHAProxyの設定は何ですか?

インターネット - >AWS ELB - > HAProxy - >ドッカーコンテナ

今、私たちはのWebSocketプロトコル上で実行するには1つの既存のアプリケーションを作成するための要件を持っています。これを達成するために新しいAWS ALBを追加することを考えています。したがって、セットアップは、私たちがHAproxyは、現在のHTTP/Sで動作し、また、新しいWebSocketをすることを作るためにどのような設定を必要とします

 (WebSocket) 
Internet --> new AWS ALB --> HAProxy --> Docker containers 

     (HTTP/S) 
Internet --> AWS ELB --> HAProxy --> Docker containers 

のようになりますか?

答えて

0

サーバは、1つのIPアドレスあたり65,536個のソケットを処理できます。したがって、 の数量は、追加のネットワーク インターフェイスをサーバーに追加することで簡単に拡張できます。一方、サーバー上に存在する接続の数を追跡することは非常に重要です。 制限を超えると、 は他のTCP接続で多くの問題を引き起こす可能性があります(たとえば、はssh経由でサーバーに接続できません)。したがって、アプリケーションコード内でノードごとに WS接続を制限することをお勧めします。

HAProxyは、プライベートIPアドレスの束を作成し、我々は次のステップを通過しなければならない以上65000の接続::

  1. を扱うようにします。これを行うには、Amazon インスタンス - >アクション - >ネットワーク - >プライベートIPアドレスの管理を選択します。我々は 3 IPアドレス:192.168.1.1、192.168.1.2、192.168.1.3を追加しました。 IPは実際の アプリケーションサーバーと同じサブネットワークにある必要があることを覚えておいてください。 SSHと実行以下のコマンドを経由してあなたのHAProxyインスタンスへ
  2. 接続を:

    $> ifconfig eth0:1 192.168.1.1

    $> ifconfig eth0:2 192.168.1.2

    $> ifconfig eth0:3 192.168.1.3

このインスタンスに3つの仮想ネットワークインターフェイスを追加します。

  1. HAProxyを設定します。ここでは3つの ノード受諾WS接続用haproxy.cfgファイルからセクションです:

    は聞くがerlang_front:8888

    mode  http 
    
    balance  roundrobin 
    
    timeout connect 1s 
    
    timeout queue 5s 
    
    timeout server 3600s 
    
    option httpclose 
    
    option forwardfor 
    
    server  xxxxx-1 192.168.0.1:8888 source 192.168.1.1 
    
    server  xxxxx-2 192.168.0.2:8888 source 192.168.1.2 
    
    server  xxxxx-3 192.168.0.3:8888 source 192.168.1.3 
    
  2. 以上65,536のWebSocket接続、および接続の制限を扱うことができる

今HAProxy仮想ネットワークインターフェイスを追加することで簡単に増やすことができます。また、新しい接続をかなり高速に確立することができます。

また、あなたではなく、古典的な弾性ロードバランサやアプリケーションのロードバランサの新しいネットワークロードバランサを使用して恩恵を受けるようですねthis Blog Post

-1

を参照してください。

NLBは(AWSによれば)毎秒数百万の要求を処理でき、長期間の接続をサポートします。

関連する問題