我使用 AWS-CodeStar 创建了 ElasticBeanstalk Web 服务器(EC2、带有 SpringBoot 的 Java8 Tomcat)。
默认情况下,Beanstalk 环境被创建为单个实例(未负载平衡),并且从环境创建开始,Beanstalk 控制台中就会显示一个工作链接:
形式为:
receptionapp.<>.us-west-1.elasticbeanstalk.com
此链接可公开访问,并在从 Chrome 浏览器调用时成功从服务器返回 hello world 响应:
{"Output":"Hello World!"}
现在 Beanstalk 文档指出:
默认情况下,您的环境可供位于 elasticbeanstalk.com 子域的用户使用。创建环境时,您可以为应用程序选择主机名。子域和域将自动填充到region.elasticbeanstalk.com。 为了将用户路由到您的环境,Elastic Beanstalk 注册指向您环境的负载均衡器的 CNAME 记录。您可以在 Elastic Beanstalk 控制台的环境概述页面中查看环境应用程序的 URL 以及 CNAME 的当前值。 -- https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html
“Elastic Beanstalk 注册了一条指向您环境的负载均衡器的 CNAME 记录”——起初没有负载均衡器,假设我没记错的话,该链接可以正常工作。此后,我通过将 Beanstalk 配置切换为负载平衡来添加负载平衡器。
小问题:链接到底指向什么?直接到EC2实例?
主要问题:我在哪里可以找到这个链接实际上在做什么?我查看了 Route53 和 EC2 LoadBalancers,还在命令行
eb config
中进行了查看,似乎没有提及此域名 receptionapp.<>.us-west-1.elasticbeanstalk.com
链接或它指向的位置。 (现在我什至不知道它是否指向Beanstalk作为配置更改添加的LoadBalancer)
该链接到底指向什么?直接到EC2实例?
至您的 EB 实例的弹性 IP 地址。如果您没有负载均衡器,EB 将使用 EIP 为您的单实例 EB 环境提供静态公共 IP 地址。您可以在 EC2 控制台左侧的“弹性 IP”菜单选项下找到此 EIP。
您可以在 Linux 上使用
drill
或 dig
命令来检查您的 EB 域指向的位置。从例子来看,来自drill
:
;; ANSWER SECTION:
xxxxxx.eba-2wppwtse.us-east-1.elasticbeanstalk.com. 60 IN A 111.111.111.111
其中
111.111.111.111
是您的 EIP 的 IP。