我有许多 EC2 实例,每个实例当前都有一个与之关联的公共 IPv4 地址:
实例 | 公共 IP | DNS |
---|---|---|
juno |
7.8.9.10 |
ec2-1-2-3-4.compute-1.amazonaws.com |
ceres |
7.8.9.11 |
ec2-1-2-3-5.compute-1.amazonaws.com |
venus |
7.8.9.12 |
ec2-1-2-3-6.compute-1.amazonaws.com |
我目前已将 DNS 配置为将子域指向每个实例,如下所示:
子域名 | 别名记录 |
---|---|
juno |
ec2-1-2-3-4.compute-1.amazonaws.com |
ceres |
ec2-1-2-3-5.compute-1.amazonaws.com |
venus |
ec2-1-2-3-6.compute-1.amazonaws.com |
到目前为止一切顺利。此设置有效。但是,它的缺点是每个实例都需要一个公共 IPv4 地址,众所周知,IPv4 地址正变得越来越稀缺并且使用成本越来越高。
减少此服务器集群所消耗的 IPv4 地址数量的最佳方法是什么?
答案1
反向代理(例如 ALB)效果会很好。它可能每个可用区都有一个公共 IP,但它可以接受许多域的流量并将其发送到正确的实例。您也可以使用 Nginx 实例,但服务通常比服务器更受青睐。
我在 AWS 上托管了六个个人域名,没有 IPv4 地址。我的 EC2 实例有 IPv6 地址,域名的 DNS 指向 CloudFlare。CloudFlare 通过 IPv6 联系服务器,并通过 IPv4 提供网站。我没有遇到任何问题,只是对 Nginx 配置进行了一些实验,使其正常工作。我不会为个人网站使用负载均衡器,但对于商业网站,我可能会使用。