自動スケーリングポリシーの概要 - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

自動スケーリングポリシーの概要

自動スケーリングを使用するには、実際のワークロードに応じて本番稼働用バリアントのインスタンス数を追加および削除するスケーリングポリシーを定義します。

ワークロードの変動に合わせて自動的にスケーリングするには、ターゲット追跡ポリシーとステップスケーリングポリシーの 2 つのオプションがあります。

ほとんどの場合、ターゲット追跡スケーリングポリシーを使用することをお勧めします。ターゲット追跡では、Amazon CloudWatch メトリクスとターゲット値を選択します。自動スケーリングは、スケーリングポリシーの CloudWatch アラームを作成および管理し、メトリクスとターゲット値に基づいてスケーリング調整値を計算します。ポリシーは、指定されたターゲット値、またはそれに近い値にメトリクスを維持するために、必要に応じてインスタンスを追加または削除します。たとえば、事前定義された InvocationsPerInstance メトリクスのターゲット値を 70 に設定すると、InvocationsPerInstance を 70 または 70 近くに維持できます。詳細については、Application Auto Scaling ユーザーガイドの Target Tracking Scaling Policies を参照してください。

ステップスケーリングは、デプロイするインスタンスの数や条件を指定するなど、高度な設定が必要な場合に使用できます。例えば、エンドポイントがアクティブなインスタンスをゼロからスケールアウトできるようにする場合は、ステップスケーリングを使用する必要があります。ステップスケーリングポリシーの概要とその仕組みについては、「Application Auto Scaling ユーザー ガイド」の「ステップスケーリングポリシー」を参照してください。

ターゲット追跡スケーリングポリシーを作成するには、以下を指定します。

  • メトリクス — インスタンスあたりの平均呼び出し数など、追跡する CloudWatch メトリクス。

  • ターゲット値 — 1 分ごとにインスタンスあたり 70 回の呼び出しなど、メトリクスのターゲット値。

事前定義されたメトリクスまたはカスタムメトリクスのいずれかを使用して、ターゲット追跡スケーリングポリシーを作成できます。事前定義されたメトリクスは、コードで名前で指定したり、SageMaker AI コンソールで使用したりできるように、列挙型で定義されます。代わりに、 AWS CLI または Application Auto Scaling API を使用し、事前定義されたメトリクスまたはカスタムメトリクスに基づいてターゲット追跡スケーリングポリシーを適用することもできます。

スケーリングアクティビティは、容量の急激な変動を防ぐため、クールダウン期間を設けて実行されることに注意してください。オプションでスケーリングポリシーのクールダウン期間を設定できます。

自動スケーリングの主な概念については、以下のセクションを参照してください。

スケジュールベースのスケーリング

スケジュールされたアクションを作成して、特定の時刻にスケーリングアクティビティを実行することもできます。スケジュールされたアクションは、一度だけスケールする、または定期的なスケジュールに従ってスケールするものを作成できます。スケジュールされたアクションが実行された後も、スケーリングポリシーは、ワークロードの変動が発生したときに動的にスケーリングするかどうかの決定を引き続き行うことができます。スケジュールされたスケーリングは、 AWS CLI または Application Auto Scaling API からのみ管理できます。詳細については、「Application Auto Scaling ユーザーガイド」の「スケジュールされたスケーリング」を参照してください。

最小スケーリング制限と最大スケーリング制限

自動スケーリングを設定するときは、スケーリングポリシーを作成する前にスケーリング制限を指定する必要があります。最小値と最大値の制限を個別に設定します。

最小値は 1 以上で、最大値で指定された値以下である必要があります。

最大値は、最小数に指定された値以上である必要があります。SageMaker AI 自動スケーリングでは、この値に制限は適用されません。

通常のトラフィックに必要なスケーリング制限を決定するには、モデルに対するトラフィックの予想レートで自動スケーリングの設定をテストします。

バリアントのトラフィックがゼロになると、SageMaker AI は自動的に指定されたインスタンスの最小数にスケールインします。この場合、SageMaker AI は 0 の値でメトリクスを出力します。

最小容量と最大容量を指定するには、次の 3 つのオプションがあります。

  1. コンソールを使用して、[最小インスタンス数][最大インスタンス数] の設定を更新します。

  2. を使用して AWS CLI 、register-scalable-target コマンドを実行するときに --min-capacityおよび --max-capacityオプションを含めます。 register-scalable-target

  3. RegisterScalableTarget API を呼び出し、MinCapacity および MaxCapacity パラメータを指定します。

ヒント

最小値を増やすことで手動でスケールアウトすることも、最大値を減らすことで手動でスケールインすることもできます。

クールダウン期間

クールダウン期間は、モデルのスケールイン (容量の削減) またはスケールアウト (容量の増加) 時に、オーバースケーリングを防ぐために使用されます。これは、この期間が終了するまで、後続のスケーリングアクティビティを遅らせるものです。つまり、スケールインのリクエストについてはインスタンスの削除が、スケールアウトのリクエストについてはインスタンスの作成が停止されます。詳細については、「Application Auto Scaling ユーザーガイド」の「Define cooldown periods」を参照してください。

スケーリングポリシーのクールダウン期間はお客様が設定します。

スケールインやスケールアウトのクールダウン期間を指定しない場合、スケーリングポリシーではデフォルト値 (それぞれ 300 秒) が使用されます。

スケーリングの設定をテストしたときに、インスタンスが追加または削除されるペースが速すぎる場合は、この値を増やすことを検討してください。この動作は、モデルへのトラフィックに大量のスパイクがある場合や、バリアントに対して複数のスケーリングポリシーを定義した場合に見られます。

インスタンスが追加されるペースが増加したトラフィックに対処するのに十分でない場合は、この値を減らすことを検討してください。

自動スケーリングの設定の詳細については、次のリソースを参照してください。

注記

SageMaker AI は最近、リアルタイム推論エンドポイント上に構築された新しい推論機能を導入しました。エンドポイントのインスタンスタイプと初期インスタンス数を定義するエンドポイント設定を使用して SageMaker AI エンドポイントを作成します。次に、推論コンポーネントを作成します。これは、モデルをエンドポイントにデプロイするために使用できる SageMaker AI ホスティングオブジェクトです。推論コンポーネントのスケーリングの詳細については、 AWS ブログのSageMaker AI が基盤モデルのデプロイコストとレイテンシーを削減し、SageMaker AI の最新機能を使用してモデルデプロイコストを平均 50% 削減するのに役立つ新しい推論機能を追加」を参照してください。 SageMaker