amazon-web-services - Terraform 在 Sagemaker 中自动缩放
问题描述
我们所有由 Terraform 管理的 AWS 基础设施,包括 Sagemaker 资源。我们想在我们的 SM 资源中实现 Autoscaling。我们找不到将基础设施构建为代码的 Terraform 解决方案。
一般来说,ASG 应该位于aws_sagemaker_endpoint_configuration
>>production_variants
块中
参考:
- AWS 文档:https ://aws.amazon.com/blogs/aws/auto-scaling-is-now-available-for-amazon-sagemaker/
- TF 文档:https ://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/sagemaker_endpoint_configuration
提前感谢您的回复
解决方案
所以,根据我的研究,它应该是:
resource "aws_appautoscaling_target" "sagemaker_target" {
max_capacity = var.max_instance_count
min_capacity = var.min_instance_count
resource_id = "endpoint/${aws_sagemaker_endpoint.endpoint.name}/variant/${var.service_name}-${var.site}-${var.environment}"
role_arn = aws_iam_role.sm_execution.arn
scalable_dimension = "sagemaker:variant:DesiredInstanceCount"
service_namespace = "sagemaker"
}
resource "aws_appautoscaling_policy" "sagemaker_policy" {
name = "${var.service_name}-${var.site}-${var.environment}-target-tracking"
policy_type = "TargetTrackingScaling"
resource_id = aws_appautoscaling_target.sagemaker_target.resource_id
scalable_dimension = aws_appautoscaling_target.sagemaker_target.scalable_dimension
service_namespace = aws_appautoscaling_target.sagemaker_target.service_namespace
target_tracking_scaling_policy_configuration {
predefined_metric_specification {
predefined_metric_type = "SageMakerVariantInvocationsPerInstance"
}
target_value = var.target_invocations
scale_in_cooldown = var.target_scale_in_cooldown
scale_out_cooldown = var.target_scale_out_cooldown
}
}
推荐阅读
- javascript - 在 iOS 和 Android 上将 WebView 中的滚动限制到最大速度
- python - 试图让 Kivy 按钮弹出一个文本框
- shell - 如何使用 shell 程序直接在 STDOUT 上显示结果?
- ruby - Ruby 中这个 optparse 示例的简单解释
- python - 使用 numpy 函数的代码的 GPU 并行化
- spring-webflux - 获取 webflux 事件循环调度器
- linux - 在 Linux 服务器上触发主机名“withsometest”时会发生什么
- python - 使用 pybind11 包装一个包含 Eigen 数组的 stl 容器(地图)
- f# - HighRise API 创建一个因缺少名字而失败的人
- dns - www.docusign.net(美国西部地区)的 DNS 解析失败