特定のインスタンスによって消費されたメモリに基づいて自動スケーリングを設定しています。 awsforums に投稿されたリンクを確認しました。メトリックを設定し、指定された同じ変数でbashスクリプトを使用することができました。
これらのメトリックに基づいて自動スケーリングを設定する方法を理解する中で、私は googleプロジェクトホスティングサイト でbashスクリプトの束について知るようになりました。指標を設定できません。
どうすればさらに先に進むことができますか?
メモリメトリクスをCloudwatchに記録したら、既存のメトリクスの場合と同じように自動スケーリングを設定する必要があります。
まず、すべてのAWSコマンドラインツールと同様に、次のいずれかを設定(エクスポート)する必要があります。
次に、次の3つのコマンドを実行し、必要に応じて変更します(これらは、cronからではなくコマンドラインから1回だけ実行されます)。
起動構成を作成します:少なくともイメージとインスタンスタイプを渡す必要があります。追加のパラメーターはオプションですが、おそらく良い考えです。
as-create-launch-config
LaunchConfigurationName --image-id value --instance-type value
[--block-device-mapping "key1=value1,key2=value2..." ] [--kernel value]
[--key value ] [--ramdisk value ] [--group value[,value...] ]
[--user-data value ] [--user-data-file value ] [General Options]
例えば:
as-create-launch-config config-name --image-id AMI-xxxxxxxx --instance-type m1.small --key keypair-name --group security-group-name
自動スケーリンググループを作成します:ここでは、スケーリングのパラメーターを定義します-インスタンスが起動される場所、インスタンス数の制限、およびグループの関連付け作成した構成で。
as-create-auto-scaling-group
AutoScalingGroupName --availability-zones value[,value...]
--launch-configuration value --max-size value --min-size value
[--cooldown value ] [--load-balancers value[,value...] ]
[General Options]
例えば:
as-create-auto-scaling-group as-group-name --availability-zones us-east-1a --launch-configuration config-name --min-size 1 --max-size 5 --cooldown 300
(最小サイズと異なる場合は、開始するインスタンスの数である--desired-capacityを指定することもできます)
スケーリングするポリシーを作成します:ここでは、アラームがトリガーされたときに実行されるアクションを定義し、ポリシーを特定の自動スケーリンググループに関連付けます。スケールアップ用とスケールダウン用のポリシーを1つずつ作成します。
as-put-scaling-policy
PolicyName --type value --auto-scaling-group value --adjustment
value [--cooldown value ] [General Options]
このコマンドは、ポリシーをクラウドウォッチアラームに関連付けるために必要となるARNを出力します。ARNを書き留めます。各コマンドは異なるARNを返します(つまり、2つのARNがあります)。どちらがどのポリシーに対応しているかを覚えておいてください。
例えば:
拡大する:
as-put-scaling-policy HighMemPolicy --auto-scaling-group as-group-name --adjustment=1 --type ChangeInCapacity --cooldown 300
スケールダウン:
as-put-scaling-policy LowMemPolicy --auto-scaling-group as-group-name --adjustment=-1 --type ChangeInCapacity --cooldown 300
戻り例:
POLICY-ARN arn:aws:autoscaling:us-east-1:0123456789:scalingPolicy/abc-1234-def-567
ケースごとにCloudwatchアラームを作成します:収集したデータを使用して特定の状況でアラームをトリガーし、そのアラームに適切なスケーリングを実行させる必要がありますポリシー。 2つのアラームが必要になります。1つは上限しきい値用、もう1つは下限しきい値用です。
mon-put-metric-alarm
AlarmName --comparison-operator value --evaluation-periods value
--metric-name value --namespace value --period value --statistic
value --threshold value [--actions-enabled value ] [--alarm-actions
value[,value...] ] [--alarm-description value ] [--dimensions
"key1=value1,key2=value2..." ] [--insufficient-data-actions
value[,value...] ] [--ok-actions value[,value...] ] [--unit value ]
[General Options]
例えば:
上限しきい値:
mon-put-metric-alarm HighMemAlarm --comparison-operator GreaterThanThreshold --evaluation-periods 4 --metric-name UsedMemoryPercent --namespace "AWS/EC2" --period 60 --statistic Average --threshold 85 --alarm-actions arn:aws:autoscaling:us-east-1:0123456789:scalingPolicy/abc-1234-def-567 --dimensions "AutoScalingGroupName=as-group-name"
下限しきい値:
mon-put-metric-alarm LowMemAlarm --comparison-operator LessThanThreshold --evaluation-periods 4 --metric-name UsedMemoryPercent --namespace "AWS/EC2" --period 60 --statistic Average --threshold 60 --alarm-actions arn:aws:autoscaling:us-east-1:0123456789:scalingPolicy/bcd-2345-efg-678 --dimensions "AutoScalingGroupName=as-group-name"
上記の例では、(フォーラムスクリプトからの)メトリック「UsedMemoryPercent」を使用しており、「60秒以上の平均」を調べています。最初のアラームでは、その平均が4つの連続したサンプル(つまり4分)で85%を超えると、アラームをトリガーします(そしてアクションを実行します)。2番目のアラームでは、「60%未満」を探します。
良い参考資料は次のとおりです:
--help
を指定してコマンドを実行し、パラメーターの詳細を確認します。
私が提供したテンプレートスクリプトを利用できます ここ これは、EC2インスタンス自体から自動スケーリングを行うのと同じ方法だからです。 <SEND_INFORMATION_GATHERED_BY_EMAIL_HERE>
行の直後に自動スケーリングする特定のコマンドを追加するだけで済みます。これは、何が何を引き起こしているのかも知りたいからです。ただし、EC2インスタンス内に必要なAWS提供のツールがあることを確認してください。
幸運を!