标签: amazon-elb

将通配符证书安装到AWS EC2负载均衡器上

我遇到了麻烦.我按照我在这里找到的指南

http://www.thenetworkadministrator.net/index.php/2011/12/iis-ssl-certificate-into-amazon-elastic-load-balancer/

并通过cert导出并创建所有这些文件,但它不会告诉您哪个文件在哪个字段中.我尝试了我认为的所有组合,但它不接受它

我按如下方式设置平衡器

在此输入图像描述

然后我尝试设置证书

在此输入图像描述

然后你可以看到它告诉我它无效.

如果它帮助我从IIS导出并按照提供的链接上的教程,证书是DigiCert通配符证书,即(*.domain.com)

openssl load-balancing ssl-certificate amazon-web-services amazon-elb

16
推荐指数
1
解决办法
2万
查看次数

WebSockets:通过ELB从客户端到Amazon AWS EC2实例

如何通过ELB将ssl连接到由GlassFish在Amazon AWS EC2实例上提供的websocket?

我在GlassFish 4.1 b13预发布中使用Tyrus 1.8.1作为我的websocket实现.

端口8080是不安全的,端口8181是用ssl保护的.

  • ELB dns名称:elb.xyz.com
  • EC2 dns名称:ec2.xyz.com
  • websocket路径:/ web/socket

我已成功使用ws和wss直接连接到我的EC2实例(绕过我的ELB).即以下两个网址都有效:

  • WS://ec2.xyz.com:8080 /网络/插座
  • WSS://ec2.xyz.com:8181 /网络/插座

我已经通过使用tcp 80> tcp 8080监听器在我的ELB上成功使用了ws(非ssl).即以下网址有效:

  • WS://elb.xyz.com:80 /网络/插座

但是,我没有能够通过我的ELB找到使用wss的方法.

我尝试了很多东西.

我假设最有可能通过我的ELB工作的方法是在我的ELB上创建一个tcp 8181> tcp 8181监听器并启用代理协议,并使用以下URL:

  • WSS://elb.xyz.com:8181 /网络/插座

不幸的是,这不起作用.我想我可能必须在glassfish上启用代理协议,但是我无法找到如何做到这一点(或者如果可能的话,或者wss是否有必要在我的ELB上工作).

另一种选择可能是以某种方式使用ws或wss运行在ELB上终止的ssl连接,并通过使用ssl> tcp 8080侦听器使其继续对glassfish不安全.这对我来说也不起作用,但也许有些设置不正确.

有没有人对我上述两项试验进行任何修改.或者有人有其他建议吗?

谢谢.

ssl wss glassfish websocket amazon-elb

15
推荐指数
2
解决办法
1万
查看次数

AWS Elastic Load Balancing:看到极长的初始连接时间

几天,我们经常看到在通过ssl发出任何请求时,我们的ELB的初始连接时间非常长(15s - 1.3分钟).奇怪的是,我只能在谷歌浏览器中观察到这一点(不是Safari,也不是Firefox,也不是卷曲).

它并不是每次发出请求,而是大约50%的请求.它发生在第一个请求(OPTIONS-call).

我们的设置如下:跨区域ELB连接到node.js后端(目前在eu-west-1中的2个AZ).所有实例都是健康的,一旦请求通过,它就会正常处理.目前,系统基本上没有负载.Cloudwatch for ELB不会报告任何后端连接错误,也不会报告SurgeQueue(值0)和溢出计数.ELB指标显示低延迟(<100 ms).我们将Route53配置为路由到ELB(我们没有看到任何dns问题,请参阅附带的屏幕截图).

我们有不同的REST-API都有这个设置.它发生在所有ELB上(每个ELB都连接到一个独立的node.js后端).所有这些ELB都通过我们的cloudformation模板以相同的方式设置.

ELB也进行SSL终止.

什么可能导致这种行为?ELB可能配置不正确吗?为什么它只能出现在谷歌浏览器上?

请求时间

google-chrome amazon-web-services amazon-elb

15
推荐指数
2
解决办法
6301
查看次数

AWS ECS 503服务在部署时暂时不可用

我正在为我的应用程序使用带有应用程序负载均衡器的Amazon Web Services EC2容器服务.当我部署新版本时,我得到503服务暂时不可用大约2分钟.它比我的应用程序的启动时间多一点.这意味着我现在无法进行零停机部署.

是否有设置在启动时不使用新任务?或者我在这里缺少什么?

更新:

ALB的目标组的运行状况检查编号如下:

Healthy threshold:     5
Unhealthy threshold:   2
Timeout:               5 seconds
Interval:              30 seconds
Success codes:         200 OK
Run Code Online (Sandbox Code Playgroud)

健康阈值是'在考虑不健康目标健康之前所需的连续健康检查成功次数'
不健康阈值是'在考虑目标不健康之前所需的连续健康检查失败次数'.
超时是'没有响应意味着健康检查失败的时间量,以秒为单位.'
间隔是'单个目标的健康检查之间的大致时间'

更新2:所以,我的集群由两个EC2实例组成,但如果需要可以扩展.所需和最小计数为2.我为每个实例运行一个任务,因为我的应用程序需要特定的端口号.在我部署之前(jenkins运行aws cli脚本)我将实例数设置为4.如果没有这个,AWS就无法部署我的新任务(这是另一个需要解决的问题).网络模式是桥梁.

amazon-web-services amazon-ecs http-status-code-503 amazon-elb

15
推荐指数
2
解决办法
9232
查看次数

AWS 网络 ELB 需要 4 分钟才能将目标识别为健康

使用 AWS 网络 ELB:注册实例至少需要四分钟才能变得“健康”。实例和服务已经运行了好几天,作为部署的一部分,我只是取消注册,然后在同一目标组上注册。如果我使用脚本或使用 AWS UI,CLI 没有区别。

健康检查设置是:

  • 端口:尝试了各种,都通过 curl 测试了侦听服务。80,22,9001
  • 健康阈值:2
  • 不健康阈值:2
  • 超时:10
  • 间隔:30

我可以看到来自指定端口的连接请求,服务做出适当响应,然后关闭连接。据我所知,这应该足以让 ELB 确定实例是否健康(一旦超过阈值)。这应该意味着我的实例在注册时间后启动并运行不超过 90 秒。我不知道为什么会发生这种情况,应该直截了当。

鉴于我已满足我的实例健康的已知标准,我无法确定是什么导致了如此长时间的延迟。他们在Elb.InitialHealthChecking原因上坐了大约 4 分钟。关于进一步测试以确定延迟原因的任何想法?

amazon-web-services amazon-elb

15
推荐指数
3
解决办法
3642
查看次数

NLB目标群体健康检查失控

我有一个网络负载均衡器和一个关联的目标组,配置为对EC2实例进行运行状况检查.问题是我看到了很多健康检查请求; 每秒多次.

检查之间的默认间隔应该是30秒,但是它们比它们应该的频率高出约100倍.

我的堆栈是在CloudFormation中构建的,我试过覆盖HealthCheckIntervalSeconds,这没有任何效果.有趣的是,当我尝试在控制台中手动更改间隔时,我发现这些值是灰色的:

编辑健康检查设置

这是模板的相关部分,我尝试更改注释的间隔:

NLB:
  Type: "AWS::ElasticLoadBalancingV2::LoadBalancer"
  Properties:
    Type: network
    Name: api-load-balancer
    Scheme: internal
    Subnets: 
      - Fn::ImportValue: PrivateSubnetA
      - Fn::ImportValue: PrivateSubnetB
      - Fn::ImportValue: PrivateSubnetC

NLBListener:
  Type : AWS::ElasticLoadBalancingV2::Listener
  Properties:
    DefaultActions:
      - Type: forward
        TargetGroupArn: !Ref NLBTargetGroup
    LoadBalancerArn: !Ref NLB
    Port: 80
    Protocol: TCP

NLBTargetGroup:
  Type: AWS::ElasticLoadBalancingV2::TargetGroup
  Properties:
    # HealthCheckIntervalSeconds: 30
    HealthCheckPath: /healthcheck
    HealthCheckProtocol: HTTP
    # HealthyThresholdCount: 2
    # UnhealthyThresholdCount: 5
    # Matcher:
    #   HttpCode: 200-399
    Name: api-nlb-http-target-group
    Port: 80
    Protocol: TCP 
    VpcId: !ImportValue PublicVPC
Run Code Online (Sandbox Code Playgroud)

我的EC2实例位于私有子网中,无法访问外部世界.NLB是内部的,因此没有通过API网关就无法访问它们.API网关没有 …

amazon-ec2 amazon-web-services amazon-elb aws-cloudformation

15
推荐指数
2
解决办法
7346
查看次数

AWS - ELB_5XX 和 HTTP_5XX 之间的区别

ELB_5xx在 AWS Cloud Watch 中,错误和之间有什么区别Http_5xx?然后还有 Backend_connection_errors。

load-balancing amazon-web-services amazon-elb amazon-cloudwatch

15
推荐指数
1
解决办法
1万
查看次数

使用Varnish背后的AWS ELB - 是否可能?

我试图在一些Varnish服务器后面放置一组EC2实例.我们的Varnish配置很少变化(一年一次或两次)但我们总是出于各种原因(更新,问题,负载峰值)添加/删除/替换Web后端.这会产生问题,因为我们总是需要更新我们的Varnish配置,这会导致错误和心碎.

我想要做的是简单地通过在Elastic Load Balancer中添加或删除它们来管理后端服务器集.我已经尝试将ELB端点指定为后端,但是我收到此错误:

Message from VCC-compiler:
Backend host "XXXXXXXXXXX-123456789.us-east-1.elb.amazonaws.com": resolves to multiple IPv4 addresses.
Only one address is allowed.
Please specify which exact address you want to use, we found these:
123.123.123.1
63.123.23.2
31.13.67.3
('input' Line 2 Pos 17)
.host = "XXXXXXXXXXX-123456789.us-east-1.elb.amazonaws.com";
Run Code Online (Sandbox Code Playgroud)

ELB提供的唯一一致的公共接口是其DNS名称.此DNS名称解析为的IP地址集随着时间和负载而变化.

在这种情况下,我宁愿不指定一个确切的地址 - 我想在从DNS返回的任何内容之间进行循环.这可能吗?或者有人可以提出另一种可以完成同样事情的解决方案吗?

谢谢,山姆

varnish amazon-web-services amazon-elb

14
推荐指数
2
解决办法
1万
查看次数

如何从CloudFormation将创建的SecurityGroup分配给ELB?

我有一个生成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-web-services amazon-elb aws-cloudformation

14
推荐指数
2
解决办法
1万
查看次数

基于AWS Application Load Balancer(ALB)路径的路由无法按预期运行

我正在开发一个POC来证明基于AWS路径的路由通过Application Load Balancer到一组非常基本的"hello world"node.js应用程序使用express.如果没有基于路径的路由并且具有多个侦听器,每个应用程序有一个侦听器,则每个相应的侦听器和应用程序都按预期工作.因此,目标群体内的目标均已通过健康检查,并显示为健康.但是,当我在其中一个侦听器上切换到基于路径的路由实现(删除其他不必要的侦听器)时,我得到两个应用程序的以下错误:

不能GET/expressapp
不能GET/expressapp2

听众规则

我已经通过以下文档来试图找出问题:http: //docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#path-conditions

我错过了什么?任何故障排除想法

amazon-ec2 amazon-web-services amazon-elb

14
推荐指数
1
解决办法
3922
查看次数