AWS ALBでお手軽メンテ画面の作成と運用方法
はじめに
サービスを運用していると定期メンテの際に出しておくメンテ画面が必要ですよね。
メンテページには「○○時までメンテナンスしているから少し待ってね」的な事を時間を指定して書いておきたい。
基本的な事は クラスメソッドさんのブログ に書いているのですが、
今回は運用も考えてJenkinsから叩けるように aws-cli
コマンドを使ってメンテ画面を作って運用する方法を紹介します。
端的に紹介すると
- ALBのルールの一つにでメンテ画面を作成
└ メンテ開始前にメンテ画面をaws-cli
で更新 - 運用を考えて3つのルールを作成
└ メンテ開始時にルールの優先順位をaws-cli
で変更
└ メンテ終了時もルールの優先順位をaws-cli
で変更
1.ALBにメンテ画面を作成
EC2やS3不要!ALBだけでメンテナンス画面を表示するなど固定レスポンスが返せるようになりました!
ALBからメンテ画面を固定レスポンスとして作りましょう。
普段はサービスに向けたルールよりも優先度を下に設定しておき、メンテ開始時にメンテ画面のルールの優先度を上げる運用にします。
1.1メンテ開始前にメンテ画面を更新
メンテ画面でメンテの終了予定期間を表示させたいのでルールを更新します。
$aws elbv2 modify-rule --rule-arn xxxx \
--actions Type=fixed-response,FixedResponseConfig= \
'{MessageBody=2019/08/28の20:00までメンテです。,StatusCode=503,ContentType=text/html}'
messageBody部分にhtmlを書いてやることでソレっぽい画面を作ります。
ただ、文字制限があるので最低限のページにおさえて置きましょう。
2.運用を考えて3つのルールを作成
1つ目はメンテ画面のルール
2つ目はサービスのターゲットグループを指定したルール
3つ目は 特定IPからアクセス出来るサービスのターゲットグループを指定したルール
メンテナンス時に動作確認を行いたいのであれば、
3つ目のルールを1つ目のルールより優先度を上げると確認が楽になります。
2.1 メンテ開始時にルールの優先順位を変更
メンテ画面の優先度をサービスへのルールよりも上げています。
aws elbv2 set-rule-priorities --rule-priorities \
RuleArn=特定IP許可のルール,Priority=1 \
RuleArn=メンテ画面のルール,Priority=2 \
RuleArn=サービスへのルール,Priority=3
2.2 メンテ終了時にルールの優先順位を変更
メンテ画面の優先度をサービスへのルールよりも下げています。
aws elbv2 set-rule-priorities --rule-priorities \
RuleArn=特定IP許可のルール,Priority=1 \
RuleArn=サービスへのルール,Priority=2 \
RuleArn=メンテ画面のルール,Priority=3
まとめ
今回、簡単にメンテナンス画面の作成とその運用方法について紹介しました。
Author And Source
この問題について(AWS ALBでお手軽メンテ画面の作成と運用方法), 我々は、より多くの情報をここで見つけました https://qiita.com/ainn_lll/items/df6c1595af6b8cfd42e4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .