Terraform 0.11

aws_elb




terraform

aws_elb

अनुप्रयोग / नेटवर्क लोड Balancers के रिलीज़ होने के बाद एक इलास्टिक लोड बैलेंसर संसाधन, जिसे "क्लासिक लोड बैलेंसर" के रूप में भी जाना जाता है।

उदाहरण उपयोग

# Create a new load balancer
resource "aws_elb" "bar" {
  name               = "foobar-terraform-elb"
  availability_zones = ["us-west-2a", "us-west-2b", "us-west-2c"]

  access_logs {
    bucket        = "foo"
    bucket_prefix = "bar"
    interval      = 60
  }

  listener {
    instance_port     = 8000
    instance_protocol = "http"
    lb_port           = 80
    lb_protocol       = "http"
  }

  listener {
    instance_port      = 8000
    instance_protocol  = "http"
    lb_port            = 443
    lb_protocol        = "https"
    ssl_certificate_id = "arn:aws:iam::123456789012:server-certificate/certName"
  }

  health_check {
    healthy_threshold   = 2
    unhealthy_threshold = 2
    timeout             = 3
    target              = "HTTP:8000/"
    interval            = 30
  }

  instances                   = ["${aws_instance.foo.id}"]
  cross_zone_load_balancing   = true
  idle_timeout                = 400
  connection_draining         = true
  connection_draining_timeout = 400

  tags {
    Name = "foobar-terraform-elb"
  }
}

तर्क संदर्भ

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

  • name - (वैकल्पिक) ELB का नाम। Terraform द्वारा उत्पन्न डिफ़ॉल्ट रूप से।
  • name_prefix - (वैकल्पिक, नए संसाधन) निर्दिष्ट उपसर्ग के साथ एक अद्वितीय नाम की शुरुआत करता है। name साथ संघर्ष।
  • access_logs - (वैकल्पिक) एक प्रवेश लॉग ब्लॉक। प्रवेश लॉग नीचे प्रलेखित है।
  • availability_zones - (ईसी 2-क्लासिक ईएलबी के लिए आवश्यक) एज़ इन ट्रैफिक की सेवा करने के लिए।
  • security_groups - (वैकल्पिक) ELB को असाइन करने के लिए सुरक्षा समूह ID की एक सूची। केवल तभी मान्य होता है जब VPC के भीतर कोई ELB बनाया जाता है
  • subnets - (वीपीसी ईएलबी के लिए आवश्यक) ईएलबी से जुड़ने के लिए सबनेट आईडी की एक सूची।
  • instances - (वैकल्पिक) उदाहरण की सूची में ईएलबी पूल में जगह है।
  • internal - (वैकल्पिक) यदि सही है, तो ELB एक आंतरिक ELB होगा।
  • listener - (आवश्यक) श्रोता ब्लॉकों की एक सूची। श्रोताओं ने नीचे दस्तावेज दिए हैं।
  • health_check - (वैकल्पिक) a health_check block। स्वास्थ्य जांच नीचे दी गई है।
  • cross_zone_load_balancing - (वैकल्पिक) क्रॉस-ज़ोन लोड संतुलन सक्षम करें। डिफ़ॉल्ट: true
  • idle_timeout - (वैकल्पिक) सेकंड में वह समय जो कनेक्शन को निष्क्रिय होने की अनुमति देता है। डिफ़ॉल्ट: 60
  • connection_draining - (वैकल्पिक) कनेक्शन जल निकासी को सक्षम करने के लिए बूलियन। डिफ़ॉल्ट: false
  • connection_draining_timeout - (वैकल्पिक) कनेक्शन के लिए अनुमति देने के लिए सेकंड में समय। डिफ़ॉल्ट: 300
  • tags - (वैकल्पिक) संसाधन को असाइन करने के लिए टैग की मैपिंग।

availability_zones या subnets किसी एक को निर्दिष्ट किया जाना चाहिए: यह निर्धारित करता है कि ईएलबी एक वीपीसी या ईसी 2-क्लासिक में मौजूद है या नहीं।

प्रवेश लॉग ( access_logs ) निम्नलिखित का समर्थन करते हैं:

  • bucket - (आवश्यक) लॉग में स्टोर करने के लिए S3 बाल्टी नाम।
  • bucket_prefix - (वैकल्पिक) S3 बाल्टी उपसर्ग। लॉग कॉन्फ़िगर नहीं किए जाने पर रूट में संग्रहीत किए जाते हैं।
  • interval - (वैकल्पिक) प्रकाशन अंतराल मिनटों में। डिफ़ॉल्ट: 60 मिनट।
  • enable - (वैकल्पिक) access_logs अक्षम / निष्क्रिय करने के लिए बूलियन। डिफ़ॉल्ट true

श्रोता ( listener ) निम्नलिखित का समर्थन करते हैं:

  • instance_port - (आवश्यक) रूट पर पोर्ट पर करने के लिए
  • instance_protocol - (आवश्यक) instance_protocol लिए उपयोग करने के लिए प्रोटोकॉल। मान्य मान HTTP , HTTPS , TCP या SSL
  • lb_port - (आवश्यक) लोड बैलेंसर के लिए सुनने के लिए पोर्ट
  • lb_protocol - (आवश्यक) प्रोटोकॉल को सुनने के लिए। मान्य मान HTTP , HTTPS , TCP या SSL
  • ssl_certificate_id - (वैकल्पिक) एक SSL प्रमाणपत्र का ARN जो आपने AWS IAM पर अपलोड किया है। नोट ECDSA- विशिष्ट प्रतिबंध नीचे दिए गए हैं। केवल मान्य है जब lb_protocol HTTPS या SSL है

स्वास्थ्य जांच ( health_check ) निम्नलिखित का समर्थन करती है:

  • healthy_threshold - (आवश्यक) उदाहरण से पहले चेक की संख्या को स्वस्थ घोषित किया गया है।
  • unhealthy_threshold - (आवश्यक) उदाहरण से पहले चेक की संख्या को अस्वास्थ्यकर घोषित किया गया है।
  • target - (आवश्यक) जाँच का लक्ष्य। मान्य पैटर्न "$ {PROTOCOL}: $ {PORT} $ {PATH}" है, जहाँ PROTOCOL मान हैं:
    • HTTP , HTTPS - PORT और PATH की आवश्यकता है
    • TCP , SSL - पोर्ट आवश्यक है, पेटी समर्थित नहीं है
  • interval - (आवश्यक) चेक के बीच का अंतराल।
  • timeout - (आवश्यक) चेक समय से पहले समय की लंबाई।

ECDSA कुंजी एल्गोरिथम पर ध्यान दें

यदि ssl_certificate_id के ARN को ssl_certificate_id कुंजी द्वारा हस्ताक्षरित प्रमाणपत्र के संदर्भ में इंगित किया जाता है, तो ध्यान दें कि ELB केवल P256 और P384 घटता का समर्थन करता है। किसी भिन्न वक्र का उपयोग करके कुंजी द्वारा हस्ताक्षरित प्रमाणपत्र का उपयोग करने से आपके ब्राउज़र में ERR_SSL_VERSION_OR_CIPHER_MISMATCH त्रुटि उत्पन्न हो सकती है।

संदर्भ संदर्भित करता है

उपरोक्त सभी तर्कों के अलावा, निम्नलिखित विशेषताएँ निर्यात की जाती हैं:

  • id - ईएलबी का नाम
  • arn - ELB का ARN
  • name - ईएलबी का नाम
  • dns_name - ELB का DNS नाम
  • instances - ईएलबी में उदाहरणों की सूची
  • source_security_group - सुरक्षा समूह का नाम जिसे आप अपने लोड बैलेंसर के बैक-एंड एप्लिकेशन इंस्टेंस के लिए अपने इनबाउंड नियमों के भाग के रूप में उपयोग कर सकते हैं। इसका उपयोग केवल क्लासिक या डिफ़ॉल्ट VPC के लिए करें।
  • source_security_group_id - सुरक्षा समूह की वह आईडी जिसे आप अपने लोड बेलेंसर के बैक-एंड एप्लिकेशन इंस्टेंस के लिए अपने इनबाउंड नियमों के हिस्से के रूप में उपयोग कर सकते हैं। केवल VPC में लॉन्च किए गए ELB पर उपलब्ध है।
  • zone_id - zone_id की कैनोनिकल होस्टेड ज़ोन आईडी (रूट 53 एलियास रिकॉर्ड में उपयोग की जाने वाली)

आयात

ईएलबी को name का उपयोग करके आयात किया जा सकता है, जैसे

$ terraform import aws_elb.bar elb-production-12345