今回はWebサーバー2台とインフィニットLBでの負荷分散環境を構築します。
また、アクセスを制御するためのFirewallの設定を紹介します。
本ガイドの中では2台のWebサーバーをそれぞれ「Web01」、「Web02」と記載しています。バックエンドに使用するサーバーの作成は、「Webサイトの本番環境を構築したい(Web1台構成)」を参照し、「1. 仮想マシンの作成」をご確認ください。
本ガイドではWebサーバーにApacheを設定し簡易的なWebページを表示させています。また、ゾーンをaugustaで設定しています。
※本ガイドではFirewallグループの設定で別環境(IPアドレスが異なる環境)からの確認手順が含まれています。別環境からアクセスできる準備をしてください。スマートフォンなどによる携帯キャリアの通信や、IDCFクラウド内の別ゾーンでも問題ありません。
なお、本ガイドではDNSの設定は割愛しています。
1. インフィニットLBの作成
インフィニットLBにて負荷分散環境を構築します。ロードバランサーを作成後、Firewallグループの設定を確認します。
1. コントロールパネルのトップ画面より「インフィニットLB」をクリックします。
※アクティブになっていない場合は、規約の同意画面に遷移します。
2. インフィニットLBの一覧画面が表示されます。ロードバランサーを作成するため、「ILB作成」ボタンをクリックします。
3. ロードバランサー作成の画面が表示されます。ロードバランサーでプロトコル、ポート番号を設定し、「+」ボタンをクリックします。
項目
|
設定内容
|
---|---|
ネットワーク
|
作成するゾーンのネットワークを選択(今回はaugusta)
|
FQDN
|
任意の文字列
|
ロードバランサー
|
プロトコル[HTTP] / ポート番号[80]
|
オプション
|
なし
|
4. ロードバランサーにHTTPの項目が追加されます。右の矢印をクリックしてバックエンド設定を表示します。
バックエンド設定項目の「/*(デフォルト)」パスパターン項目のインスタンスでIPアドレスと表示されている入力欄をクリックし、VM(今回はWeb01)を指定し「+」ボタンで追加します。
次に「/*(デフォルト)」パスパターン項目右の鉛筆マークをクリックし編集を開始します。IPアドレスと表示されている入力欄をクリックし、分散するもう1台のVM(今回はWeb02)を指定し「+」ボタンで追加します。右端のチェックボタンをクリックし編集を終了します。
その他の詳細設定は、今回はすべてデフォルトで構いません。
5. オートスケールプランニング項目でスケールの最小台数と最大台数を変更します。
スケールをさせない場合は台数固定にチェックを入れ、最小台数項目で固定する台数を指定します。スケールの基準はインフィニットLBサービスの仕様書(PDF)をご確認ください。
開発用プランでインフィニットLBを利用する場合は、開発用プランを選択してください。(1台固定のシングル構成となります)
※インフィニットLB作成後、開発用プランからスタンダードプランへの変更は可能ですが、スタンダードプランから開発用プランへの変更はできません。
インフィニットLB作成後も台数を変更できますので、今回はスタンダードプランのデフォルトの台数のままにします。
6. 各オプションについては以下の通りです。各オプションはインフィニットLB作成後も追加可能です。
今回はすべてのオプションを設定せず作成します。
-
FirewallグループFirewallグループの詳細については「2. Firewallグループの設定」から説明します。
設定しない場合はすべてのアクセスを許可します。
後ほど設定するので今回はチェックせずに作成します。 -
リソース監視インフィニットLBサービスは、はてな社のサーバー監視サービス「Mackerel」に対応しています。
作成したインフィニットLBのリソース監視を設定する場合は、リソース監視項目にチェックを入れMackerel API Keyを入力します。
MackerelのAPIキーの確認方法はこちらのFAQでご確認ください。
API Keyを取得していない場合は、MackerelでAPI Keyを取得してください。 -
リダイレクトリクエストをHTTPからHTTPSにリダイレクトする場合は、オプション項目でリダイレクトを設定してください。
詳しくはインフィニットLBご利用ガイド手順項目の「SSL証明書をアップロードしてHTTPS通信を行う」をご確認ください。 -
固定パブリックIPアドレスインフィニットLBに固定パブリックIPアドレスを割り当てる場合は、固定パブリックIPアドレスの項目にチェックを入れます。
作成後、インターネット側で利用する8個のIPアドレスがインフィニットLBに割り当てられます。
7. すべての設定項目を入力したら、ページ下部の「確認画面へ」ボタンをクリックします。確認画面が表示されるので内容が正しければ「作成」をクリックします。
8. インフィニットLBのダッシュボードで作成したロードバランサーのステータスがRunningになったことを確認します。
9. 作成したロードバランサーのFQDNをURLに指定してブラウザでアクセスできることを確認します。(http://ロードバランサーのFQDN)
またバランシングの確認として、ブラウザの更新を数回行い、Web01、Web02の両方が表示できることを確認します。(アルゴリズムはデフォルトでRound Robinとなっています)
以上でインフィニットLBの作成は完了です。
外部からの不要なアクセスを制限する場合は「2. Firewallグループの設定」をご確認ください。
2. Firewallグループの設定
本項目では自身の環境のみアクセスできるルールと、自身の環境のみアクセスできないルールの2種類を作成し、Firewallグループの動きを確認します。
Firewallグループの設定は外部からロードバランサーへの通信制御が必要な場合に設定してください。
※MyIPの設定が必要になるため、コンピュートサービスのIPアドレスのファイアウォール設定よりMyIPのアドレスを確認しておくことをお勧めいたします。詳しくは「ファイアウォールの設定方法」を参照ください。
1. 左部ナビメニューよりFirewallグループをクリックし、Firewallグループ一覧画面を表示します。「Firewallグループ作成」ボタンをクリックします。
2. Firewallグループ作成画面が表示されます。
まずはMyIPからのみアクセスを許可するFirewallグループを作成します。グループ名は任意(ここではallow)で指定します。
許可のテキストボックスに自身のIPを入力し、「+」ボタンをクリックしてルールを追加します。最後に「作成」ボタンをクリックして作成します。
3. 確認のメッセージが表示されるので、「はい」をクリックしてFirewallグループを作成します
4. 同じようにFirewallグループ作成ボタンからFirewallグループ作成画面を表示します。今度はMyIPからのアクセスのみ拒否するFirewallグループを作成します。
グループ名は任意(ここではdeny)で指定します。
拒否のテキストボックスにMyIPを入力、「+」ボタンをクリックしてルールを追加します。許可のテキストボックスには0.0.0.0/0を入力し、「+」ボタンをクリックしてルールを追加します。
最後に「作成」ボタンをクリックして作成します。確認のメッセージが表示されるので「はい」をクリックします。
5. 作成したFirewallグループをロードバランサーに適用します。
メニューから「ILB」をクリックし、ロードバランサーの一覧画面を表示します。ロードバランサー一覧から作成したロードバランサー名をクリックします。
6. 自身の環境からのみ確認できるルール(allow)を適用します。設定ページ下部のオプションのFirewallグループのチェックボックスをクリックし、ルール選択ボックスを表示します。
プルダウンから許可設定(今回はallow)を選択し、「確認画面へ」をクリックします。
確認画面が表示されるので「更新」をクリックし、ルールを更新します。
7. ロードバランサーのFQDNをURLに指定してブラウザから確認します。自身の環境からはページが表示されることを確認します。それ以外の環境(別のIPアドレスを所持している環境)からは、アクセスしても表示できないことを確認します。
8. 次に拒否のルールを確認します。手順6を参照し、Firewallグループを変更します。
Firewallグループには自身の環境からのみ拒否するルール(deny)を選択してルールを確認のメッセージが表示されますので、「更新」をクリックしてFirewallグループを変更します。
9. 手順7と同様に確認を行います。自身の環境からはページが表示できないことを確認します。それ以外の環境(別のIPアドレスを所持している環境)からは、表示できることを確認します。
10. Firewallグループの適用を解除します。
Firewallグループチェックを外すかグループ項目のプルダウンから「なし」を選択し、「確認画面へ」ボタンをクリックします。確認画面が表示されるので「更新」をクリックし、ルールを更新します。
Firewallグループの確認は完了です。
Firewallグループは今回設定をしたallowのように、許可の設定のみを行うと、許可した環境からのみアクセスが可能となります。
Firewallグループのルールには設定を行わなくても暗黙のdeny(0.0.0.0/0の拒否)が含まれており、特定の環境のみを許可したい場合(ホワイトリスト)は、allowのように許可設定のみを設定することで実現できます。
今回設定をしたdenyのように、特定の環境のみを拒否したい場合(ブラックリスト)は、すべて許可(0.0.0.0/0の許可)の設定を追加しておく必要があります。
なお、インフィニットLBでは許可のルールよりも拒否のルールの方が優先されます。
以上でインフィニットLBによるWebサーバーの負荷分散環境を構築できました。
インフィニットLBは、仮想ルーターよりも細かくロードバランサーとしての設定をすることが可能です。
今回は詳細設定を割愛していますが、ロードバランサーの設定を細かく指定することで、ロードバランシングアルゴリズムの変更や、コネクションタイムアウトの設定、セッション維持の設定、またヘルスチェックの指定が可能です。
また、SSL証明書をアップロードしてロードバランサー側でSSLの処理を行うことで、サーバーの負荷を軽減することも可能です。設定をする場合はインフィニットLBご利用ガイド手順項目の「SSL証明書をアップロードしてHTTPS通信を行う」をご確認ください。
Firewallグループと併用することで、仮想ルーターのロードバランサー機能より細かいアクセスコントロールが可能になります。
さらに、インフィニットLBは仮想ルーターから独立して動いており、自動的にロードバランサーがスケールするため、高負荷な環境でもほかのサービスに影響なく使用することができます。
すでに仮想ルーターを使用している環境でインフィニットLBへ移行する際には、「ロードバランサーを活用してWebサーバーを負荷分散する」を参照し、仮想ルーターとインフィニットLBを並行稼働させ、DNSの向き先を仮想ルーターからインフィニットLBのFQDNに変更することで簡単に移行することができます。
簡易的に負荷分散環境を構築する場合は仮想ルーターを使用し、本番サービスや高負荷が予測される場合、また規模が比較的大きい場合にはインフィニットLBを使用することをおすすめいたします。
インフィニットLBをご活用いただき、より便利にIDCFクラウドをご利用ください。