Posted at

IDCFクラウド②Webサーバを立てて負荷分散を設定してアクセスしてみる

More than 3 years have passed since last update.


サーバ構築


任意のWebサーバ2台を構築する

ここでは、サーバ構築ではなくネットワーク設定を備忘に残したいのでWebサーバの手順はざっくり書きます。


ざっくり

・light.S1 (最低)スペックのサーバを作成(スペックは任意)

・下記手順のファイアウォール、ポートフォワードにて ssh の穴開けを行う

・ローカルのターミナルで ssh 接続 ssh -l root [IDCFクラウドで取得したIPアドレス]:[ファイアウォールで開けたポート]

・Web サーバをインストール

 $ yum -y install httpd

・Web サーバを起動

  $ apachectl start


IPアドレス取得

※一番最初は1IPアドレス無料で使用可能

・TOPメニュー「東日本リージョン」→「コンピューティング」→左メニュー「IPアドレス」ネットワークを作成する

(自分でやれてないのでざっくり記載します)


ファイアウォール


1サーバの1ポートにアクセスする毎に1つのファイアウォール設定値を設定します

・左メニュー「IPアドレス」→ネットワーク作成済みの場合「IPアドレス名」欄に設定したIPアドレス名がリンクで表示される

・作成したIPアドレス名リンクをクリック

・ネットワークメニューから「ファイアウォール」をクリック

・下表の情報を入力して「+」をクリック

入力項目
設定値・説明

コメント
どのサーバのどのポート(サービス)にアクセスできるかわかる名称にする

ソースCIDR
My IP を選択

タイプ
Custom TCP

ポートレンジ
クラウド外部(インターネット)からクラウドにアクセスするためのポート番号。※httpなら80、sshなら22など

・作成した目的とポートはメモしておく。


ポートフォワード


1つのファイアウォール設定値に対して1つのポートフォワードを設定します

・ネットワークメニューから「ファイアウォール」をクリック

・下表の情報を入力して「+」をクリック

入力項目
設定値・説明

コメント
どのサーバのどのポート(サービス)にアクセスできるかわかる名称にする

プライベートポート
Custom TCP で任意の番号を指定可能。構築したサーバに対して外部からアクセスできるようにしたいポート番号。※httpなら80、sshなら22など

パブリックポート
クラウド外部(インターネット)からクラウドにアクセスするためのポート番号。(上記ファイアウォールで設定した「ポートレンジ」の値を入力)

仮想マシン
作成済みのサーバを選択


ロードバランサ


2つ以上の同目的サーバに負荷分散を設定します

・ネットワークメニューから「ファイアウォール」をクリック

・下表の情報を入力して「+」をクリック

入力項目
設定値・説明

管理名
どのポート(サービス)の負荷分散であるか識別できるアルファベット名称

パブリックポート
クラウド外部(インターネット)からクラウドにアクセスするためのポート番号。(上記ファイアウォールで設定した「ポートレンジ」の値を入力)

プライベートポート
構築したサーバに対して外部からアクセスできるようにしたいポート番号。※httpなら80、sshなら22など

アルゴリズム
roundrobin:対象サーバを順番にアクセス(その他sourecとleastconn選択可)

接続維持
環境により選択してください。今回私達は「なし」で設定しました。

仮想マシン
LB対象のノード(サーバ)を2つ以上選択。


負荷分散の確認方法

例:webサーバに対して負荷分散を経由して2つ以上のサーバにブラウザやリクエストを飛ばして通信できることを確認


webサーバ側の準備

・対象サーバの起動、サービスも起動している状態で2台以上の各々のサーバにコンソールで ssh 接続する。

・アクセスログなどWebサーバのアクセスログを tail する。

 $ tail -f /etc/htdocs/logs/access.log

・サービス起動

 $ apachectl start


Web ブラウザからアクセスする

・http://[IDCFクラウドで割当られたグローバルIP]:[ファイアウォールで設定したポート番号(80なら省略可)

・1リクエストにつきリクエスト本体+画像ファイル等静的コンテンツ含むアクセスがサーバのアクセスログに流れると思います。


Apache Bench でアクセスする

・ ab とコマンドを打って入ってなさそうなら

  yum install httpd-tools

  ※Mac OS 10.新しいものならだいたい Apache Bench は入っていると思います。

 $ ab -n 100 -c 10 http://[IDCFクラウドで割当られたグローバルIP]:[ファイアウォールで設定したポート番号(80なら省略可)

・全サーバのアクセスログに対して均等にアクセスログが流れると思います。