オートスケーリング( auto scalingまたはauto-scalingとも表記され、自動スケーリングと呼ばれることもあります) は、クラウド コンピューティングで使用される手法で、サーバー ファーム内の計算リソースの量 (通常はアクティブ サーバーの数で測定) を、ファームの負荷に基づいて自動的に動的に調整します。たとえば、Web アプリケーションの背後で実行されているサーバーの数は、サイト上のアクティブ ユーザーの数に基づいて自動的に増減する場合があります。このような指標は 1 日を通して劇的に変化する可能性があり、サーバーはアイドル状態のときでも実行に費用がかかる限られたリソースであるため、現在の負荷をサポートしながら、アクティビティの突然の大きなスパイクをサポートできるように「ちょうど十分な」サーバーを実行するインセンティブがしばしばあります。オートスケーリングは、アクティビティが低いときにアクティブ サーバーの数を減らし、アクティビティが高いときに新しいサーバーを起動できるため、このようなニーズに役立ちます。オートスケーリングは、負荷分散の概念と密接に関連しており、その概念に基づいています。[1] [2]
利点
自動スケーリングには次のような利点があります。
- 独自のウェブサーバーインフラを運用している企業にとって、オートスケーリングとは通常、負荷が低い時間帯に一部のサーバーをスリープ状態にして、電気代(およびマシンの冷却に水を使用している場合は水道代)を節約することを意味します。[3]
- クラウドでホストされているインフラストラクチャを使用している企業にとって、ほとんどのクラウドプロバイダーは最大容量ではなく総使用量に基づいて料金を請求するため、自動スケーリングは請求額の削減を意味します。[4]
- 特定の時点で実行または支払うコンピューティング能力の合計を削減できない企業でも、自動スケーリングにより、トラフィックが少ないときに自動スケーリングによって解放されたマシン上で、時間的制約の少ないワークロードを実行できるため、役立ちます。[5]
- Amazon Web Servicesが提供するような自動スケーリングソリューションは、不健全なインスタンスを置き換えることもできるため、ハードウェア、ネットワーク、アプリケーションの障害からある程度保護することができます。[6]
- 自動スケーリングにより、運用ワークロードが変動し予測できない場合でも、稼働時間と可用性が向上します。
オートスケーリングは、サーバーの使用を毎日、毎週、または毎年固定するサイクルと異なり、実際の使用パターンに反応するため、トラフィック負荷に対してサーバーが少なすぎたり多すぎたりする潜在的なデメリットを軽減します。たとえば、トラフィックが通常深夜に少ない場合、静的スケーリングソリューションでは一部のサーバーを夜間にスリープするようにスケジュールしますが、これにより、人々がインターネットをより多く使用する夜(たとえば、バイラルニュースイベントのため)にダウンタイムが発生する可能性があります。一方、オートスケーリングは、予期しないトラフィックの急増をより適切に処理できます。[3] [7]
用語
以下のリストでは、Amazon Web Services (AWS) で使用されている用語を使用しています。[8]ただし、別名が記載されており、Amazon サービスの名前に固有の用語は使用されていません。
練習する
アマゾン ウェブ サービス (AWS)

アマゾンウェブサービスは、開発者がプログラムでインスタンス(マシン)を作成および終了できるAmazon Elastic Compute Cloud (EC2)サービスを2006年8月に開始しました。 [11] [12]最初の開始時には、AWSは自動スケーリングを提供しませんでしたが、プログラムでインスタンスを作成および終了する機能により、開発者は自動スケーリング用の独自のコードを柔軟に記述できるようになりました。
AWS用のサードパーティの自動スケーリングソフトウェアは、2008年4月頃から登場し始めました。これには、Scalr [13]やRightScaleのツールが含まれます。RightScaleはAnimotoによって使用され、自動スケーリングを採用することでFacebookのトラフィックを処理できるようになりました。[14] [15]
2009年5月18日、AmazonはAmazon Elastic Compute Cloudの一部として、Elastic Load Balancingとともに独自の自動スケーリング機能を開始しました。[16]自動スケーリングは現在、AmazonのEC2サービスの不可欠な要素となっています。[2] [17] [18] Amazon Web Servicesでの自動スケーリングは、Webブラウザまたはコマンドラインツールを通じて行われます。[19] 2016年5月にはAWS ECSサービスでも自動スケーリングが提供されました。[20]
オンデマンドビデオプロバイダーのNetflixは、非常に変化する消費者のニーズを満たすためにAmazon Web Servicesで自動スケーリングを使用したことを文書化しました。彼らは、積極的なスケールアップと、遅れて慎重なスケールダウンが、稼働時間と応答性の目標を最も達成できることを発見しました。[7]
TechCrunchの記事で、AWSクラウドインフラストラクチャの最適化を支援するサービスであるNewvemの共同設立者兼CEOであるZev Laderman氏は、スタートアップ企業がAmazon Web Servicesのコストを低く抑えるために自動スケーリングを使用することを推奨しました。[4]
AWS の使用に関するさまざまなベストプラクティスガイドでは、負荷が変動しない場合でも、その自動スケーリング機能を使用することを推奨しています。これは、自動スケーリングには、何らかの理由 (ハードウェア障害、ネットワーク障害、アプリケーションエラーなど) で不健全になったインスタンスを自動的に置き換えることと、価格や容量の理由で中断されたスポットインスタンスを自動的に置き換えることという 2 つの利点があるためです。これにより、スポットインスタンスを本番環境で使用しやすくなります。[6] [21] [22] Netflix の社内ベストプラクティスでは、すべてのインスタンスを自動スケーリンググループに含める必要があり、このベストプラクティスを強制するために、適合モンキーは自動スケーリンググループに含まれていないインスタンスをすべて終了します。[23]
マイクロソフトのWindows Azure
2013年6月27日、マイクロソフトはWindows Azureクラウドコンピューティングプラットフォームに自動スケーリングのサポートを追加すると発表しました。 [24] [25] [26]この機能に関するドキュメントはMicrosoft Developer Networkで入手できます。[10] [27]
オラクルクラウド
Oracle Cloud Platformでは、自動スケーリングルールを定義することで、サーバーインスタンスがクラスタを自動的にスケールインまたはスケールアウトできます。[28]これらのルールはCPUやメモリの使用率に基づいており、ノードを追加または削除するタイミングを決定します。
Google クラウド プラットフォーム
2014年11月17日、Google Compute Engineは、Google Cloud Platformアプリケーションで使用するための自動スケーリング機能のパブリックベータ版を発表しました。[29] [30] [31] [32] 2015年3月現在、自動スケーリングツールはまだベータ版です。[9]
フェイスブック
2014年8月のブログ投稿で、Facebookのエンジニアは、同社がエネルギーコストを削減するためにオートスケーリングを使い始めたことを明らかにした。ブログ投稿では、トラフィックの少ない時間帯(深夜頃)のエネルギー使用量が27%減少し、通常の24時間サイクルではエネルギー使用量が10~15%減少したと報告されている。[3] [33]
Kubernetes 水平ポッド オートスケーラー
Kubernetes Horizontal Pod Autoscalerは、観測されたCPU使用率(またはベータサポートではアプリケーションが提供する他のメトリクス)に基づいて、レプリケーションコントローラ、デプロイメント、またはレプリカセット内のポッドの数を自動的にスケーリングします。[34]
代替の自動スケーリング決定アプローチ
デフォルトでは、自動スケーリングはトラフィックのスケーリングに対処するためにリアクティブ決定アプローチを使用します。スケーリングは、メトリックのリアルタイムの変更に応じてのみ行われます。場合によっては、特に変更が非常に急速に発生する場合、スケーリングに対するこのリアクティブ アプローチでは不十分です。以下では、他の 2 種類の自動スケーリング決定アプローチについて説明します。
スケジュールされた自動スケーリングアプローチ
これは、特定の時間帯に自動スケーリング グループの最小サイズ、最大サイズ、または希望する容量を変更する自動スケーリングのアプローチです。スケジュールされたスケーリングは、たとえば、特定の時間帯にトラフィック負荷が増加または減少することがわかっているが、変化が急激すぎてリアクティブ アプローチに基づく自動スケーリングでは十分な速さで対応できない場合に役立ちます。AWS 自動スケーリング グループは、スケジュールされたスケーリングをサポートしています。[35]
予測的な自動スケーリング
この自動スケーリングのアプローチでは、予測分析を使用します。最近の使用傾向と過去の使用データ、およびその他の種類のデータを組み合わせて将来の使用状況を予測し、これらの予測に基づいて自動スケーリングするという考え方です。
Netflixは、インフラの一部と特定のワークロードについて、予測分析エンジンであるScryerがAmazonのリアクティブオートスケーリングアプローチよりも優れた結果をもたらすことを発見しました。特に、以下の点で優れていました。[36] [33]
- 近い将来の需要の急増を特定し、少し早めに容量を準備する
- 可用性ゾーンやリージョン全体の障害などの大規模な障害への対処
- 変化するトラフィック パターンに対応し、一日のさまざまな時間帯の需要の典型的なレベルと変化率に基づいて、スケール アウトまたはスケール インの速度をより柔軟に調整できます。
2018年11月20日、AWSは予測スケーリングが自動スケーリングサービスの一部として利用可能になると発表しました。[37]
参照
- クラウドコンピューティング
- 負荷分散
- アマゾンウェブサービス
- Docker による自動スケーリング
参考文献
- ^ 「クラウドの上: クラウド コンピューティングに関するバークレーの見解」(PDF)。Berkeley EECS。2009 年 2 月 10 日。2015年3 月 21 日閲覧。
- ^ ab 「Auto Scaling」 。Amazon Web Services。2015年3 月 21 日閲覧。
- ^ abc Wu, Qiang (2014 年 8 月 8 日)。「Autoscale で Facebook のソフトウェア インフラストラクチャのエネルギー効率を向上」Facebook Code Blog。2015年3 月 21 日閲覧。
- ^ ab Laderman, Zev (2012 年 4 月 22 日)。「Amazon Web Services で犯された 10 大ミス」。TechCrunch。2015年3月 21 日閲覧。
- ^ Park, Andrew; Denlinger, Darrell; Watson, Coburn (2015 年 9 月 18 日)。「独自の EC2 スポット市場の作成」。Netflix。2016年12月 16 日閲覧。
- ^ ab Wittig, Michael (2015 年 12 月 26 日)。「避けるべき 5 つの AWS の間違い」。cloudonaut。2016年12 月 16 日閲覧。
- ^ ab Orzell, Greg; Becker, Justin (2012 年 1 月 18 日)。「Amazon クラウドでの自動スケーリング」。Netflix Tech Blog。2012年3 月 21 日閲覧。
- ^ ab 「Auto Scaling とは?」Amazon Web Services . 2016 年12 月 16 日閲覧。
- ^ ab 「Autoscaler」。Google Cloud Platform。2015年3 月 21 日閲覧。
- ^ ab 「自動スケーリング ガイダンス」。Microsoft Developer Network。2015年 8 月 26 日。
- ^ Cubrilovic, Nik (2006年8月24日). 「Almost Exclusive: Amazon Readies Utility Computing Service」. TechCrunch . 2016年12月4日閲覧。
- ^ Barr, Jeff (2006 年 8 月 25 日)。「Amazon EC2 ベータ版」。Amazon Web Services ブログ。2013 年5 月 31 日閲覧。
- ^ Work, Henry (2008 年 4 月 3 日)。「Scalr: 自動スケーリングのオープンソース Amazon EC2 の取り組み」。TechCrunch。2015年3月 21 日閲覧。
- ^ Howlett, Dennis (2008 年 6 月 25 日)。「RightScale のクラウド管理が MySQL にまで拡大。Amazon Web Services プラットフォームのクラウド コンピューティング管理を専門とする RightScale は、本日、MySQL Enterprise のサポートを発表しました。7 月 1 日に開始されるこのサービスは、大規模なデータベース アプリケーション向けの MySQL Enterprise プレミアム レベルのサポートと組み合わせた、自動化された導入、管理、スケーリングを提供します」。ZDNet。2016年12月 16 日閲覧。
- ^ von Eicken, Thorsten (2008年4月23日). 「AnimotoのFacebookスケールアップ」。2016年12月20日時点のオリジナルよりアーカイブ。 2016年12月16日閲覧。
- ^ Barr, Jeff (2009 年 5 月 18 日)。「Amazon EC2 の新機能: Elastic Load Balancing、Auto Scaling、Amazon CloudWatch」。Amazon Web Services。2016年6 月 15 日閲覧。
- ^ 「オートスケーリングとは?」 TechTarget。2019年4月29日時点のオリジナルよりアーカイブ。2015年3月21日閲覧。
- ^ Barr, Jeff (2014 年 7 月 30 日)。「Auto Scaling のアップデート - ライフサイクル管理、スタンバイ状態、および DetachInstances」。Amazon Web Services (公式ブログ) 。2015年3 月 21 日閲覧。
- ^ 「Auto Scaling コマンドラインツール」。Amazon Web Services (コミュニティ編集ページ) 。2015 年3 月 21 日閲覧。
- ^ 「Amazon ECS による自動スケーリング」。2016 年 5 月 18 日。2019 年 9 月 25 日時点のオリジナルよりアーカイブ。2019年2 月 12 日閲覧。
- ^ Adams, Rich (2014 年 2 月 3 日)。「AWS を始める前に知っておきたかったヒント。AWS でさまざまなアプリケーションを構築およびデプロイして学んだことを基に、数年前に知っておきたかった Amazon Web Services (AWS) に関するヒントをランダムに集めました。」。2016 年12 月 16 日閲覧。
- ^ 「Amazon EC2 スポットインスタンスの使用方法」。wikiHow。2016年12 月 16 日閲覧。
- ^ 「Netflix Simian Army」Netflix 2011年7月19日2016年12月5日閲覧。
- ^ Lardinois, Frederic (2013 年 6 月 27 日)。「Microsoft が Windows Azure に Auto Scaling を追加」。TechCrunch。2015年3月 21 日閲覧。
- ^ 「Microsoft、Windows Azureに自動スケーリングとアラートを追加」ZDNet 2013年6月27日2015年3月21日閲覧。
- ^ Butler, Brandon (2013年8月7日). 「Google、MicrosoftがAmazonに追いつく、クラウドに負荷分散と自動スケーリングを追加」Network World . 2018年5月18日時点のオリジナルよりアーカイブ。 2015年3月21日閲覧。
- ^ 「自動スケーリング アプリケーション ブロック」。Microsoft Developer Network。2015年3 月 21 日閲覧。
- ^ 「PaaS サービスの管理」。Oracleヘルプ センター。2018年 5 月 16 日閲覧。
- ^ Balejko, Filip (2014 年 11 月 17 日)。「自動スケーリング、Google Compute Engine へようこそ」。Google Cloud Platformブログ。2015年3 月 21 日閲覧。
- ^ Protalinski, Emil (2014 年 11 月 17 日)。「Google Compute Engine が Autoscaler を導入し、さまざまなトラフィックとワークロードに基づいてアプリのリソースを調整」。VentureBeat。2015年3月 21 日閲覧。
- ^ Lardinois, Frederic (2014 年 11 月 17 日)。「Google が Compute Engine に自動スケーリング機能を導入」。TechCrunch。2015年3月 21 日閲覧。
- ^ Verge, Jason (2014 年 11 月 17 日)。「Google が Compute Engine で自動スケーリング ベータ版を開始」。データセンター ナレッジ。2015年3 月 21 日閲覧。
- ^ ab 「オートスケーリング:クラウドがもたらす驚異的なブースト」 Morpheus、2016 年 11 月 2 日。2016年12 月 16 日閲覧。
- ^ 「Horizontal Pod Autoscaler Walkthrough」。2018年6月21日閲覧。
- ^ 「スケジュールされたスケーリング」。Amazon Web Services。2016年12 月 16 日閲覧。
- ^ Jacobson, Daniel; Yuan, Danny; Joshi, Neeraj. 「Scryer: Netflix の予測的自動スケーリング エンジン」。Netflix技術ブログ。Netflix。2015年5月 28 日閲覧。
- ^ Barr, Jeff (2018 年 11 月 20 日)。「新機能 – 機械学習を活用した EC2 の予測スケーリング」Amazon Web Services。2018年11 月 23 日閲覧。
