- VPC上にロードバランサ(SLB)を配置し、高可用性を図る
前回は純粋に、パブリックIPに紐付いたECSインスタンスを1台立ち上げました。

シンプルな構成ですが、この構成ではスケールアウト(水平展開)が出来ません。例えばECS上で稼働しているWebサイトに急激なアクセスが発生した場合、スケールアウトを意識した設計にすることで増大する負荷にもシステム停止を伴わずして対応することが出来ます。
今回は、ロードバランサ(SLB)配下に複数のインスタンスを存在させることで可用性向上を図ってみます。

この記事ではAlibaba Cloudのアカウント作成方法は解説していません。各自でアカウント登録をお願いします。
また、Alibaba Cloudには無料利用枠がありますが、高額課金にならないように、使わないインスタンスは削除したり停止するようにしましょう。
事前準備
まず、ECSインスタンスを複数個準備します。今回はWordPressが動作しているECSインスタンスを4台用意しました。

この4つのインスタンスをロードバランサ配下に入れようと考えます。
SLBインスタンスの作成
Alibaba Cloudではロードバランサのことを「SLB(Server Load Balancer)」と呼びます。SLBを作成し、SLBにパブリックIPを割当てます。
まず左メニューの「Software Load Balancer」からSLB管理画面に入ります。次に、「ロードバランサの作成」をクリックします。

新規作成画面が出てくるので、次の通り設定していきます。
設定内容は下記の通りです。
設定項目 | 設定する値 | 注意・備考 |
リージョン | 東京 | SLB配下に入れるECSインスタンスが存在するリージョンにする |
ゾーンタイプ | マルチゾーン | |
プライマリ | 日本ゾーンA | |
バックアップ | 日本ゾーンB | プライマリとバックアップは入れ替えても良い |
スペック | パフォーマンス共有型 | |
インスタンス | インターネット | |
課金タイプ | トラフィック | |
購入数量 | 1 |

入力した所で「今すぐ購入」をクリックすると、確認画面が出てきます。

「利用規約とSLAに同意する」にチェックして「有効化」をクリックすれば完了です。
vServer Groupを追加

SLBは作成出来ましたが、今の状態ではECSも存在しない上にリッスンするポートの指定がされていません。まずはECSをSLBに登録することを考えます。Alibaba Cloudの場合はvServer Groupという仕組みで登録します。「仮想サーバグループ」タブの「vServer Group」ボタンから追加します。

vServerグループは任意の値で大丈夫です。「登録済みサーバー」の「追加」ボタンをクリックし、追加していきます。


次にポートを設定します。今回は全部80にします。


リスナーの登録
SLB管理画面でインスタンス名をクリックし、リスナー登録をします。「リスナーの作成」ボタンから進めていきます。今回は80番ポートによるHTTPのみ考えます。HTTPS通信を許可する場合、SLBにSSL証明書の登録が必要になります。

リスニングポートは80にします。

次に先程設定したvServer Groupを選択します。

「ヘルスチェック」とは、定期的にHTTPリクエストをSLBから投げ、応答がない or 50xエラーになった場合には自動的にSLB配下から切り離す機能です。

この設定が終わるとSLBは一通り設定完了です。