ロードバランサーであるALBのお話です。サーバーのメンテナンスを実施するにあたり、どうしてもサーバーを止めなければいけないパターンが存在すると思います。そんな時にはALB一つでメンテ中画面をユーザーへ表示させる設定ができますので、その紹介をさせていただきます。
目次
1. Sorryページって何?
そもそもSorryページって何なのか。Webサーバーとして世界にサーバーを公開しているとします。このWebサーバーをメンテナンスするにあたり再起動などが発生してどこからも見ることができない状況が発生したとします。その時にもしユーザーが閲覧しようと接続しても繋がりません。「存在しないのかな?」と勘違いしてしまい機会損失が発生するかもしれません。
そこで、今はメンテナンス中で〇月〇日の〇時から閲覧できますよっといった表示があったらユーザーにもサーバーを公開している側にも優しいのです。損な役割を果たすのがSorryページです。
2. 実際に設定してみよう
では早速設定してみましょう。といっても設定自体は至ってシンプルですが、今回は前提条件としてすでにロードバランサーが作成されていることとします。
※ロードバランサーの設定方法については以下を参考にしてみてください
①ALB設定画面を開く
ログイン後、サービス→EC2→ロードバランサーを選択します。

作成済みのロードバランサーを選択し、リスナータブから外部「ルールの表示/編集」を選択します。

「ルール追加(+)マーク」を選択して、「ルールの挿入」を選択して新しいルールを作成します。

最初に通常のアクションルールを作成します。全ての接続をサーバーに流す通常のルールとなります。なぜ作成するかというと、一番最初はルールが何もない状態のため、最初に作成したルールが有無も言わさず適用されてしまうからです。
以下設定を行い、通常アクセス用のルールを作成します。
条件の追加: パス | アクションの追加:転送先 ターゲットグループ:転送したいサーバーが入っているグループを選択 |

そして本命であるSorryページ用の設定を行います。今作成したルールの下にある「ルールの挿入」を選択して以下の通りに実施します。
条件の追加: パス | アクションの追加:固定レスポンスを返す レスポンスコード:503 Content-Type:text/plain レスポンス本文:ご迷惑おかけします。2020/5/6~5/7は終日メンテナンスです。 |

あとはルールの優先順位を変更するだけで、通常サーバーかSorryページを表示させるかを選ぶだけです折角なのでSorryページを表示してみましょう。今作成したルールを一番上に移動します。
ルールの順位変更を押下して、Sorryページのルールにチェックを入れたら↑を押すとルールが移動します。一番上に来たら「保存」を押下することで適用されます。気を付けることは「保存」を押した瞬間に適用されるので慎重に操作する必要があります。

それでは結果を見てみましょう。ロードバランサーの「DNS名」にあるアドレスをコピーしてWebブラウザに貼り付けましょう。以下画面が表示されれば設定は成功です。

3. まとめ
いかがだったでしょうか。今まではS3に設定してリダイレクトさせる、DNS名を変更するなど煩わしい設定でしたがALBでボタン一つで切り替えができるようになったことは非常に便利ですね。
もちろんコマンドでも切り替えることが可能です。間違いを減らす意味でもコマンドで切り替えができるようにしておくことも大切ですね。最後まで読んでいただきありがとうございました。