設定とモニタリングを自動ロールバックする - Amazon SageMaker

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

設定とモニタリングを自動ロールバックする

Amazon CloudWatch アラームは、デプロイガードレールでベーキング期間を使用するための前提条件です。デプロイガードレールの自動ロールバック機能は、エンドポイントをモニタリングできる CloudWatch アラームを設定する場合にのみ使用できます。指定したモニタリング期間中にアラームが作動した場合、 はアプリケーションを保護するために古いエンドポイントへの完全なロールバック SageMaker を開始します。エンドポイントをモニタリングする CloudWatch アラームを設定していない場合、デプロイ中に自動ロールバック機能は機能しません。

Amazon の詳細については CloudWatch、「Amazon ユーザーガイド」の「Amazon CloudWatchとは」を参照してください。 CloudWatch

注記

IAM 実行ロールに、指定した自動ロールバックアラームの cloudwatch:DescribeAlarms アクションを実行するアクセス許可があることを確認してください。

アラームの例

開始に役立つように、 CloudWatch アラームの機能を示す以下の例を提供しています。次の例の使用または変更するだけでなく、独自のアラームを作成し、指定したフリートのさまざまなメトリクスを一定期間モニタリングするようにアラームを設定できます。アラームに追加できる SageMaker メトリクスとディメンションの詳細については、「」を参照してくださいAmazon SageMaker で Amazon をモニタリングする CloudWatch

新旧両方のフリートの呼び出しエラーをモニタリングする

次の CloudWatch アラームは、エンドポイントの平均エラー率をモニタリングします。このアラームを任意のデプロイガードレールのトラフィックシフトタイプで使うことで、新旧両方のフリートで全体的なモニタリングを行うことができます。アラームが作動すると、 は古いフリートへのロールバック SageMaker を開始します。

新旧両方のフリートから発生する呼び出しエラーは、平均エラー率に影響します。平均エラー率が指定されたしきい値を超えると、アラームが作動します。この例では、デプロイ期間中、新旧両方のフリートで 4xx エラー (クライアントエラー) をモニタリングします。メトリクス Invocation5XXErrors を使って 5xx エラー (サーバーエラー) をモニタリングすることもできます。

注記

このアラームタイプでは、デプロイ中に古いフリートがアラームを作動すると、 SageMaker はデプロイを終了します。したがって、現在の本番稼働フリートで既にエラーが発生している場合は、次の例のいずれかを使用または変更して、新しいフリートのエラーのみをモニタリングすることを検討してください。

#Applied deployment type: all types { "AlarmName": "EndToEndDeploymentHighErrorRateAlarm", "AlarmDescription": "Monitors the error rate of 4xx errors", "MetricName": "Invocation4XXErrors", "Namespace": "AWS/SageMaker", "Statistic": "Average", "Dimensions": [ { "Name": "EndpointName", "Value": <your-endpoint-name> }, { "Name": "VariantName", "Value": "AllTraffic" } ], "Period": 600, "EvaluationPeriods": 2, "Threshold": 1, "ComparisonOperator": "GreaterThanThreshold", "TreatMissingData": "notBreaching" }

前の例では、次のフィールドの値に注意してください。

  • AlarmNameAlarmDescription には、アラームの名前と説明を入力します。

  • MetricName には、値 Invocation4XXErrors を使用して、エンドポイントで 4xx エラーをモニタリングします

  • Namespace には、値 AWS/SageMaker を使用します。必要に応じて、独自のカスタムメトリクスを指定することもできます。

  • Statistic の場合は、Average を使用します。これは、エラー率がしきい値を超えたかどうかを計算するときに、アラームが評価期間中の平均エラー率を取得することを意味します。

  • ディメンション EndpointName には、更新するエンドポイントの名前を値として使用します。

  • ディメンション VariantName には、値 AllTraffic を使用して、すべてのエンドポイントトラフィックを指定します。

  • Period の場合は、600 を使用します。これにより、アラームの評価期間が 10 分に設定されます。

  • EvaluationPeriods の場合は、2 を使用します。この値は、アラームステータスを決定する際に、直近の 2 つの評価期間を考慮するようにアラームに指示します。

新しいフリートのモデルのレイテンシーをモニタリングする

次の CloudWatch アラーム例は、デプロイ中の新しいフリートのモデルレイテンシーをモニタリングします。このアラームを使って、新しいフリートのみをモニタリングし、古いフリートを除外できます。アラームは、デプロイ全体で持続します。この例では、新しいフリートの包括的な end-to-end モニタリングを提供し、新しいフリートに応答時間の問題がある場合に古いフリートへのロールバックを開始します。

CloudWatch は、新しいフリートがトラフィックの受信を開始したEndpointConfigName:{New-Ep-Config}後、 ディメンションを持つメトリクスを公開します。これらのメトリクスはデプロイが完了した後も存続します。

次のアラーム例は、どのデプロイタイプでも使用できます。

#Applied deployment type: all types { "AlarmName": "NewEndpointConfigVersionHighModelLatencyAlarm", "AlarmDescription": "Monitors the model latency on new fleet", "MetricName": "ModelLatency", "Namespace": "AWS/SageMaker", "Statistic": "Average", "Dimensions": [ { "Name": "EndpointName", "Value": <your-endpoint-name> }, { "Name": "VariantName", "Value": "AllTraffic" }, { "Name": "EndpointConfigName", "Value": <your-config-name> ], "Period": 300, "EvaluationPeriods": 2, "Threshold": 100000, # 100ms "ComparisonOperator": "GreaterThanThreshold", "TreatMissingData": "notBreaching" }

前の例では、次のフィールドの値に注意してください。

  • MetricName には、値 ModelLatency を使用して、モデルの応答時間をモニタリングします。

  • Namespace には、値 AWS/SageMaker を使用します。必要に応じて、独自のカスタムメトリクスを指定することもできます。

  • ディメンション EndpointName には、更新するエンドポイントの名前を値として使用します。

  • ディメンション VariantName には、値 AllTraffic を使用して、すべてのエンドポイントトラフィックを指定します。

  • ディメンション EndpointConfigName については、値は、新規または更新されたエンドポイントのエンドポイント設定名を参照します。

注記

新しいフリートではなく古いフリートをモニタリングする場合は、ディメンション EndpointConfigName を、古いフリートの設定名を指定するように変更できます。