HAProxyについて
HAProxyは、TCPおよびHTTPプロトコルに基づくリクエストを複数の
サーバに効果的に分散させるフリーかつオープンソースの
ソフトウェアです。このツールは、
高可用性のロードバランサーおよび
プロキシサーバとして設計されており、無駄のないリソース利用が特徴です。
C言語で実装されており、その結果としてCPUとメモリの使用率が低く、処理速度が非常に速いことが評価されています。
HAProxyは、
GoDaddyや
GitHub、
Bitbucket、
Stack Overflow、
Reddit、Slack、Speedtest.net、
Tumblr、
Twitter、Tuentiなど、多くの著名なウェブサイトで広く採用されています。また、
Amazon Web ServicesのOpsWorksサービスでも利用されています。
歴史
HAProxyは2000年に、
LinuxカーネルのコントリビュータであるWilly Tarreauによって開発されました。Tarreauは、その後もこのプロジェクトのメンテナンスを続けており、今でも重要な役割を担っています。2013年には、
ソフトウェアの開発を永続的に行い、オープンソースコミュニティとの連携を深めるため、HAProxy Technologies, LLCが設立されました。この会社は商用版のHAProxy Enterpriseや、ALOHAというアプリケーションベースのアプリケーションデリバリーコントローラーを提供しています。さらに、HAProxyの機能を拡張するモジュールや技術サポートも行っています。
機能
HAProxyの主な機能には次のようなものがあります:
- - ロードバランシング: Layer 4(TCP)およびLayer 7(HTTP)でのリクエスト分散。
- - URLのリライト: ユーザーからのリクエストURLを別のURLに変更する機能。
- - レート制限: サーバーへのリクエスト数を制御する機能。
- - SSL/TLS終端: 暗号化された通信を解読・処理する機能。
- - Gzip圧縮: データ転送量を削減するための圧縮機能。
- - Proxy Protocolのサポート: プロキシサーバーを経由する際の接続元IPアドレスの保持。
- - ヘルスチェック: サーバの稼働状態を常に監視する機能。
- - コネクションおよびHTTPメッセージのログ: 詳細なログ取得機能。
- - HTTP/2|HTTP_2: 新しいバージョンのHTTPプロトコルのサポート。
- - マルチスレッド: 複数のスレッドを利用した並列処理。
- - Hitless Reloads: システムの稼働を維持しながら設定の再読み込みを可能にする機能。
- - gRPCのサポート: Googleが開発したRPCフレームワークのサポート。
- - LuaおよびSPOEのサポート: 拡張機能を追加するためのサポート。
- - APIのサポート: 様々な外部システムとの連携を容易にする機能。
- - Layer 4でのリトライ: 接続失敗時の自動再試行。
- - 簡易的なサーキットブレーカー: 障害発生時の処理の中断。
性能
HAProxyは、デュアルコアのOpteronまたは
Xeonプロセッサを搭載した
サーバ上で動作する場合、
Linux環境において1秒あたりのヒット数が一般に15000から40000に達し、2 Gbit/sの接続を容易に処理することができます。これにより、高負荷環境でも十分なパフォーマンスを発揮することが可能です。
HAProxyに似た用途を持つ
ソフトウェアとして、
Nginx、Hipache、Gearman、Poundなどがあります。
関連項目
脚注
外部リンク