我有一个生成SecurityGroup和ELB的CloudFormation脚本; 我正在尝试在ELB创建中引用SecurityGroup; 这是资源位:
"ELBSecurityGroup" : {
"Type" : "AWS::EC2::SecurityGroup",
"Properties" : {
"GroupDescription" : "Security group for the Arena dev stack",
"SecurityGroupIngress" : [
{"IpProtocol" : "tcp", "FromPort" : 80, "ToPort" : 80, "CidrIp" : { "Ref" : "OfficeIp" }}
]
}
},
"ProjectLoadBalancerTest" : {
"Type" : "AWS::ElasticLoadBalancing::LoadBalancer",
"Properties" : {
"AvailabilityZones" : { "Fn::GetAZs" : "" },
"Instances" : [ ],
"Listeners" : [ {
"LoadBalancerPort" : "80",
"InstancePort" : "12345",
"Protocol" : "HTTP"
} ],
"HealthCheck" : …
Run Code Online (Sandbox Code Playgroud) 我们在Amazon EC2上托管了一些应用程序,并使用Elastic Load Balancer(ELB)来管理一个应用程序的多个实例.此外,我们已设置ELB警报以获得有关不健康主机的通知,即实例已关闭时.
到目前为止,除了AWS控制台中的ELB状态页面之外,我无法确定在警报响起时检查哪个实例确实已关闭的位置.但是,如果实例再次返回In Service状态,这对我也没有帮助.ELB发出的电子邮件通知不包含此信息; 我也无法在控制台的警报历史中找到它.
是否有办法告诉哪个实例已触发ELB警报,即使实例在此期间已恢复为OK状态?
干杯,亚历克斯
我有一个EC2启动配置,可以构建ECS优化的AMI.我有一个自动缩放组,确保我始终至少有两个可用的实例.最后,我有一个负载均衡器.
我正在尝试创建一个ECS服务,在负载均衡器中的实例之间分配我的任务.
在阅读了ECS负载平衡的文档之后,我的理解是我的ASG不应该自动向ELB注册我的EC2实例,因为ECS负责这一点.所以,我的ASG没有指定ELB.同样,我的ELB没有任何已注册的EC2实例.
当我创建我的ECS服务时,我选择ELB并选择ecsServiceRole.创建服务后,我从未在ECS实例选项卡中看到任何可用实例.该服务也无法启动任何任务,其中包含非常一般的错误...
服务无法放置任务,因为无法找到资源.
我已经在这里工作了大约两天,似乎无法弄清楚哪些配置设置没有正确配置.有没有人对可能导致这种情况不起作用的想法有任何想法?
更新@ 06/25/2015:
我认为这可能与ECS_CLUSTER
用户数据设置有关.
在我的EC2自动缩放启动配置中,如果我将用户数据输入完全清空,则会创建ECS_CLUSTER
值为"default" 的实例.发生这种情况时,我会看到一个自动创建的集群,名为"default".在这个默认集群中,我看到了实例,并且可以像预期的那样向ELB注册任务.一旦任务在ELB中注册,我的ELB运行状况检查(HTTP)就会通过,并且一切都在世界上很好.
但是,如果我将该ECS_CLUSTER
设置更改为自定义设置,我永远不会看到使用该名称创建的集群.如果我手动创建具有该名称的集群,则实例永远不会在集群中可见.在这种情况下,我无法在ELB中注册任务.
有任何想法吗?
在AWS上,我在EC2上托管多个(完全不同的)域名,由ELB覆盖.我已经为1个域及其子域提供了1个通配符SSL证书.(xxxx.site1.com)
那么现在我可以为另一个不同的域添加一个单一SSL证书(在同一个ELB上),比如(www.site2.com)吗?
我问这个是因为有些文章说,它不会起作用而只是粉碎.
请提出建议.
我试图AutoScalingRollingUpdate
通过引入在线新实例来开始我的自动扩展组,然后只有在新实例接受流量时才终止旧实例.似乎AutoScalingRollingUpdate就是为此目的而设计的.
我将AutoScalingGroup的HealthCheckType设置为'ELB'.我还在ELB上设置了HealthCheck,要求:
现在,从ELB的角度来看,当新实例联机时,它们不是InService几分钟,这就是我的期望.但是,从AutoScalingGroup的角度来看,它们几乎立即被视为InService,因此,我的AutoScalingGroup在新实例准备好接收流量之前将健康实例停止服务.我很困惑为什么ASG认为实例在ELB之前是健康的,当HealthCheckType明确地设置为'ELB'时.
我已经尝试过设置宽限期,但这根本不会改变任何东西.事实上,我删除了300秒的宽限期,因为我认为在宽限期或某些事情中,可能实例是隐含的"InService".
我知道我可以在滚动更新策略上设置PauseTime,但这很脆弱,因为有时在实例联机时会发生故障,并且在完成配置之前它们会被修复和替换,因此有时可能会超出PauseTime窗口.此外,我想尽量减少我的应用程序同时运行两个不同版本的时间.
... ELB stuff ...
"HealthCheck": {
"HealthyThreshold": "3",
"UnhealthyThreshold": "10",
"Interval": "30",
"Timeout": "15",
"Target": {
"Fn::Join": [
"",
[
{"Fn::Join": [":", ["HTTP", {"Ref": "hostPort"}]]},
{"Ref": "healthCheckPath"}
]
]
}
},
... ASG Stuff ...
{
... snip ...
"HealthCheckType": "ELB",
"HealthCheckGracePeriod": "0",
"Cooldown": "300"
},
"UpdatePolicy" : {
"AutoScalingRollingUpdate" : {
"MinInstancesInService" : "1",
"MaxBatchSize" : "1"
}
}
Run Code Online (Sandbox Code Playgroud) amazon-web-services amazon-elb aws-cloudformation autoscaling
我已经看到了一堆像类似的问题这一个,但没有给出一个笼统的回答.我是AWS的新手.我现在在我的VPC中运行了2个实例.我在他们面前有一个ELB设置,可以很好地将流量路由到两者.问题是,这两个实例目前也可以通过整个网络的HTTP来实现.我想改变一些事情,所以我的实例只能通过我的ELB点击HTTP.我怎样才能做到这一点?
有谁知道是否可以将现有的AWS Elastic Beanstalk环境更改为应用程序负载均衡器(而不是经典的).
据我所知,只有应用程序ELB可以使用AWS WAF和DDOS"Shield"进行保护,因此任何现有的EB应用程序都无法利用这些功能,因为它们具有经典的ELB.
amazon-web-services amazon-elb amazon-elastic-beanstalk amazon-waf
在 Amazon 的“经典负载均衡器”上,您可以创建一条规则将 HTTPS 连接转发到 HTTP,通过将证书上传到负载均衡器并让服务器仅处理 http 来简化 SSL 和服务器配置。
我现在尝试使用亚马逊的新一代“应用程序负载均衡器”复制相同的设置,但新的规则系统似乎不允许这样做。
我可以创建一个规则来侦听 HTTPS/443 并重定向,但它只允许我重定向到 HTTPS 或#{protocol}://#{host}:80/#{path}?#{query}
,这仍然意味着我的服务器必须支持 HTTPS,我想避免这种情况,因为这意味着每个服务器仍然必须包含SSL 证书并具有端口 443 的站点配置。
新一代 ELB 是否不支持此功能,或者是否有其他方法可以配置它?
我有一个 ELB(以几个 Auto Scaling 组作为目标组的网络负载均衡器),其定期运行状况检查失败(即某些实例将被标记为不运行状况,然后在几分钟后恢复)。健康检查是一个简单的静态页面(即/health_check)。
时间似乎是在主机网络负载较重(从 S3 下载大文件)的同时,但我想了解更多信息(例如,它们未通过 https 中提到的主动健康检查或被动健康检查: //docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-health-checks.html)。
但是,我无法从 ELB 找到健康检查历史记录或日志。我的所有搜索发现都是关于 ELB 的访问日志 ( https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-access-logs.html ),它与实际的用户请求有关。
此健康检查历史记录/日志可以在任何地方访问吗?
这是我的负载均衡器Sid-LB - 托管区域ID突出显示:
当我从Alias Target中选择负载均衡器时,这就是Route 53(托管区域ID突出显示).
我不明白为什么这两个ID必须不同.我尝试使用有效负载(包含ELB托管区域ID)发送API调用来创建记录集,它创建但不起作用.如何生成Route 53的Alias Hosted Zone ID,它是否与ELB Hosted Zone ID有任何关联?
amazon-elb ×10
amazon-ec2 ×4
amazon-ecs ×1
amazon-waf ×1
autoscaling ×1
aws-elb ×1
certificate ×1
dns ×1
ssl ×1