4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CISのGLBからの振り分けを100:0にする(Origin Poolの優先順位を設定)

Last updated at Posted at 2023-03-02

はじめに

2台のWebサーバーがあり、CISのGLB機能で割り振りを行う事は珍しくありません。
2台のサーバーがアクティブ・アクティブであれば、GLBからラウンドロビンで割り振れば特に問題ありません。

今回は、普段はサーバー1に全てのリクエストを割り振り、サーバー1がダウンした時だけサーバー2に切り替えたい、という要件だったので、複数Origin Poolを作り、Poolに対する優先順位を設定する方法で実現しました。

Origin Poolが1つの場合

一番シンプルに、1つのOrigin Poolに2台のWebサーバーを入れる構成では、2台のサーバー間で重み付けをすることはできても、今回の要件を満たす設定はできません。

重みを「1:0.1」のように差を付けただけでは、少数ながらサーバー2に割り振られます。

image.png

「1:0」にすると、サーバー1がダウンした時もサーバー2には割り振られず、エラー画面が表示されます。

image.png

Origin Poolを2つにして優先順位を付ける

今回の要件は、2つOrigin Poolを作り、Poolに対する優先順位を設定する方法で実現できます。
https://cloud.ibm.com/docs/cis?topic=cis-glb-features-pools&locale=ja

複数のプールを構成して、フェイルオーバーの優先順位 (プール A > プール B > プール C) を設定することもできます。

2つのOrigin Poolを作り、サーバーを1台ずつ所属させます。

image.png

ロードバランサー配下に2つのPoolを所属させ、Pool1の優先度を高くします。

image.png

デフォルトではロードバランサーの設定項目である「トラフィック・ステアリング」が「ランダム」になっており、pool2の優先度を下げていても半分くらいはpool2に割り振られてしまうため、「オフ」にします。これで、優先度の高いpool1にしか割り振られない状態になります。

image.png

参考

動作確認

普段はサーバー1にのみリクエストが行っています。

サーバー1をダウンさせると、ロードバランサーが検知し、pool2のサーバー2にリクエストが行くようになります。

image.png

サーバー1を立ち上げ、ロードバランサーが正常を検知すると、再び、サーバー1にしかリクエストが行かない状態に戻ります。

なお、サーバー2の代わりに、Static Website Hostingの機能を有効にしたICOSを向くようにし、そこに静的なHTMLファイルを置いておけば、維持コストや運用の手間がほとんどかからないSorryページとして使うことができます。

image.png

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?