実践活用ガイド - Webサーバーとアプリケーションの構築

スケーラブルなWebサイトを構築したい(Web2台構成)

お客さま自身で構築した仮想マシンをテンプレート化して保存しておくことで、同じ設定の仮想マシンを簡単に複製(増設)することが可能です。
本マニュアルでは、活用マニュアル「Webサイトの本番環境を構築したい(Web1台構成)」で作成した「web01」のスナップショットからテンプレートを作成し、そのテンプレートからもう1台仮想マシンを作成して2台構成で運用するケースを紹介します。

1台目と同様に2台目のサーバーにアクセスできるようにファイウォールとポートフォワードの設定を変更します。
そして、web2台構成で運用するサーバーをロードバランサーに登録してスケーラブルにサイト運用をする手順を紹介します。

1. 事前準備

1. スナップショットを作成する前に、複製元の仮想マシン固有の設定の無効化を行います。
web01の設定例は以下のとおりです。

// 「データディスクの追加・アタッチ方法」※1の3-⑥の操作で追加した行をコメントアウト
[root@web01 ~]# vim /etc/fstab
 
  
#UUID=181a3582-5212-4b53-8e28-94c711b0f7b4 /data xfs defaults 0 0
 
// 「Mackerelを使ったリソース監視」※2で設定したMackerelエージェントのIDを上書きされないようにファイル名を変更
[root@web01 ~]# mv /var/lib/mackerel-agent/id /var/lib/mackerel-agent/id.backup
 
// 念のためメモリーの内容をディスクに書き込む
[root@web01 ~]# sync
							

※1:「データディスクの追加・アタッチ方法」をご参照ください。
※2:「Mackerelを使ったリソース監視」をご参照ください。


2. 運用的に可能であれば、複製元の仮想マシンにて下記を実施します。

// SSHホスト鍵の削除※
[root@web01 ~]# rm -f /etc/ssh/ssh_host_*

// キャッシュをクリア
[root@web01 ~]# yum clean all

// コマンド実行履歴の消去
[root@web01 ~]# history -c
							

※複製元・複製先仮想マシンで同じSSHホスト鍵にならないよう対応します。本対応が難しい場合、後述の複製先の仮想マシンにて同様の対応をご検討ください。
※SSHホスト鍵を再作成すると、クライアントからログインする際に「SSHホスト鍵が一致しない」という警告/エラーが発生することがあります。フィンガープリントを確認いただき、SSHホスト鍵の更新を行ってください。

2. スナップショットの作成

1. IDCFクラウドにログインし、クラウドコンソールのトップページのサービス一覧から、[コンピュート]>[ボリューム]とクリックし、「ボリューム」画面に移動します。


2. 表示されたボリューム一覧より、「ボリューム名」「アタッチ先」「タイプ」等から、スナップショット対象のボリュームを確認し、「ボリューム名」をクリックします。


3. ボリューム詳細画面にて[スナップショット]をクリックします。


4. [スナップショット作成]をクリックします。


5. 「スナップショットを作成しますか?」というポップアップが表示されるので[はい]をクリックします。


6. 「作成中」と表示されるので、数分待ちます。


7. 「スナップショットの作成が完了しました」と表示されます。


8. [<ボリューム名>のスナップショット一覧へ]もしくは、左メニューから[スナップショット]をクリックします。


9. スナップショット一覧より、対象スナップショットのステータスが「BackedUp」と表示されることを確認します。


以上で、スナップショットの作成は完了です。

3. テンプレートの作成

1. 左メニューから[スナップショット]をクリックし、スナップショット一覧より、上記手順で作成したスナップショットの「スナップショット名」をクリックします。


2. スナップショット詳細画面にて[テンプレート作成]をクリックします。


3. 必要な情報を入力します。
入力例を以下に示します。

項目 設定内容
テンプレート名 WebTemplate
説明 web01のテンプレート
OSタイプ ※お使いのOSタイプと同じもの、もしくは近いものをご選択ください。
パスワードリセット 有効
ダイナミックスケール 有効


4. [作成する]をクリックします。


5. 「テンプレートを作成してもいいですか?」というポップアップが表示されるので[はい]をクリックします。


6. 「作成中」と表示されるので、待ちます。


7. 「テンプレートの作成が完了しました。」と表示されます。


8. [テンプレート一覧へ]もしくは、左メニューから[テンプレート]をクリックします。


9. テンプレート一覧より、作成したテンプレートを確認します。


以上で、テンプレートの作成は完了です。

10. 必要に応じて、「1. 事前準備」で行った設定変更を元に戻します。

// コメントアウトした行をコメントイン
[root@web01 ~]# vim /etc/fstab
UUID=181a3582-5212-4b53-8e28-94c711b0f7b4 /data xfs defaults 0 0

// ファイル名を元に戻す
[root@web01 ~]# mv /var/lib/mackerel-agent/id.backup /var/lib/mackerel-agent/id

// SSHホスト鍵を再作成※
[root@web01 ~]# systemctl restart sshd
							

※SSHホスト鍵を再作成すると、クライアントからログインする際に「SSHホスト鍵が一致しない」という警告/エラーが発生することがあります。フィンガープリントを確認いただき、SSHホスト鍵の更新を行ってください。

4. マイテンプレートから仮想マシンを作成

以上の手順で作成したテンプレートから仮想マシンを作成します。

1. 左メニューから[仮想マシン]を選択し、[仮想マシン作成]をクリックします。


2. 「仮想マシン作成」画面で、次のように設定します。

項目 設定内容
マシンタイプ Light.S1
イメージ [My Template] - [WebTemplate] ※注1
ボリューム データディスクなし(空欄のまま)
SSH Key ※注2
仮想マシン台数 1台
ネットワークインターフェース ※注3

詳細情報
 
マシン名 web02
グループ (なし)

※注1:「イメージ」の項目で「My Template」をクリックし、上記手順で作成したテンプレート「WebTemplate」を選択します。
※注2:SSH Keyの項目は、[SSHキー選択]を選び、作成済みのSSHキーを選択します。SSH秘密鍵を別途作成する場合は[作成]を選択し、生成された秘密鍵をローカルPCに保存します。詳しくは「めちゃ楽ガイド新規ウィンドウを開きます」6ページの手順3をご参照ください。
※注3:ご利用のアカウントによってネットワークインターフェースとして選択できるゾーン名が異なります。普段お使いのゾーン名をご選択ください。


3. 設定後、画面下部の[確認画面へ]をクリックします。


4. 確認画面で設定内容を確認し、画面下部の[作成]をクリックします。


5. 仮想マシン一覧に作成した仮想マシン(web02)が追加されます。


以上で、仮想マシンの作成は完了です。

5. ポートフォワードとファイアウォールの設定変更

「web01」と「web02」に同じパブリックIPアドレスでアクセスできるように、ファイアウォールとポートフォワードの設定を変更します。

1. 左メニューより[IPアドレス]を選択し、「IPアドレス」画面で表示されているIPアドレス名をクリックします。


2. IPアドレス詳細画面で[ポートフォワード]タブを選択し、次の設定を追加します。

コメント パブリックポート プライベートポート 仮想マシン
SSH-web01
Custom TCP
50001
22 web01
SSH-web02
Custom TCP
50002
22 web02


3. ポートフォワードのSSHとHTTPのルールを削除します。


4. ポートフォワードのルールは以下のようになります。


5. 同じくIPアドレス詳細画面で[ファイアウォール]タブを選択し、次の設定を追加します。

コメント ソースCIDR タイプ ポートレンジ
SSH-web
My IP
Custom TCP 50001-50002


6. ファイアウォールのSSHルールを削除します。


7. ファイアウォールのルールは以下のようになります。

6. ロードバランサーの設定

1. IPアドレス詳細画面で[ロードバランサー]タブを選択し、次のように設定します。

コメント パブリックポート プライベートポート アルゴリズム 接続維持 仮想マシン
web HTTP   (80) 80 roundrobin (なし) web01,web02

7. 動作確認

仮想マシン「web01」「web02」にてテスト用ページを作成し、バランシングされることを確認します。

1. 「1. 事前準備」の手順2の対応ができなかった場合、複製先の仮想マシン「web02」にて下記を実施します。

// SSHホスト鍵の削除・再作成※
[root@web02 ~]# rm -f /etc/ssh/ssh_host_*
[root@web02 ~]# systemctl restart sshd

// キャッシュをクリア
[root@web02 ~]# yum clean all

// コマンド実行履歴の消去
[root@web02 ~]# history -c
							

※SSHホスト鍵を再作成すると、クライアントからログインする際に「SSHホスト鍵が一致しない」という警告/エラーが発生することがあります。フィンガープリントを確認いただき、SSHホスト鍵の更新を行ってください。


2. 仮想マシン「web01」「web02」にて、テスト用ページを作成します。

web01

[root@web01 ~]# chown -R apache:apache /var/www/html
[root@web01 ~]# echo web01 > /var/www/html/index.html
							

web02

[root@web02 ~]# chown -R apache:apache /var/www/html
[root@web02 ~]# echo web02 > /var/www/html/index.html
							

3. ブラウザにて、「5.ポートフォワードとファイアウォールの設定変更」で設定したIPアドレスにHTTPでアクセスします。


4. ブラウザからの再読み込みを数回繰り返し、テスト用ページにて「web01」「web02」が分散して表示されることを確認します。

このページの先頭へ このページの先頭へ