はじめに
phoenixNAPベアメタルクラウドで事前構成されたシングルCPUインスタンスは、負荷分散のための理想的なソリューションです。ソフトウェアロードバランサーは要求の厳しいハードウェアを必要とせず、最も安価なBMCインスタンスで十分です。
このチュートリアルでは、phoenixNAPのs0.d1.smallBMCサーバーインスタンスでのロードバランサーのセットアップ例について説明します。
前提条件
- ベアメタルクラウド(BMC)アカウント。
- sudo権限を持つコマンドライン/ターミナルへのアクセス。
- 安定したインターネット接続を使用したブラウザへのアクセス。
負荷分散とは何ですか?
負荷分散により、大量のトラフィックが複数のサーバーに分散され、単一のインスタンスが過負荷にならないようになります。負荷分散の最終目標は、全体的な処理効率とユーザーエクスペリエンスの向上です。
ロードバランサーはバックエンドサーバーの状態を監視し、最適なリクエストとサーバーリソースの処理を保証します。たとえば、ロードバランサーは、サーバーがリクエストを受信できない場合にトラフィックを再ルーティングするのに役立ちます。
ロードバランサーとしてのS.0BMCインスタンス
ソフトウェアベースのロードバランサーは、LinuxプロセスとしてBMCサーバーに簡単にセットアップできます。たとえば、HAproxyサーバーユーティリティは、BMCインスタンスにロードバランサーとしてインストールおよび構成するのが簡単です。
セットアップの構造は次のとおりです。
- 小さなBMCインスタンスはロードバランサーとして機能します。
- 3つのテストサーバーはサーバーファームとして機能します。
指示に従って、ロードバランサーを使用してサンプルのローカルWebアプリケーションをセットアップします。
ステップ1:SSHキーを生成する
SSH経由でBMCに接続するために使用するマシンでキーペアを生成します。使用するBMCポータルに保存されたキーがある場合は、この手順をスキップしてください。
1.ターミナルを開きます( CTRL + ALT + T 。
2.新しいSSHキーを生成します:
ssh-keygen
このコマンドはkeygenプロセスを開始します。
3.手順に従ってキーペアを作成します。 id_rsaの下に保存したい既存のキーがある場合 、キー名を変更します。それ以外の場合は、 Enterを押します デフォルトの場所を選択し、既存のキーを上書きします。
セキュリティを強化するためにパスフレーズを追加します。
プロセスが完了すると、出力にキーペアの場所とランダムアート画像が出力されます。
4. id_rsa.pubを開きます Viを使用したファイル:
sudo vi ~/.ssh/id_rsa.pub
5.ファイルの内容をコピーして、エディターを終了します。
:q
次の手順では、 id_rsa.pubを使用します 内容。
ステップ2:s0.d1.small BMCインスタンスをデプロイし、SSH経由で接続する
1.phoenixNAPクライアントポータルのクレデンシャルを使用してBMCポータルにログインします。
2.[新しいサーバーの展開]をクリックします サーバー ページ。
3.場所を選択します 最初のセクションのサーバー用。直後に課金モデルを選択してください。
4. s0.d1.smallを選択します サーバーからのBMCインスタンス セクション。
5.次のセクションでオペレーティングシステムを選択します。 Ubuntu Bionicを使用しています 。 次へを押します [インスタンスの詳細]ページに進みます。
6.サーバーのホスト名とオプションの説明を入力します。
7.前のセクションで新しいキーを生成した場合は、[新しいパブリックSSHキーを追加する]をクリックします。 id_rsa.pubを貼り付けます 新しいキーを追加するためのコンテンツ。ポータルにキーを保存している場合は、保存したキー名を入力してリストから選択します。
8. IP割り当てを購入するか、既存の割り当てを割り当てます。このガイドをテストするには、1つのパブリックIPが必要であるため、 / 31 IP割り当ての最小要件。
9.詳細をもう一度確認し、[新しいサーバーの導入]をクリックします。 ボタンをクリックして、準備ができたらプロセスを完了します。
10.ホスト名を入力してBMCインスタンスを見つけ、名前をクリックしてサーバーの詳細を表示します。ステータスが電源オンと表示されると、サーバーの準備が整います。 。
割り当てられたIP パブリックIPにあります サーバーの詳細のセクション ページ。
次のステップでアドレスを使用します。
10.ターミナルで次のコマンドを実行して、マシンにSSHで接続します。
ssh [email protected]<your public IP>
出力で信頼性の確認を求められた場合は、はいと入力します 場所を既知のホストに追加し、BMCサーバーに接続します。
ステップ3:HAProxyをインストールする
1. HAProxyリポジトリを追加します:
sudo add-apt-repository ppa:vbernat/haproxy-1.8
2. Enterを押します リポジトリを追加するように求められたとき。
3.プロセスが完了したら、パッケージを更新します。
sudo apt-get update
4.最後に、次のコマンドを使用してHAProxyをインストールします。
sudo apt-get install haproxy
ステップ4:テストWebサーバーを作成する
1.サーバーとして機能する3つのディレクトリを作成します。
mkdir server{1..3}
2.サーバーごとにランディングページを作成します。
touch server{1..3}/index.html
3.各index.htmlを編集します ファイル:
sudo vi server1/index.html
4.次のコンテンツを追加します。
<!DOCTYPE html>
<html>
<title>Server 1</title>
<body>Connected!</body>
</html>
5.同じコンテンツをserver2/ index.htmlに追加します およびserver3/ index.html 。タイトルタグの内容をServer 2
に変更します およびServer 3
敬意を表して。
ステップ5:HAProxyロードバランサーを構成する
1. HAProxyのデフォルト設定を編集します:
sudo vi /etc/haproxy/haproxy.cfg
2.ファイルからすべてを削除し、次の内容を追加します。
defaults
mode http
timeout client 10s
timeout connect 5s
timeout server 10s
timeout http-request 10s
frontend myfrontend
bind 127.0.0.1:80
default_backend myservers
backend myservers
balance roundrobin
server server1 127.0.0.1:8000
server server2 127.0.0.1:8001
server server3 127.0.0.1:8002
構成ファイルには3つのセクションがあります。
defaults
以降のすべてのセクションで定義されている共有設定です。このセクションでは、一般的な接続の問題を回避するために待機時間を設定します。frontend
HAProxyがリクエストを受信するアドレスとポートを定義します。default_backend
線は、ロードバランサーが接続を中継する場所を指します。backend
次の手順で定義される、複数のサーバーのサーバーアドレスとポートを格納します。負荷分散アルゴリズムはラウンドロビンに設定されています 。
3.ファイルを保存して閉じます:
:wq
4. HAProxyを再起動して、構成を適用します。
sudo systemctl restart haproxy
出力はコンソールに何も出力しません。
ステップ6:サーバーを実行してロードバランサーをテストする
1.さらに3つのターミナルタブを開き、サーバーにログインします。
ssh [email protected]<your public IP>
これで、4つのターミナルタブが開きます。
2.各タブで、サーバーフォルダに移動します。
cd server1
cd server2
cd server3
3.異なるポートの各ターミナルタブでテストサーバーを実行します:
python3 -m http.server 8000 --bind 127.0.0.1
python3 -m http.server 8001 --bind 127.0.0.1
python3 -m http.server 8002 --bind 127.0.0.1
4. 4番目のタブで、 curl
を使用して接続をテストします :
curl 127.0.0.1:80
コマンドをさらに2回実行して、ロードバランサーが正しく機能することを確認します。
ラウンドロビン負荷分散アルゴリズムにより、要求が各サーバーに1回ルーティングされ、負荷が分散されます。
ロードバランサーとしてS.0を使用する理由
S.0 BMCサーバーをロードバランサーとして構成することは、サーバーのクラスターの速度とリソース容量を最大化するための安価な方法です。
s0.d1.smallBMCサーバーをロードバランサーとして使用する利点は次のとおりです。
- 低コスト 。インスタンスは最小で最も安価なオファーであり、構成はロードバランサーのワークロードを簡単に処理します。ユースケースに応じて、1時間ごと、1か月ごとに支払うか、延長予約を行います。
- 効果的なネットワーク過負荷処理 。汎用インスタンスは、トラフィックの多いWebサイトで一般的に使用され、すべてのリソースをバランスの取れた方法で利用します。
- セキュリティの向上と高可用性 。ネットワークは堅牢で、高速で、低遅延で、信頼性があります。さらに、各サーバーには20 GbpsのDDoS保護が付属しており、攻撃を受けたときに最大の可用性とセキュリティを確保します。