Auto Scalingは、ワークロードが変動するアプリケーションや、ワークロードが安定しているアプリケーションに適しています。 このトピックでは、Auto Scalingを使用してElastic Compute Service (ECS) インスタンスとelastic containerインスタンスをスケーリングできる一般的なアプリケーションシナリオについて説明します。
予測不可能なワークロードの変動
予測不可能なワークロードの変動があるシナリオに対するAuto Scalingの利点を示すために、ニュースWebサイトを例として使用します。 ウェブサイトのページビューは、ニュース速報が報告されると急激に増加し、ニュースが熱くなると減少します。 交通量の急増と減少は予測できません。 インスタンスの数を手動で調整することは非現実的で非効率的です。また、ビジネスで必要なインスタンスの正確な数がわからない場合もあります。
この場合、Auto Scalingを使用して、予測できないワークロードの変動に対応できます。 Auto Scalingを使用すると、イベントトリガタスクを作成してCPU使用率などのメトリックをモニタリングし、モニタリング結果に基づいてインスタンスを自動的にスケーリングできます。
例1: 2つのイベントトリガータスクを作成して、単純なスケーリングルールをトリガーできます。 CPU使用率が70% 以上に達すると、1つのタスクがスケーリンググループに3つのインスタンスを追加する単純なスケーリングルールをトリガーします。 CPU使用率が30% を下回った場合、他のタスクは、スケーリンググループから3つのインスタンスを削除する単純なスケーリングルールをトリガーします。
例2: イベントトリガータスクを作成して、ターゲット追跡スケーリングルールをトリガーできます。 このタスクは、インスタンスのCPU使用率を50% に保ちます。
予測可能なワークロードの変動
ワークロードの変動が予測可能なシナリオに対するAuto Scalingの利点を実証するために、需要が毎日18:00から22:00まで急増し、22:00以降に減少するゲーム会社を例として使用します。 企業がインスタンスの数を手動で調整することは非現実的で非効率的です。
この場合、Auto Scalingを使用して、予測可能なワークロードの変動に対応できます。 Auto Scalingを使用すると、スケジュールされたタスクを作成し、指定した時点でインスタンスを自動的にスケーリングできます。 2つのスケジュールタスクを作成して、単純なスケーリングルールをトリガーできます。 1つのタスクは、毎日17:55に3つのインスタンスを追加する単純なスケーリングルールをトリガーします。 もう1つのタスクは、毎日22:05に3つのインスタンスを削除する単純なスケーリングルールをトリガーします。 スケジュールされたタスクは、毎日18:00から22:00までのピーク時に発生するトラフィックスパイクを処理し、オフピーク時にインスタンスを効果的に自動的にリリースするのに役立ちます。 Auto Scalingを使用すると、アイドル状態のままインスタンスがなくなり、コストを削減できます。
小さなワークロードの変動
ワークロードの変動が小さいシナリオに対するAuto Scalingの利点を実証するために、時間の経過とともに需要に明らかな変化がない電気通信会社を例として使用します。 既存のインスタンスが突然故障した場合、故障したインスタンスを時間内に修復または交換することは困難であり、電気通信会社のサービスは中断されます。
この場合、Auto Scalingを使用してインスタンスのヘルスチェックを実行し、サービスの高可用性を確保できます。 Auto Scalingは、インスタンスのヘルスステータスを自動的に確認できます。 インスタンスが異常であると見なされた場合、Auto Scalingは自動的に新しいインスタンスを作成して異常なインスタンスを置き換え、インスタンスが期待どおりに実行されるようにします。 スケーリンググループ内のインスタンスの最小数を設定する必要があります。 Auto Scalingは、スケーリンググループがこのサイズを下回らないようにして、サービスを中断しないようにします。
複雑なワークロードの変動
複雑なワークロードの変動があるシナリオに対するAuto Scalingの利点を実証するために、毎日のトラフィックは安定しているが需要が変動することがある会社を例として使用します。 会社にサブスクリプションインスタンスがあり、需要が変動した場合にのみインスタンス数を調整したい場合は、Auto Scalingを使用できます。
Auto Scalingを使用すると、サブスクリプションインスタンスをスケーリンググループに手動で追加し、イベントトリガータスクを作成して、スケーリングアクティビティのCPU使用率などのメトリックを監視できます。 これにより、Auto Scalingはインスタンスを期待どおりに実行し、コストを最小限に抑えます。
Auto Scalingでは、スケジュールされたタスクを作成し、ビジネス要件に基づいてインスタンスのヘルスチェックを実行することもできます。 複数のAuto Scaling機能を同時に使用して、複雑なビジネスシナリオで発生するトラフィックの急増を処理し、ユーザーエクスペリエンスを向上させることができます。