オートスケーリング(「自動スケーリング」とも呼ばれます)は、システムの需要に基づいてコンピューティング・リソースを自動的に割り当てるクラウド・コンピューティング機能です。
オートスケーリングは、一貫した可用性を維持してパフォーマンス目標を達成するために必要なリソースをアプリケーションが確実に確保できるようにすると同時に、クラウド・リソースの効率的な使用を促進し、クラウド・コストを最小限に抑えるために使用されます。
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、ストレージなどを追加して、ノードの能力をアップグレードするプロセスです。
予測、動的、スケジュールという、いずれかのオートスケーリング・ポリシーにすることができます。
予測スケーリング・ポリシーは、人工知能(AI)と機械学習を使用して、使用履歴に基づいて今後のリソースニーズを事前に予測します。
例えば、予測オートスケーリング・ポリシーは、年末商戦を控えたあるeコマース企業のWebトラフィックが増加する可能性を特定し、設定されたポリシーに従ってスケールアウトまたはスケールアップできます。このアプローチはネットワークのレイテンシーとダウンタイムを事前に最小限に抑えるのに役立ちます。
動的スケーリング・ポリシーは、リソース・ニーズが発生するとそれに対応し、リアルタイムの使用率に基づいてリソースの割り当てを調整します。動的スケーリング・ポリシーを使用すると、組織は、特定のノードまたはオートスケーリング・グループにさらに多くのリソースを送信できます。また、CPU使用率といった特定のしきい値に到達したときに、追加のインスタンスをスピンアップすることもできます。
例えば、組織が不規則なスケジュールで大量のリソースを消費するWebアプリケーションを実行している場合、動的スケーリング・ポリシーを使用すれば、必要に応じてリソースの可用性を調整することができます。多くの場合、動的スケーリングにはクールダウン期間が伴いますが、その期間においても、増加したリソースは、トラフィックがさらに急増した場合であっても、利用可能です。
スケジュール・オートスケーリング・ポリシーは、あらかじめ決められたスケジュールに従ってリソースを割り当てます。例えば、トラフィックやリソースの需要が朝よりも夕方の方がはるかに高いことが組織でわかっている場合、その需要に対応するためにオートスケーリング・ポリシーを設定できます。
効果的に導入されたオートスケーリングは、組織のクラウド・コンピューティング環境を最適化し、全体的なクラウド・コストを削減する上で重要な役割を果たすことができます。
堅固なオートスケーリング・ポリシーを設定することで、組織は手動プロビジョニングへの依存を減らし、より安定したシステム・パフォーマンスを確保できます。
オートスケーリングにより、クラウド環境は人手を介すことなく、リソースの需要にリアルタイムで対応できます。これは手動スケーリングよりも実に効率的です。これにより、従業員の燃え尽き症候群を軽減し、構成とプロビジョニングの一貫性を向上させ、さらには、従業員の時間をより価値のあるタスクのために確保できます。
オートスケーリングにより、組織はリソースの監視とプロビジョニングに追加で人員を割り当てることなく、クラウド・コンピューティング環境と機能をよりシームレスに拡張できます。
オートスケーリングは、アクティビティや需要に関係なく、クラウド環境に必要なコンピューティング、ネットワーク、ストレージの各リソースを確保することにより、クラウド・サービスの安定した信頼性の高いパフォーマンスを維持するのに役立ちます。
Webアプリとネットワークのパフォーマンスがより安定するということは、ユーザーに対するサービスのレベルもより安定するということです。
リソースの手動プロビジョニングを利用している場合、組織は需要のピーク時にリソースを確実に利用できるようにするため、予防策としてオーバープロビジョニングを行うことが多いです。リアルタイムで需要に応じてコンピューティング、ネットワーク、ストレージを自動的に拡張できるプラットフォームを使用することで、組織はオーバープロビジョニングを回避できます。このアプローチにより、必要なものだけを使用することができるため、クラウドの費用が削減され、ROIが向上します。
無料のIBM Cloudアカウントを作成して、IBM Watson APIを含む40以上の常時無料の製品にアクセスしましょう。
IBM Cloudは、規制の多い業種・業務向けに設計されたエンタープライズ・クラウド・プラットフォームであり、オープンでAI対応のセキュアなハイブリッド・ソリューションです。
IBMのクラウド・コンサルティング・サービスで新しい機能にアクセスし、ビジネスの俊敏性を高めましょう。ハイブリッドクラウド戦略や専門家とのパートナーシップを通じて、ソリューションを共創し、デジタル・トランスフォーメーションを加速させ、パフォーマンスを最適化する方法をご覧ください。
1「Cloud cost optimization」、Sarika Nandwani、Infosys.com、2023年。
2「AWS EC2 instance types: Challenges and best practices for hosting your application in AWS」、Christopher Graham、2023年8月23日。