FJcloud実践
FJcloud-VのマルチロードバランサーにおけるSorryページ設定と動作検証
はじめに
FJcloud-Vのマルチロードバランサーでは、バックエンドサーバーがすべて停止した場合にユーザーへエラーページを表示できる「Sorryページ」機能が提供されています。
しかし、具体的な設定方法や動作の全体像については、まとまった情報が少ない状況です。
本記事では、クラウドデザインパターンのSorry Pageパターン から、用途例2のマルチロードバランサーを利用した構成を実際に構築し、設定手順および挙動を検証結果とともに解説します。
前提条件
本記事は、以下の前提知識がある方を想定しています。
- FJcloud-Vの基本的なコントロールパネルの操作、サービスを利用する知識
- Webサーバーを構築し、ロードバランサーを経由してサービス提供できる知識
- オブジェクトストレージに関する、基本的な知識
検証概要
クラウドデザインパターンのSorry Pageパターン から、用途例2のマルチロードバランサーを利用した構成を作成し、以下の動作を検証します。
- ロードバランス対象のサーバーがすべて正常に利用できなくなった場合の、「Sorryページ」機能の動作
- 上記動作を受けて、ブラウザ上の表示がどうなるかの確認
検証を単純にするため、ロードバランシングする対象のサーバーは1台だけの構成とします。
機能・サービス
以下のサービス・機能を利用します。
マルチロードバランサーの「Sorryページ」機能はリダイレクト方式のため、sorryページをhttp(s)でアクセスできる場所へ設置する必要があります。
今回はクラウドデザインパターンの通り、専用のWebサーバーを用意するのではなく、オブジェクトストレージサービスをsorryページの設置場所として利用しています。
| サービス・機能 | 個数 | 用途 |
|---|---|---|
| Linuxサーバー | 1 | Webサーバーを稼働させるサーバー Rocky Linux 10を利用 |
| プライベートLAN | 1 | マルチロードバランサーの振り分け先ネットワークとして利用 |
| マルチロードバランサー | 1 | ロードバランサー |
| オブジェクトストレージサービス | 1 | sorryページの配置先 |
環境構築
- プライベートLANを作成します。詳細な手順は省略します。
- Linuxサーバーを構築します。詳細な手順は省略しますが、接続先は 1)で作成したプライベートLANとします。
- Linuxサーバーへ手動でIPを割り振り、Webサーバーを構築。動作確認用のWebページを設置します。
- オブジェクトストレージサービスを利用開始し、アクセスキー、シークレットキーを取得します。
- オブジェクトストレージへsorryページをアップロードするために利用する、aws-cliをインストールします。
チェックサームの計算アルゴリズムに互換性がないため、最新バージョンではなくバージョン2.22.35を導入します。
※ 導入手順は、AWS社の公式ドキュメント を参照してください。 - aws-cliを利用し、バケットを作成します。
$ set AWSACCESSKEYID=***(オブジェクトストレージサービスのアクセスキー) $ set AWSSECRETACCESSKEY=**(オブジェクトストレージサービスのシークレットキー) $ aws-cli --endpoint-url https://jp-east-1.storage.api.nifcloud.com s3api create-bucket --bucket [BUCKETNAME] - 作成したバケットへsorryページをアップロードします。sorryページは別途用意してください。
この時、ファイルの「Content-Type」に「text/html」を設定します。
併せて、sorry.htmlへの不特定多数からのGetObjectを許可するACLを設定します。$ aws-cli --endpoint-url https://jp-east-1.storage.api.nifcloud.com s3 cp sorry.html s3://[BUCKETNAME]/ --content-type "text/html" $ cat acl { "Statement": [ { "Sid": "Allow", "Effect": "Allow", "Principal": { "SGWS": "*" }, "Action": "s3:GetObject", "Resource": "arn:sgws:s3:::[BUCKETNAME]/sorry.html", "Condition": { } } ] } $ aws-cli --endpoint-url https://jp-east-1.storage.api.nifcloud.com s3api put-bucket-policy --bucket [BUCKETNAME] --policy file://./acl - マルチロードバランサーを作成します。今回は以下のように設定しています。
「04.オプション設定」で、「Sorryページ」を「有効にする」に設定し、「Sorryページリダイレクト先URL」へ先ほどアップロードしたsorryページのURLを入力してください。
例) https://jp-east-1.storage.api.nifcloud.com/[BUCKETNAME]/sorry.html
- 作成されたマルチロードバランサーの設定を確認し、「Sorryページ」が設定されていることを確認し構築完了です。

動作確認
マルチロードバランサーへ設定されているサーバーのステータスを変化させて、想定通りの挙動をするか確認します。
正常動作
- ロードバランシング対象のサーバーすべてで、「ヘルスチェックステータス」が「正常」であることを確認します。

- クライアントからアクセスすると、Webサーバーへ設置したページが表示され、想定通りWebサーバーへの接続が確認できました。
※ 今回は表示の確認のみを目的としているため、証明書エラーが表示されていますが、検証目的上問題ありません。

障害時の動作
- ロードバランシング対象のサーバーすべてで、「ヘルスチェックステータス」が「ステータス異常」であることを確認します。

- クライアントからアクセスすると、301応答によりリダイレクトされ、オブジェクトストレージサービスへ設置したsorryページが表示されます。
正常にリダイレクトされたことで、URLはオブジェクトストレージサービスのものになっています。

まとめ
本記事では、FJcloud-Vのマルチロードバランサーで提供される「Sorryページ」機能を利用し、バックエンドサーバーがすべて異常状態となった際に、オブジェクトストレージサービス上のsorryページへリダイレクトする構成を検証しました。
検証の結果、通常時はWebサーバーへ、障害発生時はsorryページへ自動的にリダイレクトされることを確認できました。オブジェクトストレージサービスを利用することで、バックエンドサーバーがすべて停止しても利用者へ適切な案内を表示できます。
障害時のユーザー体験向上やメンテナンス告知の手段として、導入を検討する価値のある機能といえるでしょう。
また、今回はオブジェクトストレージサービスのURLをそのまま利用しましたが、同一ドメインの別ページを表示したい場合は、Fastlyとオブジェクトストレージの組み合わせで静的ウェブサイト配信システムを作る方法 などを参考に、任意のドメインでアクセスできるようにしてください。
注意事項
- 本記事は、実現性の確認を目的としています。実際に利用する場合は実作業前にお客様にて検証および動作確認を実施し、問題なく移行できるか確認してください。
- 本記事の掲載時点の情報になります。最新の情報は各サービスのサービスページ、技術仕様ページを参照してください。
- 本記事に記載されている会社名、製品名等の固有名詞は各社の商号、登録商標または商標です。
- 本記事の他社サイトへのリンクにつきまして、リンク切れの際はご容赦ください。
- 本記事で利用している他社サービスの利用は、FJcloud-Vのサポート対象外となります。ご自身の責任でご利用ください。

