-
DBサーバーを所属させるプライベートLANを作成し、Web、APサーバーが所属する共有プライベートネットワークの間にルーターを作成する
-
ルーターのNAT設定を行う
-
DNAT:ルーターの共通プライベートネットワークのIPアドレスをあて先とした通信を、DBサーバーのIPアドレスに変換する設定を行う
-
-
Web/APサーバーのカスタマイズイメージを取得する
-
ロードバランサー(L4)を作成する
-
オートスケールを作成する
-
3で作成したカスタマイズイメージを利用する
-
4で作成したロードバランサーへの組み込みする
-
スケールアウトのトリガーを決める
-
-
DBサーバーはプライベートLAN上に作成する
-
Web/APサーバーからDBサーバーへのアクセスは、DNATを経由したアクセスとなるため、1で作成したルーター宛へ通信すること
-
DBサーバーにはWeb/APサーバーへの通信のため、ルーターのIPアドレスをネクストホップとして設定する
【ニフクラ活用応用編】オートスケールパターン
監視によって、一定条件を満たした場合にスケールするパターンです。
解決したい課題/要求事項
-
高負荷時と、低負荷時の差が大きいシステムを構築する際に、以下課題を解決したい
-
高負荷時に合わせてシステムを構築すると、低負荷時にリソース余剰の状態となる
-
低負荷時に合わせてシステムを構築すると、高負荷時にリソース不足となる
-
ニフクラでの解決パターン
-
ニフクラのオートスケール機能を用いて、高負荷時に自動でサーバーをスケールアウトさせる
実装
-
オートスケールは、あらかじめ設定したサーバー負荷のしきい値を基に、自動でサーバーを追加/削除する機能
補足
-
スケールアウトする対象のサーバーはプライベートLANに組み込むことはできないため、共有プライベートネットワークに接続させる
-
2の手順はスケールアウトしたWeb/APサーバーとDBサーバーを通信させるためのネットワーク設定となる
-
一定のアクセスが継続するサイトや高負荷時のリソース消費量が予測可能なシステムの場合は、高スペックサーバーを組み合わせた負荷対策やPaaSを利用した負荷対策を事前に行うことで、安定したシステム運用が可能になる
-
グローバルIPアドレスを利用しないサーバーでプライベートLANのNICにIPアドレスを付与する際は以下のような方法で設定可能
-
ルーターの DHCP を利用する
-
コンソール を利用してログインしOS上でIPアドレスを設定する
-
Linux系のサーバーでrootのパスワードを設定していない場合は、シングルユーザーモードでログインし、パスワードを設定可能
FAQ シングルユーザーモードでのログイン
-
-
-
仮想サーバーで共通グローバルネットワークを利用する場合のIPアドレス、デフォルトゲートウェイなどの情報については クラウド技術仕様/制限値(IPアドレス)を参照する
-
共通グローバルネットワーク、共通プライベートネットワークについての仕様は クラウド技術仕様/制限値(ネットワーク:共通ネットワーク)を参照する
注意点
-
スケールアウトする仮想サーバーのコピー元となるサーバーは、あらかじめイメージ化しておく必要がある
-
スケールアウトしたサーバーは、負荷が落ち着いたり所定の時間が経過したりすると、自動で削除される
-
アクセスログなど、スケールアウトしたサーバー上で保存しておきたいファイルがある場合は、ファイルサーバーなど、別途そのための保存環境の用意が必要となる
-
増設ディスク付きイメージの場合、オートスケールは利用出来ない
本パターンの構成要素
本パターンを実現するためのニフクラサービス構成要素例は以下表の通りです。
サービス名 |
タイプ |
用途 |
数量 |
備考 |
---|---|---|---|---|
10Mbps |
- |
1 |
- |
|
c2-medium |
Web/APサーバー |
1 |
イメージ化元のサーバー |
|
c2-medium |
オートスケールで生成されるサーバー |
1~20 (最大値はユーザーによる指定) |
最低1台から稼働 |
|
c2-medium |
データストア用サーバー |
1 |
Webサーバーの稼働ログ保存用 |
|
グローバルIPアドレスを利用しない |
1 |
- |
||
c2-medium |
DBサーバー |
1 |
- |
|
グローバルIPアドレスを利用しない |
1 |
- |
||
- |
- |
1 |
- |
|
高速フラッシュドライブ[A/B] 100GB |
DBサーバー、データストアサーバー用 |
2 |
A/Bいずれでも可 |
|
- |
Web/APサーバー、オートスケールサーバー、DBサーバー、データストアサーバー、ルーター用 |
4 |
- |
|
router.small |
- |
1 |
- |
|
NATテーブル |
DNAT用 |
1 |
- |
|
- |
- |
1 |
- |