-
仮想サーバーを作成し、OSなどを設定する
-
サーバーコピー(サーバーの複製)パターンを参考に、仮想サーバーを複数作成する
-
ロードバランサー(L4)を作成し、負荷分散対象に複数の仮想サーバーを割り当てる
-
ヘルスチェック機能を利用し、負荷分散対象として割り当てた仮想サーバーの状態確認を行うように設定する
【ニフクラ活用応用編】サーバー冗長化パターン
仮想サーバーを複数台並べ、クラウドサービスとして提供されるロードバランサー(L4)を用いて適宜負荷を振り分けるパターンです。
解決したい課題/要求事項
-
ニフクラで作成した仮想サーバーには、標準で自動フェイルオーバー(HA機能)が付与されているが、フェイルオーバーが発生した場合、約5分間サーバーとの通信ができなくなる
-
フェイルオーバーが発生した場合でもサービスを途切れず継続させたい
-
自動フェイルオーバー(HA機能)だけでは対応できない
-
ニフクラでの解決パターン
-
ニフクラでは、可用性向上と性能向上のための負荷分散機能として、ロードバランサー(L4)サービスを提供している
-
ロードバランサー(L4)をグローバルネットワーク側に配置し、インターネットからのアクセスを外部ネットワークに接続された複数台の仮想サーバーへ負荷分散する
-
上記により、処理性能の高いサーバー1台構成から、可用性を考慮し処理能力が少し低いサーバーを複数配置する冗長構成に切り替え可能
実装
-
ロードバランサ―(L4)を利用する
-
フロントエンドサーバー群が受ける通信をロードバランサー(L4)が最初受け取り、ロードバランサー(L4)配下の仮想サーバーに振り分けられる
-
ロードバランサー(L4)にはヘルスチェック機能(仮想サーバーが正常に稼働しているかどうかを確認する機能)があり、正常に稼働していない仮想サーバーには処理を振り分けない
-
仮に1つの仮想サーバーに障害が起きると残りの仮想サーバーに通信を割り振り、サービスを継続できる
補足
-
ロードバランサー(L4)の冗長性については以下を参照
-
負荷分散対象の仮想サーバーでニフクラのファイアウォール機能を利用して、ロードバランサー(L4)のIPアドレスを許可する設定は不要
ニフクラのファイアウォールはロードバランサー(L4)からの通信をすべて許可しているため
詳細は クラウド技術仕様/制限値(コンピューティング:ファイアウォール:デフォルトルール) を参照 -
ロードバランサー(L4)では、複数のゾーンを利用した負荷分散可能
同一リージョンの異なるゾーンのサーバーを負荷分散対象として接続可能となる -
仮想サーバーで共通グローバルネットワークを利用する場合のIPアドレス、デフォルトゲートウェイなどの情報については クラウド技術仕様/制限値(IPアドレス)を参照する
-
共通グローバルネットワーク、共通プライベートネットワークについての仕様は クラウド技術仕様/制限値(ネットワーク:共通ネットワーク)を参照する
本パターンの構成要素
本パターンを実現するためのニフクラサービス構成要素例は以下表の通りです。
サービス名 |
タイプ |
用途 |
数量 |
備考 |
---|---|---|---|---|
10Mbps |
- |
1 |
- |
|
c2-medium |
サーバー |
2 |
- |
|
- |
サーバー用 |
1 |
- |
|
高速フラッシュドライブ[A/B] 100GB |
サーバー用 |
2 |
A/Bいずれでも可 |
|
- |
- |
1 |
任意で利用 |
terraform サンプル
本パターンについてterraformで作成可能なサンプルをGitHubで公開しています。
ご参考にしてください。
> サーバー冗長化パターン Terraformサンプル