问题标签 [aws-alb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1259 浏览

amazon-web-services - AWS ECS 服务定义:角色属性

我正在使用 cloudformation 和 yaml 语法设置 AWS ECS 服务。

在某些时候,在相关文档中有一个名为的属性Role,其定义如下:

角色

允许您的 Amazon ECS 容器代理调用负载均衡器的 AWS Identity and Access Management (IAM) 角色的名称或 ARN。

注意在某些情况下,您可能需要添加对服务角色策略的依赖项。有关更多信息,请参阅 DependsOn 属性中的 IAM 角色策略。必需:否 类型:字符串 更新要求:替换

由于我打算将特定服务放在Application Load Balancer后面,是否需要此属性?

如果是这样,我是否需要创建新策略或是否有任何预定义的策略可以达到此目的?

如果我只是在 EC2 容器实例级别添加角色/策略就足够了吗(例如,将其附加到创建亚马逊提供的 ECS 集群的相关模板中?)

如果有任何示例或用例,我将不胜感激,因为该主题的文档含糊不清且不完整。

0 投票
1 回答
2215 浏览

amazon-web-services - AWS:在 Elasticsearch 托管服务前放置应用程序负载平衡

我正在 AWS 上创建弹性搜索托管服务;

创建服务时,不会创建显式实例,而只会给您一个 url/endpoint;

我想通过 ALB 公开服务,但是在创建相应的目标组时,我不得不在 和 之间进行选择instanceip而我唯一拥有的是端点(url);

如何解决这个问题?

0 投票
0 回答
1401 浏览

amazon-web-services - 具有后端和前端支持的基于 Http/2 的负载均衡器

作为一家企业公司,我们希望迁移到 http/2 。以下是我们的基础设施。

基础设施 我们目前使用 AWS ALB 作为负载均衡器,由我们在其上运行 Apache Web 服务器的 EC2 实例提供支持。Apache Web 服务器是 http 服务器,然后通过 mod_jk 连接器连接到 tomcat servlet 容器。webapp 在 tomcat 中。

我们在 apache Web 服务器上启用了 http/2,但问题是 AWS ALB 只与前端而不是与后端对话 http/2。我已经阅读了通过使 AWS ALB 作为第 4 层负载均衡器(TCP 模式或 TCP 直通模式)运行来克服这个问题的解决方案,下面是一个讨论它的链接。这可能有几个问题,因为从客户端以 http/2 格式传递的信息在负载均衡器转换为 TCP 时会丢失,例如标识客户端的 x-forwarded-for 标头。另外,我猜(根据一些博客)会话粘性也会受到影响,因为这也是仅在第 7 层支持的功能。

问题是如何在前端和后端的 AWS ALB 中支持 http/2 而不会影响会话粘性和客户端识别等功能。如果不是 AWS ALB,是否还有其他支持端到端 http/2 的负载均衡器。

是否可以仅在前端启用 http/2 并在 AWS ALB 和后端实例(Apache Web 服务器)之间使用 http/1.1。我对这个问题的看法是,如果我们在前端启用了 http/2,那么浏览器和 ALB 之间的一个 TCP 连接上的请求会多路复用,但是负载均衡器和 apache Web 服务器之间的每个请求都会有一个 TCP 连接因此不会真正请求多路复用。如果我的理解有误,请纠正我。

如基础设施图中所示,我们还使用 AWS Cloudfront 作为 CDN。cloudfront 也存在类似的问题。AWS cloudfront 与客户端交谈 http/2,但与后端交谈 http/1.1(这里的后端是指 AWS ALB)。AWS cloudfront 上的服务器推送状态如何?他们的文档中没有明确提到它。服务器推送将是我们想要利用的一项功能。

0 投票
1 回答
852 浏览

amazon-web-services - AWS Application Load Balancer WebSocket 基于元数据的粘性?

我们有一些服务的集群。客户端通过 Websocket 连接到集群。客户端根据它们所属的组定位到节点(我们称之为“会议”)。

换句话说,一整组客户端(会议)由一个特定节点提供服务。因此,应该根据发起 WebSocket 连接时发送的一些元数据来选择目标节点。

请注意,这不是基于 HTTP 会话的粘性。对于同一个用户,HTTP 会话是相同的。

这一切都是我们想要的。但目前我们使用的是简单的 AWS 弹性负载均衡器,我们即将在内部实现这种粘性并绕过 ELB。

在此之前,我正在研究 ALB 是否可以执行我上面描述的操作。找不到任何东西,只是这样:Application Load Balancer 是否支持 WebSockets?这看起来像是一般的连接粘性。在此处查看AWS 文档

如何使用 ALB 进行基于元数据的 WebSocket 粘性?(或者在 AWS 中使用其他东西)。

0 投票
0 回答
850 浏览

aws-api-gateway - AWS 应用程序负载均衡器 - 仅允许来自 API Gateway 的请求

如何将 AWS Application Load Balancer 限制为仅接收源自 AWS API Gateway 的 HTTP\HTTPS 请求?

我知道 API Gateway 可以生成客户端证书并将其发送到后端,如下所述: https ://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-client-side-ssl-authentication .html

但是找不到任何方法来设置 ALB 来验证客户端证书。是否有其他替代方法可以确保 ALB 仅处理和传递通过 AWS API GW 的请求?

0 投票
1 回答
579 浏览

amazon-web-services - AWS ALB 与 Docker 群

我有一个在 AWS EC2 上运行的应用程序。为了获得高可用性,我们计划设置 AWS 负载均衡器并将应用程序托管在至少 2 个 EC2 实例中。

我们还听说过 Docker swarm,其中我们可以在 2 个单独的 EC2 实例上创建一个具有 2 个管理器的服务,并且 swarm 将处理其余的(而不是使用带有 2 个 EC2 的 ALB)。它将平衡集群内所有容器的负载,并且如果有任何事情导致容器停止运行,它还会重新启动容器。

所以我想知道哪个是我的案例的最佳选择。该应用程序不会得到繁重的负载/流量。为什么我选择负载均衡器是为了高可用性。如果 1 个实例出现故障,另一个实例将处理此问题。

如果还有其他选择可以满足我的要求,我们将不胜感激。谢谢。

0 投票
0 回答
426 浏览

amazon-web-services - 具有 ALB 和 SSL 证书问题的 ECS:net::ERR_CERT_COMMON_NAME_INVALID

我有一个 aws ECS 设置并使用 ALB 作为负载均衡器。容器任务在端口 8080 上运行。我还添加了HTTPS listener来自 ACM 的 SSL 证书,它将请求转发到容器。

现在我有一个问题。当使用 curl 或 postman 联系负载均衡器的 DNS 名称时,我得到了应用程序的完美响应。但是,当在我的前端使用相同的 DNS 名称并在本地前端应用程序中运行时(localhost:3000),并且请求是从 Chrome 生成的,我收到以下错误: net::ERR_CERT_COMMON_NAME_INVALID

我该如何解决这个问题?

我还尝试将应用程序部署到我的测试环境,所以localhosthttps://example.com现在拥有的不是 ,而是与 Certificate 的 Domain name 匹配(*.example.com)。但还是一样的结果。

0 投票
1 回答
5051 浏览

dns - 使用 AWS ELB 将域名添加到 ECS 应用程序

我有一个在具有 2 个实例的 AWS ECS 集群上运行的应用程序。我正在为 ECS 使用 EC2 实例类型。我还有一个应用程序负载均衡器连接到这个使用动态端口映射的 ECS 集群。现在,应用程序在负载均衡器的域名下运行良好。

我计划为负载均衡器添加 SSL 功能,并为我的应用程序添加一个域名。为简单起见,我计划使用 AWS ACM 为 HTTPS 连接创建 SSL 证书。但我不是很了解域名注册等。

因此,如果我要进行新的域注册,我不确定在哪里附加该域。我使用什么 IP 进行域注册?或者如果我有一个域名,我可以将它附加到我的应用程序中吗?

但是,我仍然不确定该指向哪里。任何有关使用 ecs 和 aws alb 将域附加到应用程序的帮助将不胜感激。

提前致谢。

0 投票
1 回答
2066 浏览

amazon-web-services - AWS ALB:基于路径的路由不转发到目标组

我创建了一个 ALB 和一个目标组。

ALB 在 上有一个监听器80。这会将其转发到我的目标组,然后再将其发送到 port 上的已注册实例9000

我正在尝试添加基于路径的规则,如下所示:

在此处输入图像描述

但是,当我点击时<alb-dns-name>,我会被重定向到我的注册实例。

当我尝试时,<alb-dns-name>/portainer我得到404.

我错过了什么吗?

0 投票
1 回答
624 浏览

terraform - Terraform:使用带有插值的模块的公共和私有应用程序负载均衡器

我有一个用例,我想创建 2 个应用程序负载均衡器,一个是公共的,另一个是私有的,使用 terraform 模块。

我知道我们可以使用相同类型的代码为私有和公共参数创建 2 个目录,但我试图通过使用 terraform 的插值来创建两个负载均衡器,如下所述。

ALB 模块:

main.tf从我调用 alb 模块的地方。

因此,对于公共负载均衡器,我必须传递与私有负载均衡器相同的私有子网和内部安全组.

我想知道这是正确的方法还是单独的目录是目前唯一的解决方法。