さくらのクラウドでソーリーサーバを設定してみよう – 「楽しいさくらのクラウド」(16)
こんにちは。さくらインターネット クラウドチームの大喜多です。
このたび、さくらのクラウドが提供するGSLB(広域負荷分散アプライアンス)においてソーリーサーバを設定できるようになりました。GSLBにソーリーサーバを設定しておくことにより、障害時(サーバダウン)や、ロードバランサ配下の仮想サーバから一定時間内に応答がなかった場合は、ソーリーサーバに振り分けられます。本記事では、ソーリーサーバの作成手順とGSLBの設定手順について解説します。
※注記:さくらのクラウドでは、DSR(Direct Server Return)方式に対応したロードバランサアプライアンスも提供しております。こちらもソーリーサーバに対応しておりますので、詳細はさくらのクラウドニュース:【TIPS】ロードバランサにソーリーサーバを追加をご覧ください。
1. システム構成
本記事では、以下の構成をもとに解説します。
GSLBに対して東京第1ゾーンに作成した2台のWebサーバを実サーバとして設定し、石狩第2ゾーンにソーリーサーバを配置します。実サーバとして設定されたWebサーバ2台ともに応答がない場合、GSLBに対するHTTPリクエストはすべてソーリーサーバが受け付けるようになります。
2. Webサーバ・ソーリーサーバの作成
Webサーバを東京第1ゾーンに2台、石狩第2ゾーンに1台構築します。東京第1ゾーンに構築するWebサーバの構築手順については割愛し、石狩第2ゾーンに構築するソーリーサーバの構築について解説します。
3. ソーリーサーバの構築
ソーリーサーバにSSHログインし設定を行います。SEOを考慮し、HTTPレスポンス503を返すWebサーバとして構築します。OSはCentOSの6系最新版を使用する前提とします(本記事執筆時はCent6.8)。
Apacheをインストールします。
yum -y install httpd
ドキュメントルートにソーリーページを作成します。
vi /var/www/html/index.html ※ソース <html> <body> Sorry, Current service is stopping. </body> </html>
httpd.confに以下行を挿入し、HTTPレスポンス503を返却するように設定します。
vi /etc/httpd/conf/httpd.conf ※ソース:末尾に追記 ErrorDocument 503 /index.html <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} !=/index.html RewriteRule ^.*$ - [R=503,L] </IfModule> <IfModule mod_headers.c> Header set Retry-After "Mon, 1 Dec 2014 9:00:00 GMT" </IfModule>
Apacheを起動し、システム起動時にApacheも起動されるよう設定します。
service httpd start chkconfig httpd on
4. GSLBの設定
サーバの準備ができましたらGSLBの設定を行います。さくらのクラウドのコントロールパネルの左メニューから[GSLB]をクリックし、右上の[追加]をクリックします。
下記画像の赤枠部分[監視方法]のドロップダウンリストをクリックし、[http]を選択します。
監視方法を選択すると、画面上には監視方法に対応した入力項目が追加表示されます。ここではhttpを選択しましたので、「Hostヘッダ」「パス」「レスポンスコード」が追加されています。
それぞれ以下の通り指定します。
Hostヘッダ | Webサーバでバーチャルホストを使用している際は入力(今回は空欄とします) |
パス | /index.html |
レスポンスコード | 200 |
ソーリーサーバには、「3. ソーリーサーバの構築」にて構築したソーリーサーバのグローバルIPアドレスを指定します。IPアドレスを直接入力するか、[サーバから選択]ラジオボタンをクリックして、表示されるサーバの一覧から選択します。各項目の入力が完了したら右下の[作成]をクリックします。
左メニューの[GSLB]をクリックすると、GSLBの一覧が表示されます。今回作成したGSLBの行の上にカーソルを移動させ、ダブルクリックします。
ロードバランシング対象のWebサーバを2台追加します。右下の[追加]ボタンをクリックします。
表示されたダイアログ上にて、IPアドレスを直接入力するか、[サーバから選択]ラジオボタンをクリックして、表示されるサーバの一覧から選択します。[有効/無効]ラジオボタンは[有効]をクリックします。重み値は2台とも未入力(デフォルト値である1を使用)とします。各項目の入力が完了したら右下の[作成]をクリックします。
この作業を2回行い、下記のように2台の実サーバが登録されていることを確認し、右上の[反映]をクリックします。
5. DNSの設定
GSLBの作成・設定が完了しましたら、続いてDNSサーバの設定を行います。今回はDNSサーバとして、さくらのクラウドのDNS(アプライアンス)を使用します。
DNSの一覧画面から、設定するゾーンの行の上にカーソルを移動させ、ダブルクリックします。
[リソースレコード]タブをクリックし、右下の[追加]をクリックします。
[タイプ]のドロップダウンリストから「CNAME」を選択します。このレコードを追加することで、www.■■■.netにアクセスするとGSLBに転送され、ロードバランシングされるようになります。
GSLBのFQDNを直接入力するか、[GSLBから選択]ラジオボタンをクリックして、表示されるGSLBの一覧から選択します。TTLは最短の「10(秒)」とします。各項目の入力が完了したら右下の[作成]をクリックします。
GSLBのFQDNはGSLBの詳細画面から確認できます(赤枠部分)。直接入力する際は末尾に.を付与するのを忘れないようにしてください。
6. 動作確認
www.■■■.netにアクセスし、Webページが表示されれば設定は完了です。
また、digコマンドを使用することにより、リクエストに対して返しているIPアドレスの値を確認することができます。
ここでは、実際にGSLBが機能しているか確認するテストパターンをご紹介します。
Webサーバ2台とも稼働している場合
この状態でwww.■■■.netにアクセスすると、稼働しているWebサーバ2台にリクエストがバランシングされコンテンツが表示されます。
Webサーバ2台のうち1台がダウンしている場合
2台のうち1台のWebサーバをシャットダウンします。この状態でwww.■■■.netにアクセスすると、稼働しているWebサーバに転送されコンテンツが表示されます。
Webサーバが2台ともダウンしている場合
2台のWebサーバをシャットダウンします。この状態でwww.■■■.netにアクセスすると、ソーリーサーバに転送され、ソーリーサーバ上のコンテンツが表示されます。
夏のトライアルキャンペーン 開催中!
ただ今、「さくらのクラウド 夏のトライアルキャンペーン」を開催しています。(2016年7月7日(木)~2016年7月31日(日)お申し込み分まで)
さくらのクラウドおよびオブジェクトストレージのサービスを2万円分無償でご利用頂けるクーポンをプレゼントしています。
是非、この機会にさくらのクラウドを体験してみてください!
キャンペーンの詳細はこちら
https://cloud.sakura.ad.jp/news/2016/07/07/summer_campaign_2016/