はじめに
この記事はOracle Cloud Infrastructure Advent Calendar 2021 Day22の記事として書いています。
OCIで公開しているWebサイトにソーリーページを実装する方法について書きます。
結論
ロード・バランサのバックアップ機能+Sorryサーバで実現出来ます。
ソーリーページとは?
障害やメンテナンスなどでWebサイトが停止している時に表示されるページの事です。
ソーリーページがない場合。エラーが表示されます。
OCIの ロード・バランサ 経由でホストしたWebサービスが応答ない場合、502エラーが表示されます。
なお、このメッセージを編集する方法は現在(2021/12時点)ではありません。
想定構成
LB経由で、以下のメッセージがラウンドロビンで表示されます。
サーバ2台ともダウンしている場合は、以下のメッセージを表示させます。
実現方法
ロード・バランサの バックアップ機能 を使います。
バックアップ機能とは、通常時はトラフィックは転送されないサーバを設定できます。
全てのバックエンド・サーバのヘルスチェックが失敗した場合にのみ、トラフィックが転送されます。
OCI技術資料 : ロード・バランサー 概要 バックエンドサーバー
実装方法
Webサーバの作成とロード・バランサの作成は割愛します。
ロードバランサの作成詳細手順は以下のスライド13~21ページを参照ください。
OCI技術資料 : ロード・バランサー 概要
1.Sorryサーバをバックエンドサーバに登録
ロード・バランサのバックエンド・セットの画面から「バックエンドの追加」を押下します。
コンピュート・インスタンスで用意したsorryサーバを選択し、「追加」を押下します。
2.Sorryサーバをバックアップ状態に変更
今のままだと、ラウンドロビンでSorryサーバも選択されてしまいます。
一覧からSorryサーバ選択後、「アクション」→「バックアップ状態の編集」を押下します。
「True」にチェックを入れ、「変更の保存を押下」します。
これで設定完了です。
3.動作確認
Webサーバ1を停止(今回はWebサーバ1はApacheの停止を実施)
この時点ではWebサーバ2が生きているため、Sorryサーバに飛ばない事を確認。
Webサーバ2を停止(ロード・バランサからオフラインを実施)
Sorryサーバに飛んだ事を確認。
まとめ
ロード・バランサのバックアップ機能を使用することで実現出来ます。
ただし、ソーリーページ用のサーバの用意が必要です。