Amazon Web Services(AWS)は、機械学習(ML)アルゴリズムを採用して需要の急増を予測し、リソースの過剰プロビジョニングを最小限に抑えながらアプリケーションの可用性と応答性を確保する高度なスケーリングポリシー「Predictive Scaling for Amazon ECS」をこのほどリリースした。
Amazon Elastic Container Service (Amazon ECS)は、AWSとシームレスに統合されたコンテナ・オーケストレーション・プラットフォームだ。コンテナ化されたアプリケーションの効率的なデプロイと管理をスケールに応じて行うことができる。Amazon ECSのリソースを管理するための重要な機能は、Service Auto Scalingであり、変動するワークロードに合わせてサービス内のタスク数を動的に調整する。Application Auto Scalingを活用することで、ユーザーはCPU使用率、リクエスト率、キューの深さのようなカスタムパラメータなどのメトリクスに基づいて、ターゲットトラッキングやステップスケーリングポリシーを実装できる。また、スケジュールされたスケーリングによって、繰り返し発生するトラフィックパターンに合わせて事前に調整もできる。
Amazon ECS Predictive Scalingは既存のスケーリングメカニズムを補完し、過去のパターンとリアルタイムのメトリクスを組み合わせてタスクカウントを最適化する。このプロアクティブなアプローチは、一貫してトラフィックが変動するワークロードや、初期化時間の延長を必要とするワークロードに特に有利である。Predictive Scalingは、ターゲット・トラッキングのようなリアクティブなポリシーと並行して動作し、時期尚早のスケールアップを回避し、キャパシティが予測される需要変化と即時の需要変化の両方を満たすようにする。
Predictive Scalingはいくつかの利点を提供する。需要の変化を予測し、急増が発生する前にタスクを初期化できるため、パフォーマンスが向上し、レイテンシーが短縮される。MLアルゴリズムは継続的に需要の傾向を分析し、時間の経過とともにより精度の高い予測をする。変化するパターンに対応するために手動での調整が必要なスケジューリングとは異なり、Predictive Scalingは自動的に適応するため、管理オーバーヘッドが削減され、スケーラビリティが向上する。
例えるなら、Predictive Scalingは、営業時間中にトラフィックが急増するアプリケーションや、特定の間隔でアクティビティが急増するアプリケーションなど、周期的なトラフィックを伴うアプリケーションに最適である。初期化要件が大きいワークロードの場合、Predictive Scalingはプロアクティブにスケーリングすることで準備を整えて、リアクティブ・スケーリングにありがちな遅延を軽減する。さらに、この機能は、リアルタイムのメトリクスにのみ基づくリアクティブなポリシーによって引き起こされるタイミングを逸したスケールアップに対するセーフガードとして機能し、複雑なスタートアップ依存関係を持つアプリケーションに堅牢なソリューションを提供する。
Predictive Scalingの設定は、既存の構成を変更することなくキャパシティ予測を生成するForecast Onlyモードを有効にすることから始まる。このモードでは、ユーザーはライブ環境で予測を検証できる。予測に対する信頼が確立された段階で、Forecast And Scaleモードに移行することで、予測された需要に基づいて自動化されたスケーリング決定が有効になる。設定プロセスには、CPU使用率などの関連メトリクスを選択し、タスクをスケールアウトするためのバッファ時間を事前に定義することが含まれる。予測は過去のデータに依存し、より多くのデータが利用可能になるにつれて精度が向上する。
Predictive Scalingは複数のポリシーをサポートしており、異なるメトリクスを比較してもっとも効果的な構成を決定できる。Amazon ECSコンソールのレコメンデーションは、もっともパフォーマンスの高いポリシーをハイライトし、ユーザーがこれらのスケーリング戦略を微調整できるようにする。Predictive Scalingとリアクティブ・ポリシーの統合により、ベースラインのキャパシティ調整とリアルタイム・スケーリングを組み合わせた包括的なアプローチが保証され、需要変動に効率的に対応できる。
Predictive Scalingを実装するには、ユーザーはAmazon ECSコンソールのService Auto Scalingセクションでこの機能を設定する必要がある。Predictive Scalingの予測と推奨にアクセスするにはパーミッションが必要であり、過去のデータと予測を比較する、負荷とキャパシティ・チャートを通じてさらなるインサイトを得ることができる。スケーリング・アクティビティはログに記録され、ポリシーのパフォーマンスと意思決定プロセスの透明性を提供する。
Example of scaling’s load and capacity graph:予想スケーリングの負荷とキャパシティのグラフの例
予測オートスケーリング(Predictive autoscaling)は、マイクロソフトAzureとGoogle Cloud Platform(GCP)の両方で利用可能な機能である。Azureでは、予測オートスケーリングは、Virtual Machine Scale Setsに統合されている。これは、過去の使用パターンを分析し、将来のニーズを予測し、最適なパフォーマンスとコスト効率を確保するためにリソースをプロアクティブに増減する。GCPでは、この機能は Cloud Managed Instance Groups(MIGs)の一部であり、過去の負荷データと予測モデルを活用して、需要のピークや谷が発生する前にインスタンス数を自動的に調整する。
予想オートスケーリングは、事前にワークロード変化を予測しリソースを動的に適応させ、手動による設定とレイテンシーを削減し、過剰なプロビジョニングを回避することで、アプリケーションの信頼性とコスト管理を強化する機能である。