ホーム
Topics
オートスケーリング
公開日:2023 年12月12日
寄稿者:Gita Jackson、Michael Goodwin
オートスケーリング(「自動スケーリング」とも呼ばれます)は、システムの需要に基づいてコンピューティング・リソースを自動的に割り当てるクラウド・コンピューティング機能です。
オートスケーリングは、一貫した可用性を維持してパフォーマンス目標を達成するために必要なリソースをアプリケーションが確実に確保できるようにすると同時に、クラウド・リソースの効率的な使用を促進し、クラウド・コストを最小限に抑えるために使用されます。Infosysが2023年に発表したホワイトペーパーによると、クラウドに移行した組織は、クラウド・コストの約32%を無駄にしています。1オートスケーリングは、リソースの効率的な利用に重点を置いているため、FinOpsプラクティスを成功させる上で有用な要素と言えます。
組織がクラウド・インフラストラクチャーを構成する場合、コンピューティング・リソース、ストレージ・リソース、ネットワーク・リソースの各ニーズの「ベースライン」に従って、リソースをプロビジョニングします。しかし、ネットワーク・トラフィックやアプリケーションの使用量の急増や減少などにより、需要は変動します。オートスケーリング機能を使用すると、人手を介さずに、CPU使用率や帯域幅の可用性といった特定のメトリクスに従って、リアルタイムの需要に合わせてリソースをスケーリングすることができます。
オートスケーリングは、過去のデータを使用して将来の需要を予測する予測スケーリングや、組織のオートスケーリング・ポリシーによって決定されたリソース・ニーズにリアルタイムで対応する動的スケーリングなど、さまざまな手段によってリソースの割り当てを最適化するために使用できます。オートスケーリング・ポリシーは、クラウド・コンピューティング・インスタンスのライフサイクルを自動化し、必要に応じて仮想マシンを起動、終了してリソースの需要に対応します。多くの場合、オートスケーリングは、利用可能なクラウド・リソースを最大限に活用するため、Elastic Load Balancingと併用されます。
自動化が可能なクラウド・コスト最適化ツールで、アプリケーションのパフォーマンスを維持しながらクラウドの支出を抑制します。
オートスケーリングはロード・バランシングに関連していますが、両者はまったく同じではありません。これらのプロセスは、どちらもバックエンドのリソースの割り当てに影響を及ぼすもので、パフォーマンスを最適化し、オーバープロビジョニングを回避するために使用されます。これらは併用されることが多いです。
ロード・バランサーは、受信トラフィックを複数のサーバーに分散して、特定のサーバーの負荷を軽減します。多くの場合、異常なインスタンスから正常なインスタンスへと、トラフィックのルーティングを変更できるようサポートするヘルス・チェックなどの機能を提供します。トラフィックの負荷を分散することにより、クラウド環境でのアプリケーションのパフォーマンスが向上します。
それとは対照的に、オートスケーリングは、安定したパフォーマンスを維持し、リソースのオーバープロビジョニング(すなわち、必要なものだけを使用すること)を回避するために、需要に基づいてシステム容量を調整します。また、リソースの需要と組織が定めたオートスケーリング・ポリシーに従って、新しいサーバーまたはコンピューティング・インスタンスを追加(または終了)します。
IBM Cloud、Amazon Web Services(AWS Cloudとも呼ばれます)、Microsoft Azure、Oracle Cloud Infrastructureなど、ほとんどのクラウド・ベンダーは、自社のクラウド・プラットフォームでオートスケーリング・サービスを提供しています。これらのサービスは、組織がクラウド・コンピューティングのニーズと目標に合わせて、オートスケーリング・ポリシーを構成するのに役立ちます。
プロバイダーやプラットフォームによって機能や料金体系が異なり、また、組織によって利用可能なリソースやユースケースも異なりますが、一般的にオートスケーリングは次のように機能します。
このプロセスは、起動構成、すなわち、ベースラインのデプロイメントから始まり、それにより、インスタンス・タイプ(1つまたは複数)が特定の容量とパフォーマンス機能とともにデプロイされます。これは多くの場合、API呼び出しとInfrastructure as Code(IaC)を使用して行われます。IaCとは、コードを活用し、ITインフラストラクチャー要素をあらかじめ定義された仕様に合わせてプロビジョニングと構成を行うプロセスのことです。
組織は、希望する容量と、インスタンスに必要な属性の種類を、そのインスタンスに対して予想されるワークロードに基づいて決定します。オートスケーリング・ポリシーを設定するに当たり、組織は、コンピューティング、ストレージまたはネットワークの使用量の目標としきい値を設定することができます。すると、現在のリソース需要により正確に対応することができるよう、指定されたアクションが自動的にトリガーされます。必要に応じて、スケーリング・アクションが開始されるたびに通知が送信されるようにポリシーを構成することもできます。
組織は、指定されたワークロードのインスタンスの最小数または最大数を維持するインスタンス・グループを設定したり、異なるタイプのワークロードを処理するために異なるインスタンス・タイプを同じグループにまとめたりすることもできます。インスタンス・タイプには次のようなものがあります。2
汎用インスタンス・タイプは、Webサーバー、小規模データベース、開発およびテスト環境など、さまざまなワークロード向けに設計されています。
このインスタンスは、高性能コンピューティング、バッチ処理、科学的モデリングなど、計算集約型のワークロード向けに最適化されており、GPUとコア数の多いCPUを使用して計算能力を最大化します。
このハイメモリ・インスタンスは、高性能データベース、分散型インメモリ・キャッシュ、リアルタイムのデータ処理/ビッグデータ分析など、メモリ集約型のワークロード向けに最適化されています。
このインスタンスは、ビッグデータ、データ・ウェアハウジング、ログ処理など、ストレージ集約型のワークロード向けに最適化されています。大容量のキャッシュとソリッドステート・ドライブ(SSD)を活用して、ワークロードの集中的な読み取りと書き込みをサポートします。
インスタンス・タイプが混在したオートスケーリング・グループにより、CloudOpsチームとDevOpsチームは、リソースの需要をより正確かつ効率的に満たすことができます。例えば、帯域幅のニーズは適切に満たされているものの、CPU使用率がオートスケーリング・ポリシーで設定されたしきい値を超えている場合、ネットワーク・トラフィック処理専用のインスタンスをそのままにして、コンピューティング固有のインスタンスをスピンアップすることができます。
チームがワークロードの需要を把握したら、新しいインスタンスの起動構成テンプレートを作成することもできます。このテンプレートは、新しいインスタンスをスピンアップするためのインスタンス・タイプ、構成パラメーターおよびその他のポリシーに加え、それらがクラウド環境全体にどう貢献するか、を定義します。これにより、組織は仮想マシンのライフサイクルを完全に自動化できます。
スケーリングには複数のタイプがあり、オートスケーリングにもさまざまな方法があります。
水平スケーリング、つまり「スケール・アウト」により、クラウド・コンピューティング環境に、より多くのマシンやノードが追加されます。また、スケール・インして、環境内のノード数を減らすこともできます。
垂直スケーリング、つまり「スケール・アップ」とは、現在のクラウド・コンピューティング環境における既存のノードにRAM、CPU、ストレージなどを追加して、ノードの能力をアップグレードするプロセスです。
予測、動的、スケジュールという、いずれかのオートスケーリング・ポリシーにすることができます。
動的スケーリング・ポリシーは、リソース・ニーズが発生するとそれに対応し、リアルタイムの使用率に基づいてリソースの割り当てを調整します。動的スケーリング・ポリシーを使用すると、組織は、CPU使用率といった特定のしきい値に到達したときに、特定のノードまたはオートスケーリング・グループにさらに多くのリソースを送信したり、追加のインスタンスをスピンアップしたりすることができます。
例えば、組織が不規則なスケジュールで大量のリソースを消費するWebアプリケーションを実行している場合、動的スケーリング・ポリシーを使用すれば、必要に応じてリソースの可用性を調整することができます。多くの場合、動的スケーリングにはクールダウン期間が伴いますが、その期間においても、増加したリソースは、トラフィックがさらに急増した場合であっても、利用可能です。
スケジュール・オートスケーリング・ポリシーは、あらかじめ決められたスケジュールに従ってリソースを割り当てます。例えば、トラフィックやリソースの需要が朝よりも夕方の方がはるかに高いことが組織でわかっている場合、その需要に対応するためにオートスケーリング・ポリシーを設定できます。
効果的に導入されたオートスケーリングは、組織のクラウド・コンピューティング環境を最適化し、全体的なクラウド・コストを削減する上で重要な役割を果たすことができます。
堅固なオートスケーリング・ポリシーを設定することで、組織は手動プロビジョニングへの依存を減らし、より安定したシステム・パフォーマンスを確保することができます。
オートスケーリングにより、クラウド環境は人手を介すことなく、リソースの需要にリアルタイムで対応することができます。これは手動スケーリングよりも実に効率的です。これにより、従業員の燃え尽き症候群を軽減し、構成とプロビジョニングの一貫性を向上させ、さらには、従業員の時間をより価値のあるタスクのために確保することができます。
オートスケーリングにより、組織はリソースの監視とプロビジョニングに追加で人員を割り当てることなく、クラウド・コンピューティング環境と機能をよりシームレスに拡張できます。
オートスケーリングは、アクティビティや需要に関係なく、クラウド環境に必要なコンピューティング、ネットワーク、ストレージの各リソースを確保することにより、クラウド・サービスの安定した信頼性の高いパフォーマンスを維持するのに役立ちます。
Webアプリとネットワークのパフォーマンスがより安定するということは、ユーザーに対するサービスのレベルもより安定するということです。
リソースの手動プロビジョニングを利用している場合、組織は需要のピーク時にリソースを確実に利用できるようにするため、予防策としてオーバープロビジョニングを行うことが多いです。コンピューティング、ネットワーク、ストレージの各リソースを自動的に拡張してリアルタイムで需要に対応できるプラットフォームを使用することで、組織はオーバープロビジョニングを回避して、必要なものだけを使用することができ、その結果、クラウドの費用が削減され、ROIが向上します。
IBM TurbonomicプラットフォームのAI搭載の自動化ソリューションとクラウド最適化ソリューションを使用すると、アプリケーション・パフォーマンス(従来型とクラウドネイティブの両方)の確保とコストの最適化を継続的に実現できます。このプラットフォームのクラウド・コスト管理ツールは、パブリック、プライベート、マルチクラウド、ハイブリッドクラウドといった各環境と、主要なクラウド・プロバイダーに対応しています。
IBM Turbonomicハイブリッド・クラウド・コスト最適化プラットフォームを使用すると、重要なアクションをリアルタイムで継続的に自動化し、スタックの各レイヤーでコンピュート、ストレージ、ネットワークの参考情報を最も効率的な形でアプリに事前に割り振ることができます。
Carhartt社がIBM Turbonomicハイブリッドクラウド・コスト最適化ソフトウェアを使用して、ハイブリッドクラウド・インフラストラクチャーが新たな急激な需要の急増にどのように対処したかをご覧ください。
業界の専門家による洞察と、検証を行ったIBM Turbonomicユーザーからのレビューに基づいたベスト・プラクティスを記載した独自のPeerPaperレポートをお読みください。
AIを活用した自動化をビジネスに導入することで、アプリケーションのパフォーマンスを確保できます。
このクイック・ガイドで、急成長するFinOpsのクラウド財務管理分野の詳細についてご確認ください。
AI主導の自動化により、アプリケーション・リソース管理がどのようにしてプログラム識別情報を行動に変えるかをご確認ください。
IBM Turbonomicプラットフォームのすべてのバージョンの資料を確認できます。
1 「クラウド・コストの最適化」(ibm.com外部へのリンク)」、Sarika Nandwani、Infosys.com、2023年
2 「 AWS EC2インスタンス・タイプ:AWSでアプリケーションをホストする上での課題とベスト・プラクティス」、Christopher Graham、2023年8月23日