Điểm:0

Làm cách nào để giảm thiểu thời gian phản ứng tự động tính tỷ lệ ecs từ terraform?

lá cờ us

Khi bạn tạo một chính sách tự động thay đổi quy mô ECS, hai cảnh báo sẽ gắn thẻ cùng với chính sách đó: một báo động để tăng quy mô ("out"), một báo động để giảm quy mô ("in").

Những cái mở rộng mà tôi thấy được tạo dường như để lấy mẫu mức sử dụng CPU (hoặc chỉ số quan tâm) mỗi phút và chỉ kích hoạt tự động mở rộng quy mô khi ba điểm dữ liệu liên tiếp vi phạm ngưỡng.

Điều này có nghĩa là nếu tôi thấy lưu lượng truy cập tăng đột biến, thì ba phút sẽ trôi qua trước khi xảy ra việc mở rộng quy mô. (Trên thực tế, trung bình việc vi phạm ngưỡng sẽ xảy ra ở giữa khoảng thời gian lấy mẫu, do đó độ trễ là ba phút rưỡi.)

Tôi có thể điều chỉnh tốc độ lấy mẫu và số lượng điểm dữ liệu cần thiết thông qua giao diện web của bảng điều khiển AWS.

Tuy nhiên, tôi muốn quản lý cơ sở hạ tầng của mình thông qua Terraform.

Làm cách nào tôi có thể sử dụng Terraform nhưng không có thao tác nhấp chuột thủ công để rút ngắn thời gian giữa (a) lần vi phạm ngưỡng đầu tiên; và (b) thời điểm mà tôi bắt đầu mở rộng quy mô? (Ngoài ra: đây có phải là một điều ngu ngốc để thử không? Tôi đang thực hiện nó theo cách awk-basscards phải không?)

Theo những gì tôi có thể nói, có vẻ như trượt băng lên dốc: việc tạo các chính sách tự động thay đổi quy mô (mà tôi có thể thực hiện thông qua Terraform) sẽ tự động tạo hai cảnh báo và trả về các tay cầm cho chúng (xem https://docs.aws.amazon.com/autoscaling/application/APIReference/API_PutScalingPolicy.html) nhưng Terraform không hiển thị các tay cầm đó (xem https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/appautoscaling_policy#attributes-reference). Nó vẫn có thể trong Terraform? Nó có đòi hỏi những nỗ lực anh hùng không?

Điểm:1
lá cờ au

Bạn chắc chắn có thể đạt được điều này với Terraform. Có một số cách để đạt được điều này nhưng tôi sẽ tập trung vào cách giúp bạn linh hoạt hơn.

Giả sử bạn đã có aws_autoscaling_group tài nguyên được xác định, sau đó bạn cần xác định chính sách mở rộng cho ASG của mình và CloudWatch báo động sẽ kích hoạt chúng. Tôi thường theo dõi 3 số liệu khác nhau để tự động thay đổi quy mô: MemoryReservation, CPUReservation và CPUUtilization.

Một ví dụ về cách thiết lập tự động thay đổi quy mô dựa trên CPUUtilization.

Chính sách mở rộng quy mô cho ASG của chúng tôi:
tài nguyên "aws_autoscaling_policy" "my-cpu-scale-up" {
  name = "my-cpu-scale-up"
  tỷ lệ_điều chỉnh = 1
  điều chỉnh_type = "Thay đổi năng lực"
  thời gian hồi chiêu = 60
  autoscaling_group_name = aws_autoscaling_group.[your-asg-resource].name
}

tài nguyên "aws_autoscaling_policy" "my-cpu-scale-down" {
  name = "my-cpu-scale-down"
  tỷ lệ_điều chỉnh = -1
  điều chỉnh_type = "Thay đổi năng lực"
  hồi chiêu = 300
  autoscaling_group_name = aws_autoscaling_group.[your-asg-resource].name
}
Cảnh báo CloudWatch sẽ kích hoạt một trong các chính sách của chúng tôi.
tài nguyên "aws_cloudwatch_metric_alarm" "my-cpu-usage-high" {
  alarm_name = "mức sử dụng cpu của tôi cao"
  so sánh_operator = "GreaterThanOrEqualToThreshold"
  đánh giá_periods = "2"
  metric_name = "Sử dụng CPU"
  không gian tên = "AWS/EC2"
  khoảng thời gian = "60" // tính bằng giây
  thống kê = "Trung bình"
  ngưỡng = "70" // theo %
  alarm_description = "Số liệu này giám sát cụm sử dụng CPU cao"
  báo động_hành động = [
    aws_autoscaling_policy.my-cpu-scale-up.arn
  ]
  kích thước ={
    AutoScalingGroupName= aws_autoscaling_group.[your-asg-resource].name
  }
}

tài nguyên "aws_cloudwatch_metric_alarm" "my-cpu-usage-low" {
  alarm_name = "my-cpu-usage-low"
  so sánh_operator = "LessThanOrEqualToThreshold"
  đánh giá_periods = "2"
  metric_name = "Sử dụng CPU"
  không gian tên = "AWS/EC2"
  khoảng thời gian = "60"
  thống kê = "Trung bình"
  ngưỡng = "20"
  alarm_description = "Số liệu này theo dõi cụm của tôi để biết mức sử dụng CPU thấp"
  báo động_hành động = [
    aws_autoscaling_policy.my-cpu-scale-down.arn
  ]
  kích thước ={
    AutoScalingGroupName= aws_autoscaling_group.[your-asg-resource].name
  }
}

Như bạn có thể thấy từ ví dụ này, chúng ta có thể thử với cấu hình báo thức cho đến khi đạt được kết quả mong muốn.

Hy vọng rằng sẽ giúp!

Jonas Kölker avatar
lá cờ us
Đây là quy mô bước, phải không, và không theo dõi mục tiêu? Nghiên cứu của riêng chúng tôi cho thấy rằng các giải pháp không mở rộng quy mô sẽ không như mong muốn của chúng tôi, vì vậy thật tuyệt khi biết rằng các giải pháp mở rộng quy mô từng bước sẽ (hoặc ít nhất là có thể; tôi thậm chí còn không biết tất cả các yêu cầu nên tôi đã chỉ đưa ra những cái đã biết có liên quan).
Vitalii Strimbanu avatar
lá cờ au
@ JonasKölker vâng, đây là phương pháp mở rộng quy mô từng bước. Cả tỷ lệ bước và theo dõi mục tiêu đều có cách sử dụng riêng, vì vậy bạn phải chọn dựa trên yêu cầu của mình. Ví dụ: tôi sử dụng theo dõi mục tiêu cho một số dịch vụ ECS để giữ trung bình 1 nghìn yêu cầu mỗi phút cho mỗi tác vụ.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.