5.2.2 オートスケーリンググループからの閉塞を高速化する
Tomcatをオートスケーリング構成のマシン上で使用している場合,本製品の稼働監視機能によって障害が検知された瞬間に,オートスケーリンググループからの切り離し(閉塞)が実施されます。ロードバランサのヘルスチェック機能を使用する場合に比べて,障害発生から閉塞までの不稼働時間を短縮できます。
稼働監視機能のユーザコマンドによる情報通知を使用することで,障害の検知を契機に任意のスクリプトを実行できます。そのスクリプト内で,クラウドベンダが提供するコマンドおよびAPIなどを用いて自マシンをオートスケーリンググループから切り離す処理を実装してください。
オートスケーリンググループから切り離す手段については,各クラウドベンダが提供するドキュメントを参照してください。また,実行するコマンドがインストール済みかどうか,コマンドおよびAPIの実行に必要な権限があるかどうかに注意してください。
AWSでAmazon EC2 Auto Scalingを使用している場合のユーザスクリプト実装例を次に示します。
#!/bin/bash # Get InstanceID TOKEN=$(curl -X PUT http://169.254.169.254/latest/api/token \ -H "X-aws-ec2-metadata-token-ttl-seconds: 21600") INSTANCEID=$(curl http://169.254.169.254/latest/meta-data/instance-id/ \ -H "X-aws-ec2-metadata-token: ${TOKEN}") echo InstanceID=${INSTANCEID} # Get AutoScalingGroupName ASGNAME=$(aws autoscaling describe-auto-scaling-instances --instance-ids ${INSTANCEID} | \ jq -r '.AutoScalingInstances[].AutoScalingGroupName') echo AutoScalingGroupName=${ASGNAME} # Enter Standby state aws autoscaling enter-standby --instance-ids ${INSTANCEID} \ --auto-scaling-group-name ${ASGNAME} --no-should-decrement-desired-capacity
- 注
-
このスクリプトは実装例であり,これをそのまま使用した場合の動作は保証しません。必ずクラウドベンダが提供する最新のドキュメントを参照してユーザ側で適切なスクリプトを記述してください。
また,実行するコマンドがインストール済みかどうか,コマンドの実行に必要な権限があるかどうかに注意してください。