BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース AmazonがEC2 Container Serviceで自動スケーリングを提供

AmazonがEC2 Container Serviceで自動スケーリングを提供

原文(投稿日:2016/06/06)へのリンク

Amazonは先日,同社ECSサービスに自動スケール機能を導入すると発表した。これによってAmazon ECSで,自動スケールアウトとスケールインが可能になる。スケールイベントは,しきい値ベースのメトリクスが期待値を超えるか下回る場合に,Amazon CloudWatchのアラームによって実行される。

EC2 Container Serviceの名称でも知られるAmazon ECSは,Amazon EC2クラスタ上でDockerコンテナをサポートするマネジメントサービスである。EC2クラスタでは自動スケーリングがすでにサポートされていたが,EC2クラスタ上で動作するコンテナの自動スケールサービスは,これまではサポートされていなかった。

自動スケールの起動イベントは,Amazon Cloud Watchのメトリクスに従って実行される。メトリクスにはCPU利用率やデータ転送,ディスク使用量などが含まれているが,AWSコマンドのput-metrics-dataやPutMetricDataクエリAPIを通じて,開発者が独自のメトリクスをCloudWatchに登録することも可能だ。

自動スケールを適用する例として,CPU負荷の高いWebサービス展開があげられる。このシナリオで望まれるのはコンテナのスケールアウトだ。CPU負荷が通常のレベルに戻れば,スケールインイベントを発行することでコンテナ数を削減し,計算コストを抑えられる。

次の画像はAWS Management Consoleを使って,コンテナおよびクラスタ層のスケールインイベントとスケールアウトイベントを設定する様子を示したものだ。いずれのシナリオにおいても,スケールイベントはCPU使用率のレベルによってトリガされる。

https://aws.amazon.com/blogs/compute/automatic-scaling-with-amazon-ecs/より引用

マルチAZ (アベイラビリティゾーン) EC2クラスタとElastic Load Balancersを使用すれば,EC2クラスタとEC2 Container Serviceを複数のアベイラビリティゾーンにスケールすることで,フォールトトレランス性を持たせることも可能だ。Amazon Web ServicesエンタープライズソリューションアーキテクトのMayank Thakkar氏は,自動スケールアップのセットアップするプロセスについて,“自動的にスケールするサービスを生成するプロセスはECSコンソールとCLI,SDKでサポートされています。希望するタスクの最小数と最大数を指定して,ひとつ以上のスケーリングポリシを定義すれば,以降の処理はService Auto Scalingが行ないます。サービススケジューラではアベイラビリティゾーンの設定も可能ですので,ECSが複数のゾーンに分散される心配はありません”,と説明している

Thakkar氏はまた,EC2クラスタのスケーリングがコンテナよりも時間の掛かる場合があることに注意を呼びかけた上で,その遅延の影響を軽減するための方策を提案している。“予備のクラスタ容量をある程度確保できるように,クラスタポリシを設定しておくとよいでしょう。これによってECSサービスのスケールアップが高速化すると同時に,必要に応じて,いくつかのEC2インスタンスに余裕を持たせておくことができます。”

コンテナサービスで自動スケーリングを提供するパブリッククラウドベンダは,Amazonだけではない。Microsoft Azureもこの機能を,Azure Virtual Machine Scale Sets (VMSS)として提供している。同社のAzure Insights Autoscaleを利用することで,事前のVMプロビジョンを必要としない自動スケールを実現する。Azure VMSSはコンテナだけでなく,大規模なコンピューティングやビッグデータのワークロードでも利用可能だ。通常はARMテンプレートを使用してデプロイされるが,REST APIやPowershell,あるいはAzure CLIで生成することもできる。

 
 

この記事を評価

関連性
形式
 
 

この記事に星をつける

おすすめ度
スタイル

BT