スケーリンググループは、同じアプリケーション要件とインスタンスタイプを共有するインスタンスを管理します。これにより、クラスターを迅速にスケールアウトし、ビジネスの需要に基づいてインスタンス数を動的に調整することで、コスト削減に役立ちます。
スケーリンググループを使用する理由
-
高可用性のための迅速なスケールアウト
インスタンスを追加して容量を増やし、トラフィックを処理することで、サービスクラスターを迅速に スケールアウト します。
-
コスト管理
トラフィックは常にピークにあるわけではないため、Auto Scaling はリソースを実際の需要に合わせ、不要なインスタンスを削除することでコストを削減します。
スケーリングソリューション
ソリューション 1:固定数のインスタンスの維持
-
ユースケース:スケーリングを必要としないクラスターの高可用性を維持します。
-
仕組み:スケーリンググループに対して [インスタンスのヘルスチェック] を有効にし、[希望インスタンス数] を設定します。
[インスタンスのヘルスチェック] が有効な場合、スケーリンググループは異常なインスタンスを自動的に削除します。インスタンス数が希望する数を下回ると、Auto Scaling はスケールアウトをトリガーして、固定数の正常なインスタンスを維持します。
-
例
正常なサービスインスタンス 10 台で構成されるクラスターを維持したい場合は、希望するインスタンス数を 10 に設定します。スケーリンググループは、正常なインスタンス 10 台を維持するために、スケーリングアクティビティを自動的にトリガーします。
ソリューション 2:スケジュールされたスケーリング
-
ユースケース:予測可能で周期的なビジネスワークロードの変動に対応します。
-
仕組み:スケーリンググループに [スケジュール済みタスク] を作成し、スケールアウトおよびスケールインイベントを自動化します。
スケジュールされたタスクは、リソース需要が高いときにスケールアウトをトリガーし、需要が低いときにスケールインをトリガーします。完全なガイドについては、「ECS インスタンスのスケジュールに基づくスケーリング」をご参照ください。
-
例
たとえば、毎日午後 7:00 にトラフィックが増加し、午前 1:00 に減少する場合、2 つのスケジュールされたタスクを作成できます。
-
トラフィックの急増への対応:午後 7:00 に スケジュールされたスケールアウトタスク を設定します。毎日午後 7:00 に、このタスクはインスタンスを追加してクラスターの容量を増やします。
-
トラフィックの閑散期への対応:午前 1:00 に スケジュールされたスケールインタスク を設定します。毎日午前 1:00 に、このタスクはインスタンスを削除してリソースの利用率を向上させ、コストを削減します。
-
ソリューション 3:しきい値に基づくスケーリング (CPU、メモリ使用率など)
-
ユースケース:リソースメトリクスが定義されたしきい値を超えたときにスケーリングをトリガーすることで、予測不可能な突然のワークロード変動に対応します。
-
仕組み
イベントトリガータスク
スケーリンググループに [イベントでトリガーされるタスク] を設定できます。リソースメトリクスが指定されたしきい値を超えると、アラームがスケーリングアクティビティをトリガーします。
ターゲット追跡スケーリングルール
[目標追従スケーリングルール] を作成して、スケーリンググループのリソースメトリクスをターゲット値またはその近くに維持できます。
例
ECS スケーリンググループでは、平均 CPU 使用率のターゲットを 80% に設定するターゲット追跡スケーリングルールを作成できます。Auto Scaling は、グループの平均 CPU 使用率を 80% またはその近くに維持するために、インスタンスを自動的に追加または削除します。
-
2 つの方法の比較
-
イベントトリガータスクは、より高い柔軟性とカスタマイズ性を提供します。アラームがトリガーされたときに追加または削除するインスタンスの数を正確に制御でき、さまざまなリソース使用率の段階に対して異なるスケーリング応答を定義できます。
-
ターゲット追跡スケーリングルールは、設定がより簡単です。メトリクスのターゲット値を定義するだけで、残りは Auto Scaling が処理します。
-
ソリューション 4:カスタムスケーリング (手動スケーリング)
これらのソリューションがニーズを満たさない場合は、カスタムスケーリングソリューションを作成できます。
スケーリングルールを手動で実行するか、スケーリンググループ内のインスタンス数を変更することで、スケーリングアクティビティをトリガーできます。完全なガイドについては、「ワンクリックで ECS インスタンスを手動スケーリング」をご参照ください。
手動スケーリングは API コールをサポートしています。独自のプログラムを記述して API を呼び出し、ビジネスに合わせたカスタムスケーリングソリューションを構築できます。
ソリューション 5:予測スケーリング
スケーリンググループは、将来のリソース需要を予測し、自動的にスケーリングできます。
予測ルールを設定し、予測のみのモードで実行して精度を評価します。予測がニーズを満たす場合は、[予測とスケーリング] を有効にします。その後、予測ルールは予測に基づいてスケジュールされたタスクを自動的に作成し、グループをスケーリングします。詳細については、「予測スケーリングルールの効果の表示」をご参照ください。
注意事項
スケーリンググループを使用する前に、アプリケーションがスケールアウトをサポートしていることを確認してください。
インスタンスの追加がクラスターのビジネスオペレーションに影響を与えるかどうかを検討してください。
-
データの一貫性
スケーリング対象のインスタンス上でデータベースが実行されている場合、スケールアウトによってデータに不整合が生じる可能性があります。これを避けるには、データベースを独立してデプロイし、すべてのインスタンスが単一のデータベースを共有するようにして、サービスをステートレスにします。
-
データセキュリティ
スケーリンググループ内のインスタンスは自動的に作成および解放されます。これらのインスタンスに保存されているデータは、その安全性を確保するためにバックアップしてください。