事前確認事項 †
設定箇所 †
事前準備 †
- 負荷分散として起動したいAMI/instanceを作っておく
- APIに必要なパッケージなどのインストール等の準備をする
- 自分はリモートの実験用Instanceを立ち上げる
- AutoScaleのファイルをアップロードします(自分は/var/autoscaleにしてみました)
- sshでログインして作業
mkdir /var/autoscale
cd /var/autoscale/
unzip Autoscale...zip
cp credential-file-path.template credential-file-path
emacs credential-file-path <=API id/pwを入れる
chmod 600 credential-file-path
- X509ファイルをアップロードします。
scp -i tokyo.pem -r ~/AWSx509 root@aya.example.jp:/var/autoscale/
- Javaを入れます。
aptitude install default-jre
- versionを確認
java -version
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8.3) (6b18-1.8.3-2+squeeze1)
OpenJDK Client VM (build 16.0-b13, mixed mode, sharing)
- パッケージの場所を確認
whereis java
java: /usr/bin/java /etc/java /usr/share/java /usr/share/man/man1/java.1.gz
- 環境変数に登録
export JAVA_HOME='/usr'
export AWS_AUTO_SCALING_HOME='/var/autoscale'
export PATH=$PATH:$AWS_AUTO_SCALING_HOME/bin
export AWS_CREDENTIAL_FILE='/var/autoscale/credential-file-path'
export EC2_CERT='/var/autoscale/AWSx509/cert-hogehoge.pem'
export EC2_PRIVATE_KEY='/var/autoscale/AWSx509/pk-hogehoge.pem'
export EC2_REGION='ap-northeast-1'
設定追加 †
- AutoScaling?用の設定をする(ローカルでもリモートでも)
- 利用したいinstance設定の登録
設定ファイルを登録
as-create-launch-config roseLc --image-id ami-9e1ab19f --instance-type m1.small
as-create-launch-config 設定名 --image-id 現在sshしているinstanceのAMI ID --instance-type 起動したいインスタンスタイプ
結果帰ってくる内容
OK-Created launch config
- instanceをauto scaling groupに登録させる
as-create-auto-scaling-group roseGroup --launch-configuration roseLc --availability-zones ap-northeast-1a --min-size 1 --max-size 1
OK-Created AutoScalingGroup
↑これをするとroseというインスタンス以外にもう一つ立ち上がる
(マネージメントコンソールで止めても勝手にゾンビのように立ち上がる)
東京Regionはap-northeast-1a
- スケーリング時の動作を設定する
(増える設定)
as-put-scaling-policy rosePolicy --auto-scaling-group roseGroup --adjustment=1 --type ChangeInCapacity
arn:aws:autoscaling:ap-southeast-1:030903184259:scalingPolicy:91764b74-0ccd-4f6e-8928-df6911186649:
autoScalingGroupName/roseGroup:policyName/rosePolicy
(減らす設定)
as-put-scaling-policy cloudPolicy --auto-scaling-group cloudGroup --adjustment=-1 --type ChangeInCapacity
arn:aws:autoscaling:ap-southeast-1:030903184259:scalingPolicy:91764b74-0ccd-4f6e-8928-df6911186649:autoScalingGroupName/cloudGroup:policyName/cloudPolicy
設定変更 †
- どのAuto Scalingのグループに属しているインスタンスにヘルスチェックをつける: as-set-instance-health
- 特定のAuto scalingグループで起動するインスタンス数を設定する:as-set-desired-capacity
(グループで指定されている最大インスタンス数内)
- 保留されていたプロセスを再開する: as-resume-processes
- ☆メトリックコレクションを無効にする: as-disable-metrics-collection
- ☆メトリックコレクションを有効にする: as-enable-metrics-collection
as-enable-metrics-collection roseGroup --granularity 1Minute
OK-Enabled metrics collection
--show-requestをつけるとリクエストしているHTTPリクエストが見れる
as-enable-metrics-collection cloudGroup -g 1Minute --show-request
https://autoscaling.ap-southeast-1.amazonaws.com/?AutoScalingGroupName=cloudGroup
&Granularity=1Minute&Version=2010-08-01&Action=EnableMetricsCollection&SignatureVersion=2
&SignatureMethod=HmacSHA256&Timestamp=2011-03-18T04%3A26%3A00.034Z
&AWSAccessKeyId=アクセスキーID&Signature=
OK-Enabled metrics collection
確認方法 †
- 全体を確認: as-describe-launch-configs
as-describe-launch-configs
LAUNCH-CONFIG roseLc ami-XXXXXX m1.small
- どのような適応ポリシーがあるか確認: as-describe-adjustment-types
as-describe-adjustment-types
ADJUSTMENT-TYPE ChangeInCapacity
ADJUSTMENT-TYPE ExactCapacity
ADJUSTMENT-TYPE PercentChangeInCapacity
- すべての計測コレクションタイプと計測されたグラニュラリティタイプを確認する: as-describe-metric-collection-types
as-describe-metric-collection-types
METRIC-COLLECTION-TYPE GroupMinSize
METRIC-COLLECTION-TYPE GroupMaxSize
METRIC-COLLECTION-TYPE GroupDesiredCapacity
METRIC-COLLECTION-TYPE GroupInServiceInstances
METRIC-COLLECTION-TYPE GroupPendingInstances
METRIC-COLLECTION-TYPE GroupTerminatingInstances
METRIC-COLLECTION-TYPE GroupTotalInstances
METRIC-GRANULARITY-TYPE 1Minute
- 現在のポリシーを確認: as-describe-policies
as-describe-policies
No policies found
- Auto Scalingに関するプロセスを確認する: as-describe-process-types
as-describe-process-types
PROCESS AZRebalance
PROCESS AlarmNotification
PROCESS HealthCheck
PROCESS Launch
PROCESS ReplaceUnhealthy
PROCESS ScheduledActions
PROCESS Terminate
- ☆現在起動している/もしくは特定のグループで起動しているAuto Scalingの最大値を表示する: as-describe-scaling-activities
as-describe-scaling-activities
ACTIVITY ACTIVITY-ID END-TIME CODE CAUSE
ACTIVITY 74758a33-bfd5-4df... 2009-05-11T16:27:36Z Successful "At 1970-01-01 00:00:00Z an instance was started in response to a difference between desired and actual capacity, increasing the capacity from 0 to 1."
- ☆予定されているアクションを確認する: as-describe-scheduled-actions
as-describe-scheduled-actions
GROUP-NAME NAME TIME MIN-SIZE MAX-SIZE DESIRED-CAPACITY
test-cg test-action1 2010-06-01T00:00:00Z 1 2 1
- 設定されたグループを確認: as-describe-auto-scaling-groups
as-describe-auto-scaling-groups --headers
-------------------------
↓何か設定されていたら↓
-------------------------
AUTO-SCALING-GROUP GROUP-NAME LAUNCH-CONFIG AVAILABILITY-ZONES MIN-SIZE MAX-SIZE DESIRED-CAPACITY
AUTO-SCALING-GROUP roseGroup roseLc ap-northeast-1a 1 1 1
INSTANCE INSTANCE-ID AVAILABILITY-ZONE STATE STATUS LAUNCH-CONFIG
INSTANCE i-3c3ab93d ap-northeast-1a InService Healthy roseLc
-------------------------
↓何も設定されていなかったら↓
-------------------------
No AutoScalingGroups found
- Auto Scalingで立ち上がったInstanceを確認する: as-describe-auto-scaling-instances
as-describe-auto-scaling-instances --headers
-------------------------
↓AutoScaling用のinstanceがあれば↓
-------------------------
INSTANCE INSTANCE-ID GROUP-NAME AVAILABILITY-ZONE STATE STATUS LAUNCH-CONFIG
INSTANCE i-3c3ab93d roseGroup ap-northeast-1a InService HEALTHY roseLc
-------------------------
↓AutoScaling用のinstanceがなければ↓
-------------------------
No instances found
自動で起こる事 †
- 必要があれば起動、削除
いらなくなった時(削除) †
- auto scalingで立ち上げたinstanceを削除する(サーバ0台とする事で削除する)
as-update-auto-scaling-group roseGroup --min-size 0 --max-size 0
OK-Updated AutoScalingGroup
- auto scale groupを削除する
as-delete-auto-scaling-group roseGroup
Are you sure you want to delete this AutoScalingGroup? [Ny] <= y Enter
OK-Deleted AutoScalingGroup
- auto scale 設定を削除する
as-delete-launch-config roseLC
Are you sure you want to delete this launch configuration? [Ny] <= y Enter
OK-Deleted launch configuration
確認方法 †
エラー時には †
参考URL †