为AWS Load Balancer分配静态IP地址

Nar*_*sty 41 amazon-ec2 amazon-web-services amazon-elb amazon-vpc

如何为ELB分配静态IP地址.好像我不能.

在线的一些文章要求创建Route 53记录,但这需要更改域的CNAME,这也会重定向电子邮件流量.我只想更改A记录而不是CNAME.

有些文章还提到我可以使用EC2实例作为反向代理.但是,单个代理是否能够处理大量流量?

对此有何解决方案?

Bro*_*oks 46

AWS的Elastic Load Balancer实际上是弹性的,如下所述:http: //shlomoswidler.com/2009/07/elastic-in-elastic-load-balancing-elb.html

第一级是负载均衡器本身.为了确保ELB可以扩展到您拥有的任何音量并突然爆发到您突然遇到的任何音量,AWS会分配一个"静态"DNS主机名(例如MyDomainELB-918273645.us-east-1.elb.amazonaws.com).该主机名指向多个IP地址.您可以通过运行来查看(从命令行)

$ host MyDomainELB-918273645.us-east-1.elb.amazonaws.com
MyDomainELB-918273645.us-east-1.elb.amazonaws.com 172.31.7.2
MyDomainELB-918273645.us-east-1.elb.amazonaws.com 172.31.11.33
Run Code Online (Sandbox Code Playgroud)

ELB中的第二种弹性形式显然是ELB将查询引导到池中的一个EC2实例.

因此,您可以看到尝试为负载均衡器分配静态IP地址将会弄巧成拙.

使用EC2实例作为反向代理似乎也会弄巧成拙,因为您甚至在进入ELB之前就会产生瓶颈.不妨创建自己的负载均衡器.

推荐的解决方案(您已经指出)是创建一个指向ELB主机名的CNAME(不会更改).

即my-app.mycompany.com - > MyDomainELB-918273645.us-east-1.elb.amazonaws.com

这将允许您在域中的ELB后面集成您的可伸缩应用程序.

我不确定我完全理解为什么你不能在你的DNS中创建CNAME或者与指导电子邮件流量有什么关系,你能解释一下吗?

  • 此外,如果我没有弄错,MX记录用于电子邮件路由.您是否无法使用MX记录完全独立于您的域指向的位置来定向电子邮件?例如,我的域名已停放,因此根域实际上并没有带您到任何地方,但我有多个CNAME和我的MX记录,然后指向一个完全独立的第三方电子邮件托管服务提供商(Zoho).同样,我不是DNS专家,但我觉得这是一个容易解决的问题...... (7认同)
  • CNAME仅适用于子域.主域名怎么样?如何将example.com指向负载均衡器? (5认同)
  • 好吧,我不是DNS大师,但如果我没弄错的话,来自www.example.com的'www'是CNAME,所以你可以简单地将'www'指向ELB.如果1and1允许使用小型虚拟主机软件包,则可以编写一个简单的html页面,将访问者从http://example.com转发到http://www.example.com,从而将其发送到您的ELB. (5认同)
  • 你不能简单地添加CNAME吗?你只获得1个CNAME?这不是为什么它被称为1and1,是吗? (4认同)
  • 您还可以使用类型为“别名”的A记录来指向一个弯头。这适用于example.com和subdomain.example.com。对于那些好奇的人,可以在NLB上使用静态IP。它对于不对每个查询进行dns查找但仅在启动或首次使用时进行dns查找的服务或对nginx代理之类的服务(一旦连接断开,就不会重新检查ip)仅有用。 (2认同)

小智 10

AWS中的一项新功能(我相信它在Re:Invent 2017中宣布)允许使用网络负载均衡器(NLB)的静态IP.NLB只能处理第4层(TCP)而不能处理HTTP细节(第7层).

您可以为每个可用区分配一个弹性IP地址.

有关详细信息,请参阅AWS博客文章NLB文档.

"Classic Load Balancer"和"Application Load Balancer"不支持静态IP.如果您需要仅由这些功能提供的功能,则必须回退到上述CNAME解决方案.


Adi*_*tya 9

AWS支持最近发布了一个博客,利用NLB为Classic和Application负载均衡器提供静态IP - https://aws.amazon.com/blogs/networking-and-content-delivery/using-static-ip-地址换应用负载平衡器/

该帖子描述的解决方案摘要

我们最终在NLB上使用TCP侦听器接受流量并将其转发到内部ALB.ALB终止TLS,检查HTTP标头,并根据您配置的规则将请求路由到具有您的实例,服务器或容器的目标组.AWS Lambda函数通过观察ALB的IP地址更改和更新NLB目标组来使所有内容保持同步.最后,我们将有一些易于白名单的静态IP地址,我们不会失去ALB的任何好处.请注意,我们将通过两个负载均衡器发送所有流量


C R*_*lph 7

我发现设置 AWS Global Accelerator 非常简单直接。它创建了 2 个静态 IP 地址和一个指向我的应用程序负载均衡器的静态 DNS。

配置全局加速器

  1. 将侦听器设置为 TCP 端口 80、443

  2. 选择您的负载均衡器终端节点(AWS Global Accelerator Configuration

  3. 为您的 dns 添加 cname 记录,指向它创建的静态 dns(mywebsite.com > globalacceleratorDNS.com)。如果任何客户端需要列入白名单,请给他们它创建的 2 个静态 IP

定价为每月 18 美元 + 每 GB 数据传输几美分。我很确定它比 NLB、Nat 网关、弹性 IP 设置便宜。

https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html