はじめに
この記事はOracle Cloud Infrastructure Advent Calendar 2021 Day22の記事として書いています。
OCIで公開しているWebサイトにソーリーページを実装する方法について書きます。
結論
ロード・バランサのバックアップ機能+Sorryサーバで実現出来ます。
Appendix: 本記事以外で、SorryPageを出す方法紹介
この記事で紹介する方法以外にも2つ、SorryPageに切り替える手法がありますので、以下に参考として記載します。
- ① WAFのHTTPレスポンスを利用してSorryページに切り替える
- ② LBの機能でリダイレクト機能を利用する(Object Storageや、API Gatewayのコンテンツにリダイレクト)
それぞれのメリット・デメリットは以下です。
方法 | メリット | デメリット | 参考URL |
---|---|---|---|
① WAFHTTPレスポンス | 専用Compute不要/URLは不変 | 自動化はFunctionsを利用 | OCI:WAFとFunctionsを使ったSorryPageの自動切り替えの実装手順 |
② LBリダイレクト機能 | 専用Compute不要 | SorryPageはURLが変わる | クラウド・ネイティブ・サービスを使用したロード・バランサのカスタム・エラー・ページの実装 |
③ LB標準機能 | LB機能のみで自動的にできる | Sorryページ用Computeが必要 | <本記事> |
ソーリーページとは?
障害やメンテナンスなどで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サーバに飛んだ事を確認。
まとめ
ロード・バランサのバックアップ機能を使用することで実現出来ます。
ただし、ソーリーページ用のサーバの用意が必要です。