All At Once トラフィックシフト - Amazon SageMaker

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

All At Once トラフィックシフト

All At Once トラフィックシフトにより、Blue/Green デプロイの安全なガードレールを使って、エンドポイントの更新を迅速にロールアウトできます。このトラフィックシフトオプションを使うと、Blue/Green デプロイの可用性の保証を利用しながら、更新時間を最小限に抑えることができます。ベーキング期間機能は、古いインスタンスを終了する前に新しいインスタンスのパフォーマンスと機能をモニタリングし、新しいフリートが完全に動作可能かを確認するのに役立ちます。

次の図は、All At Once トラフィックシフトが古いフリートと新しいフリートを管理する方法を示しています。

古いフリートから新しいフリートへの 100% のトラフィックシフトに成功。

All At Once トラフィックシフトを使用すると、 はトラフィックの 100% を新しいフリート (緑のフリート) に SageMaker ルーティングします。緑のフリートがトラフィックを受信し始めると、ベーキング期間が始まります。ベーキング期間は、事前に指定した Amazon CloudWatch アラームが緑のフリートのパフォーマンスをモニタリングする一定の時間です。ベーキング期間中にアラームが作動しない場合、 は古いフリート (青のフリート) を SageMaker 終了します。ベーキング期間中にアラームが作動した場合は、自動ロールバックが開始され、100% のトラフィックが青のフリートに戻ります。

前提条件

All At Once トラフィックシフトを使用してデプロイを設定する前に、エンドポイントからのメトリクスを監視する Amazon CloudWatch アラームを作成する必要があります。ベーキング期間中にアラームが作動した場合、トラフィックは青のフリートにロールバックされます。エンドポイントに CloudWatch アラームを設定する方法については、前提条件のページ「」を参照してください設定とモニタリングを自動ロールバックする。 CloudWatch アラームの詳細については、「Amazon ユーザーガイド」の「Amazon CloudWatch アラームの使用」を参照してください。 CloudWatch

All At Once トラフィックシフトを設定する

デプロイの準備が整い、エンドポイントに CloudWatch アラームを設定したら、 API または の update-endpoint コマンドを使用して SageMaker UpdateEndpointデプロイ AWS Command Line Interface を開始できます。

エンドポイントを更新する方法 (API)

次の例は、Amazon SageMaker API の を使用して、All At Once トラフィックシフトUpdateEndpointでエンドポイントを更新する方法を示しています。

import boto3 client = boto3.client("sagemaker") response = client.update_endpoint( EndpointName="<your-endpoint-name>", EndpointConfigName="<your-config-name>", DeploymentConfig={ "BlueGreenUpdatePolicy": { "TrafficRoutingConfiguration": { "Type": "ALL_AT_ONCE" }, "TerminationWaitInSeconds": 600, "MaximumExecutionTimeoutInSeconds": 1800 }, "AutoRollbackConfiguration": { "Alarms": [ { "AlarmName": "<your-cw-alarm>" }, ] } } )

All At Once トラフィックシフトオプションを設定するには、以下を実行します。

  • EndpointName には、更新する既存のエンドポイントの名前を使用します。

  • EndpointConfigName には、使用するエンドポイント設定の名前を使用します。

  • DeploymentConfigBlueGreenUpdatePolicy の下の TrafficRoutingConfiguration で、Type パラメータを ALL_AT_ONCE に設定します。これは、デプロイが All At Once トラフィックシフトモードを使うよう指定します。

  • TerminationWaitInSeconds の場合は、600 を使用します。このパラメータは SageMaker 、緑のフリートが完全にアクティブになってから青のフリートのインスタンスを終了するまで、指定された時間 (秒単位) 待機するように に指示します。この例では、 は最後のベーキング期間から 10 分間 SageMaker 待ってから青のフリートを終了します。

  • MaximumExecutionTimeoutInSeconds の場合は、1800 を使用します。このパラメータは、デプロイがタイムアウトするまでに実行できる最大時間を設定します。前の例では、デプロイが終了するまでの制限時間は 30 分です。

  • ではAutoRollbackConfigurationAlarmsフィールド内でアラームを名前 CloudWatch で追加できます。使うアラームごとに 1 つの AlarmName: <your-cw-alarm> エントリを作成します。

既存の Blue/Green 更新ポリシーでエンドポイントを更新する方法 (API)

CreateEndpoint API を使用してエンドポイントを作成する場合、オプションでデプロイ設定を指定して、今後のエンドポイントの更新で再利用できます。前の UpdateEndpoint API の例と同じDeploymentConfigオプションを使用できます。 CreateEndpoint API の動作に変更はありません。デプロイ設定を指定しても、エンドポイントでの Blue/Green 更新が自動的に実行されるわけではありません。

以前のデプロイ設定を使用するオプションは、 UpdateEndpoint API を使用してエンドポイントを更新するときに発生します。エンドポイントを更新するときは、RetainDeploymentConfig オプションを使って、エンドポイントの作成時に指定したデプロイ設定を保持できます。

UpdateEndpoint API を呼び出すときは、 RetainDeploymentConfigを に設定Trueして、元のエンドポイント設定DeploymentConfigのオプションを保持します。

response = client.update_endpoint( EndpointName="<your-endpoint-name>", EndpointConfigName="<your-config-name>", RetainDeploymentConfig=True )

エンドポイントを更新する方法 (CLI)

を使用している場合、次の例は AWS CLI、update-endpoint コマンドを使用して Blue/Green All At Once デプロイを開始する方法を示しています。

update-endpoint --endpoint-name <your-endpoint-name> --endpoint-config-name <your-config-name> --deployment-config '"BlueGreenUpdatePolicy": {"TrafficRoutingConfiguration": {"Type": "ALL_AT_ONCE"}, "TerminationWaitInSeconds": 600, "MaximumExecutionTimeoutInSeconds": 1800}, "AutoRollbackConfiguration": {"Alarms": [{"AlarmName": "<your-alarm>"}]}'

All At Once トラフィックシフトオプションを設定するには、以下を実行します。

  • endpoint-name には、更新するエンドポイントの名前を使用します。

  • endpoint-config-name には、使用するエンドポイント設定の名前を使用します。

  • にはdeployment-configBlueGreenUpdatePolicyJSON オブジェクトを使用します。

注記

JSON オブジェクトをファイルに保存する場合は、「 AWS CLI ユーザーガイド」の「スケルトンと入力パラメータの生成 AWS CLI」を参照してください。