AWS::ElasticLoadBalancing::LoadBalancer: Properties: AccessLoggingPolicy: | { "EmitInterval" => 15, "Enabled" => true, "S3BucketName" => "Bucket Name", "S3BucketPrefix" => "my-load-balancer-logs/prod" } AppCookieStickinessPolicy: | [ { "CookieName" => "Name of the application cookie used for stickiness", "PolicyName" => "The name of the policy being created. The name must be unique within the set of policies for this Load Balancer." } ] AvailabilityZones: | [ "The Availability Zones in which to create the load balancer. ", "You can specify the AvailabilityZones or Subnets property, but not both." ] ConnectionDrainingPolicy: | { "Enabled" => true, "Timeout" => 60 } ConnectionSettings: | { "IdleTimeout" => "60" } CrossZone: true HealthCheck: | { "HealthyThreshold" => 3, "Interval" => 10, "Target" => "HTTP:80/", "Timeout" => "10", "UnhealthyThreshold" => "5" } Instances: | ["i-xxxxxx"] LBCookieStickinessPolicy: | [ { "CookieExpirationPeriod" => "36000", "PolicyName" => "The name of the policy being created. The name must be unique within the set of policies for this load balancer." } ] LoadBalancerName: | "A name for the load balancer. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the load balancer." "If you specify a name, you cannot do updates that require this resource to be replaced. You can still do updates that require no or some interruption. If you must replace the resource, specify a new name." Listeners: | [ { "InstancePort" => 80, "InstanceProtocol" => "HTTP|HTTPS|TCP|SSL", "LoadBalancerPort" => 80, "PolicyNames" => ["policy-name"], "Protocol" => "HTTP|HTTPS|TCP|SSL", "SSLCertificateId" => "arn:xxxx" } ] Policies: | [ { "PolicyName" => "MySSLNegotiationPolicy", "PolicyType" => "SSLNegotiationPolicyType", "Attributes" => [ { "Name" => "Protocol-TLSv1", "Value" => "true" }, { "Name" => "Protocol-SSLv2", "Value" => "true" }, { "Name" => "Protocol-SSLv3", "Value" => "false" }, { "Name" => "DHE-RSA-AES256-SHA", "Value" => "true" } ] }, { "PolicyName" => "MyAppCookieStickinessPolicy", "PolicyType" => "AppCookieStickinessPolicyType", "Attributes" => [ { "Name" => "CookieName", "Value" => "MyCookie"} ] }, { "PolicyName" => "MyPublicKeyPolicy", "PolicyType" => "PublicKeyPolicyType", "Attributes" => [ { "Name" => "PublicKey", "Value" => { "Fn::Join" => [ "\n", [ "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDh/51Aohx5VrpmlfGHZCzciMBa", "fkHve+MQYYJcxmNUKMdsWnz9WtVfKxxWUU7Cfor4lorYmENGCG8FWqCoLDMFs7pN", "yGEtpsrlKhzZWtgY1d7eGrUrBil03bI90E2KW0j4qAwGYAC8xixOkNClicojeEz4", "f4rr3sUf+ZBSsuMEuwIDAQAB" ] ] } } ] }, { "PolicyName" => "MyBackendServerAuthenticationPolicy", "PolicyType" => "BackendServerAuthenticationPolicyType", "Attributes" => [ { "Name" => "PublicKeyPolicyName", "Value" => "MyPublicKeyPolicy" } ], "InstancePorts" => [ "8443" ] }, { "PolicyName" => "EnableProxyProtocol", "PolicyType" => "ProxyProtocolPolicyType", "Attributes" => [{ "Name" => "ProxyProtocol", "Value" => "true" }], "InstancePorts" => [ "80" ] }, { "PolicyName" => "ELBSecurityPolicyName", "PolicyType" => "SSLNegotiationPolicyType", "Attributes" => [{ "Name" => "Reference-Security-Policy", "Value" => "ELBSecurityPolicy-2014-10" }] } ] Scheme: | "internal|internet-facing, If you specify internal, you must specify subnets to associate with the load balancer, not Availability Zones." SecurityGroups: | ["sg-xxxx"] Subnets: | ["subnet-xxxx"] Tags: | [ { "Key" => "Application", "Value" => "my-app" } ]