Terraform 0.11

aws_appautoscaling_policy




terraform

aws_appautoscaling_policy

एक आवेदन AutoScaling नीति संसाधन प्रदान करता है।

उदाहरण उपयोग

डायनेमोडी टेबल ऑटोसालिंग

resource "aws_appautoscaling_target" "dynamodb_table_read_target" {
  max_capacity       = 100
  min_capacity       = 5
  resource_id        = "table/tableName"
  role_arn           = "${data.aws_iam_role.DynamoDBAutoscaleRole.arn}"
  scalable_dimension = "dynamodb:table:ReadCapacityUnits"
  service_namespace  = "dynamodb"
}

resource "aws_appautoscaling_policy" "dynamodb_table_read_policy" {
  name               = "DynamoDBReadCapacityUtilization:${aws_appautoscaling_target.dynamodb_table_read_target.resource_id}"
  policy_type        = "TargetTrackingScaling"
  resource_id        = "${aws_appautoscaling_target.dynamodb_table_read_target.resource_id}"
  scalable_dimension = "${aws_appautoscaling_target.dynamodb_table_read_target.scalable_dimension}"
  service_namespace  = "${aws_appautoscaling_target.dynamodb_table_read_target.service_namespace}"

  target_tracking_scaling_policy_configuration {
    predefined_metric_specification {
      predefined_metric_type = "DynamoDBReadCapacityUtilization"
    }

    target_value = 70
  }
}

ईसीएस सेवा ऑटोकैसलिंग

resource "aws_appautoscaling_target" "ecs_target" {
  max_capacity       = 4
  min_capacity       = 1
  resource_id        = "service/clusterName/serviceName"
  role_arn           = "${var.ecs_iam_role}"
  scalable_dimension = "ecs:service:DesiredCount"
  service_namespace  = "ecs"
}

resource "aws_appautoscaling_policy" "ecs_policy" {
  name                    = "scale-down"
  policy_type             = "StepScaling"
  resource_id             = "service/clusterName/serviceName"
  scalable_dimension      = "ecs:service:DesiredCount"
  service_namespace       = "ecs"

  step_scaling_policy_configuration {
    adjustment_type         = "ChangeInCapacity"
    cooldown                = 60
    metric_aggregation_type = "Maximum"

    step_adjustment {
      metric_interval_upper_bound = 0
      scaling_adjustment          = -1
    }
  }

  depends_on = ["aws_appautoscaling_target.ecs_target"]
}

जब एक ऑटोसाल्ड ईसीएस सेवा को अपडेट किया जाता है तो वांछित गणना संरक्षित करें

resource "aws_ecs_service" "ecs_service" {
  name = "serviceName"
  cluster = "clusterName"
  task_definition = "taskDefinitionFamily:1"
  desired_count = 2

  lifecycle {
    ignore_changes = ["desired_count"]
  }
}

ऑरोरा पढ़ें प्रतिकृति ऑटोस्कोलिंग

resource "aws_appautoscaling_target" "replicas" {
  service_namespace  = "rds"
  scalable_dimension = "rds:cluster:ReadReplicaCount"
  resource_id        = "cluster:${aws_rds_cluster.example.id}"
  min_capacity       = 1
  max_capacity       = 15
}

resource "aws_appautoscaling_policy" "replicas" {
  name               = "cpu-auto-scaling"
  service_namespace  = "${aws_appautoscaling_target.replicas.service_namespace}"
  scalable_dimension = "${aws_appautoscaling_target.replicas.scalable_dimension}"
  resource_id        = "${aws_appautoscaling_target.replicas.resource_id}"
  policy_type        = "TargetTrackingScaling"

  target_tracking_scaling_policy_configuration {
    predefined_metric_specification {
      predefined_metric_type = "RDSReaderAverageCPUUtilization"
    }
    target_value = 75
    scale_in_cooldown = 300
    scale_out_cooldown = 300
  }
}

तर्क संदर्भ

निम्नलिखित तर्क समर्थित हैं:

  • name - (आवश्यक) पॉलिसी का नाम।
  • policy_type - (वैकल्पिक) DynamoDB के लिए, केवल TargetTrackingScaling समर्थित है। अमेज़ॅन ECS, स्पॉट फ़्लीट और Amazon RDS के लिए, StepScaling और TargetTrackingScaling दोनों का समर्थन किया जाता है। किसी भी अन्य सेवा के लिए, केवल StepScaling समर्थित है। StepScaling
  • resource_id - (आवश्यक) स्केलिंग नीति से जुड़े संसाधन के लिए संसाधन प्रकार और विशिष्ट पहचानकर्ता स्ट्रिंग। दस्तावेज़ीकरण का ResourceId पैरामीटर में पाया जा सकता है: एडब्ल्यूएस एप्लिकेशन ऑटो स्केलिंग एपीआई संदर्भ
  • scalable_dimension - (आवश्यक) स्केलेबल लक्ष्य के स्केलेबल आयाम। दस्तावेज़ीकरण ScalableDimension पैरामीटर में पाया जा सकता है: AWS अनुप्रयोग ऑटो स्केलिंग एपीआई संदर्भ
  • service_namespace - (आवश्यक) स्केलेबल लक्ष्य का AWS सेवा नामस्थान। दस्तावेज़ीकरण ServiceNamespace पैरामीटर में पाया जा सकता है: AWS अनुप्रयोग ऑटो स्केलिंग एपीआई संदर्भ
  • step_scaling_policy_configuration - (वैकल्पिक) चरण स्केलिंग नीति कॉन्फ़िगरेशन, के लिए policy_type = "StepScaling" (डिफ़ॉल्ट) की आवश्यकता होती है। नीचे समर्थित फ़ील्ड देखें।
  • target_tracking_scaling_policy_configuration - (वैकल्पिक) लक्ष्य ट्रैकिंग नीति, के लिए policy_type = "TargetTrackingScaling" आवश्यकता होती है। नीचे समर्थित फ़ील्ड देखें।

खेतों की मेड़

step_scaling_policy_configuration

  • adjustment_type - (आवश्यक) निर्दिष्ट करता है कि समायोजन एक निरपेक्ष संख्या है या वर्तमान क्षमता का एक प्रतिशत है। मान्य मान ExactCapacity , PercentChangeInCapacity और PercentChangeInCapacity
  • cooldown - (आवश्यक) समय की मात्रा, सेकंड में, स्केलिंग गतिविधि पूरी होने के बाद और अगले स्केलिंग गतिविधि शुरू होने से पहले।
  • metric_aggregation_type - (वैकल्पिक) पॉलिसी की मैट्रिक्स के लिए एकत्रीकरण प्रकार। मान्य मान "न्यूनतम", "अधिकतम" और "औसत" हैं। मान के बिना, AWS एकत्रीकरण प्रकार को "औसत" मानेंगे।
  • min_adjustment_magnitude - (वैकल्पिक) स्केलिंग गतिविधि के परिणामस्वरूप आपके स्केलेबल आयाम को समायोजित करने के लिए न्यूनतम संख्या। यदि समायोजन प्रकार PercentChangeInCapacity है, तो स्केलिंग नीति इस राशि द्वारा स्केलेबल लक्ष्य के स्केलेबल आयाम को बदल देती है।
  • step_adjustment - (वैकल्पिक) समायोजन का एक सेट जो स्केलिंग का प्रबंधन करता है। इनकी निम्न संरचना है:
  step_adjustment {
    metric_interval_lower_bound = 1.0
    metric_interval_upper_bound = 2.0
    scaling_adjustment = -1
  }
  step_adjustment {
    metric_interval_lower_bound = 2.0
    metric_interval_upper_bound = 3.0
    scaling_adjustment = 1
  }
  • metric_interval_lower_bound - (वैकल्पिक) अलार्म थ्रेशोल्ड और क्लाउडवेअर मीट्रिक के बीच अंतर के लिए कम बाध्य है। मूल्य के बिना, AWS इस बाध्य को नकारात्मक अनंत के रूप में मानेगा।
  • metric_interval_upper_bound - (वैकल्पिक) अलार्म थ्रेशोल्ड और क्लाउडव्यू मीट्रिक के बीच अंतर के लिए ऊपरी बाध्य है। मान के बिना, AWS इस बाध्य को अनंत के रूप में मानेगा। ऊपरी बाउंड निचले बाउंड से अधिक होना चाहिए।
  • scaling_adjustment - (आवश्यक) सदस्यों की संख्या जिनके द्वारा स्केल किया जाता है, जब समायोजन सीमाएं भंग हो जाती हैं। एक सकारात्मक मान बढ़ा है। एक ऋणात्मक मान कम हो जाता है।

target_tracking_scaling_policy_configuration

  • target_value - (आवश्यक) मीट्रिक के लिए लक्ष्य मान।
  • disable_scale_in - (वैकल्पिक) इंगित करता है कि लक्ष्य ट्रैकिंग नीति द्वारा स्केल अक्षम किया गया है या नहीं। यदि मान सत्य है, तो पैमाना अक्षम है और लक्ष्य ट्रैकिंग नीति स्केलेबल संसाधन से क्षमता नहीं निकालेगी। अन्यथा, स्केल इन इनेबल है और लक्ष्य ट्रैकिंग पॉलिसी स्केलेबल संसाधन से क्षमता को हटा सकती है। डिफ़ॉल्ट मान false
  • scale_in_cooldown - (वैकल्पिक) गतिविधि में एक पैमाने के पूरा होने के बाद सेकंड में, समय की मात्रा, गतिविधि शुरू होने से पहले पूरी हो जाती है।
  • scale_out_cooldown - (ऑप्शनल) समय की मात्रा, सेकंड में, एक स्केल आउट एक्टिविटी पूरी होने से पहले एक और स्केल आउट एक्टिविटी शुरू हो सकती है।
  • customized_metric_specification - (वैकल्पिक) भविष्य में उपयोग के लिए आरक्षित। नीचे समर्थित फ़ील्ड देखें।
  • predefined_metric_specification - (वैकल्पिक) एक पूर्वनिर्धारित मीट्रिक। नीचे समर्थित फ़ील्ड देखें।

customized_metric_specification

  • dimensions - (वैकल्पिक) मीट्रिक के आयाम।
  • metric_name - (आवश्यक) मीट्रिक का नाम।
  • namespace - (आवश्यक) मेट्रिक के नाम स्थान।
  • statistic - (आवश्यक) मीट्रिक का आँकड़ा।
  • unit - (वैकल्पिक) मीट्रिक की इकाई।

predefined_metric_specification

  • predefined_metric_type - (आवश्यक) मीट्रिक प्रकार।
  • resource_label - (वैकल्पिक) भविष्य में उपयोग के लिए आरक्षित।

गुण का संदर्भ

  • adjustment_type - स्केलिंग पॉलिसी का एडजस्टमेंट टाइप।
  • arn - स्केलिंग पॉलिसी को AWS द्वारा सौंपा गया ARN।
  • name - स्केलिंग नीति का नाम।
  • policy_type - स्केलिंग पॉलिसी का प्रकार।