Quantcast
Channel: Amazon Web Services ブログ
Viewing all articles
Browse latest Browse all 446

【AWS発表】Auto Scaling の機能アップデート - より素早く反応してスケーリングするための新しいスケーリングポリシー

$
0
0

Auto Scalingを使うと処理能力の需要変化に応じて Amazon Elastic Compute Cloud (EC2)インスタンスを追加したり、削除したりして対応するシステムを構築できます。

この記事について考えていた時、Auto Scaling がどのように動作して他の AWS サービスと連携するかを完全に理解できるように Auto Scaling を分解して紹介するのは面白いのではないかと思いました。(実際、お客様の多くが自分自身でインスタンスを作成、削除する代わりに Auto Scaling を使っておられます。)以下が動作しているパーツです。:

リソース作成 - Auto Scaling を実現するためには、必要に応じて EC2 インスタンスを作成、削除できる能力が必要です。もちろん、AWS は API で操作でき、これらの操作は RunInstancesTerminateInstancesで行え、DescribeInstancesが手助けになります。:

リソース監視 - インスタンスがどの程度負荷(CPU 使用率、ネットワークトラフィックなど)がかかっているか計測して監視することで、スケーリングさせるかの判定を行います。これは、Amazon CloudWatch で実現されます。:

アラーム - リソースの使用率を監視していますので、どのような状態の時にスケールアウトあるいはスケールインの指示をだすのか知る必要があります。これは、Amazon CloudWatch で実現されます。:

スケーリング操作 - 最後のステップはアラームが上がった時に実際に操作行うことです。これは CloudWatch のアラーム が連携して AutoScaling が行います。:

操作は特定の Auto Scaling グループに対して定義し、追加や削除するインスタンス数を指定する事ができます。全体的な数を指定するだけではなく、20% インスタンス台数を増やすなどパーセントで増減させるインスタンスの数を指定することもできます。

新機能 - 複数ステップのスケーリングポリシー

複数ステップのポリシーでスケーリングさせられる新機能により Auto Scaling をより柔軟なものにしました。

私達の目標は、負荷に応じて素早く劇的に変化してより上手く処理をさばけるシステムをお客様が構築できるようになることです。発生したアラームの大きさにあわせて比例あるいは適切な方法で対応できるスケーリングポリシーを定義できるようになりました。例えば、標準的なレスポンスを実現するために平均 CPU 使用率を 50% 以下になるようにするために、少し越えた場合 (50% - 60%) には 1 個追加し、さらに越えていた場合 (60% - 70% や 70% - 80%) は 2 個以上追加し、使用率が 80% を越えていた場合はかなり積極的に追加するなどです。以下は、そのように設定した場合の Auto Scaling グループです。:

この例ではグループに対し固定のインスタンス数 (1, 2, 4, 8) を追加しました。個々のステップでインスタンス数を 50%, 100%, 150%, 200% 増やすパーセントに基づくポリシーを定義することもできます。最終ステップの上限は効力のある正の無限大です。また、積極的に増加させるポリシーと同様にスケールダウンさせるポリシーも定義することができます。

上の例にも載っているように、インスタンスが動作できる状態になって負荷を振り分け始められる準備ができるまでどの程度の時間かかるか Auto Scaling に指定することもできます。この待ち期間の間も、Auto Scaling はグループの現在のサイズを計算する際には新しく作成されたインスタンスを含めます。しかしながら、このスケーリングしている間はグループの CloudWatch メトリックに基づきインスタンスが増減されることはありません。新しいインスタンスが負荷を分担する準備をしている間に、さらに不要なスケーリングが発生してしまうことを防止します。

スケーリング操作が行われている間や異常なインスタンスが新しいものに交換されている間にも、複数ステップのスケーリングポリシーはアラームを連続的に評価します。これにより需要の変化に素早く対応できるようになります。CPU 負荷があがり、ポリシーの最初の1段階目のステップが有効になったとします。指定された準備時間 (この例では 300 秒) の間も、負荷はあがり続けてより積極的な対応が適切になるかもしれません。幸いにも Auto Scaling はこのような状況に上手く対応し、高いギアに自動的に切り替えます(つまり、より高い段階のステップを使用します)。同じリソースに対して複数のスケーリングポリシー(例えば、CPU 使用率とインバウンドのネットワークトラフィックに基づく)を作成した場合は、Auto Scaling は両方のポリシーを確認して、最も大きな変更を実施するポイリシーを選択します。

これらの新しいスケーリングポリシーは AWS コマンドラインインターフェイス(CLI)Auto Scaling APIを使っても作成することができます。

新しい機能は既にご利用可能で、今日から使い始めて頂けます。

— Jeff (翻訳は辻が担当しました。翻訳元はこちら。)


Viewing all articles
Browse latest Browse all 446

Trending Articles