
スケーリング中に、消滅したホストがまだ30〜35秒強の間リクエストを受信するという小さな、しかし不快な瞬間がありました。 当然、これらの要求を満たすことはできません。 そのため、Webサーバーを配置する前に、ロードバランサーからインスタンスを強制的に切断するというアイデアが生まれました。
これを行うには、ELBのコマンドラインユーティリティaws.amazon.com/developertools/2536が必要です。 それらを/ opt / aws / elbフォルダーに解凍します 。
pk-**およびcert-**証明書は、 / opt / aws / keysに配置されます 。
JAVA作業フォルダーは/ usr / java / latestです。
さて、実際のスクリプト:
/opt/aws/kick_from_lb.sh
#!/bin/sh export AWS_ELB_HOME="/opt/aws/elb" export PATH=$PATH:$AWS_ELB_HOME/bin export JAVA_HOME=/usr/java/latest export TOOLS_HOME=/opt/aws export EC2_PRIVATE_KEY=$TOOLS_HOME/keys/pk-********88ZVWC3FPEOFWRSFJ.pem export EC2_CERT=$TOOLS_HOME/keys/cert-**********88ZVWC3FPEOFWRSFJ.pem INSTANCE_ID=`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id` elb-deregister-instances-from-lb $1 --instances $INSTANCE_ID
ここで、apache、tomcat、nginx、またはその他のスクリプトのstop関数で、最初に次の行を挿入します。
sh /opt/aws/kick_from_lb.sh $elb_name
ここで、$ elb_nameはElastic Load Balancerの名前です。
まあ、それだけです。 これで、Webサーバーが停止する前に、インスタンスはバランサーの下から自動的にスローされ、リクエストを受け入れなくなります。
脅威。 AMIにすべての変更を加えることを忘れないでください。