AWS Elastic Beanstalk
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

Web 服务器环境

下图演示了一个 Web 服务器环境层的示例 Elastic Beanstalk 架构,并显示了这种环境层中各个组件协同工作的方式。本部分其余内容更为详细地讨论了所有组件。


      AWS Elastic Beanstalk 架构图

环境是应用程序的核心。在图中,蓝色实线勾画的是环境。当您创建环境时,Elastic Beanstalk 会预配置所需资源,以运行您的应用程序。为环境创建的 AWS 资源包括一个弹性负载均衡器 (图中的 ELB)、一个 Auto Scaling 组和一或更多个 Amazon EC2 实例。

每个环境有一个指向负载均衡器的别名记录(URL)。该环境有一个 URL,例如 myapp.us-west-2.elasticbeanstalk.com.通过使用别名记录,此 URL 在 Amazon Route 53 中的别名为 Elastic Load Balancing URL(例如 abcdef-123456.us-west-2.elb.amazonaws.com.cn)。Amazon Route 53 是一种可用性高、可扩展性强的域名系统 (DNS) Web 服务。它可以向您的基础设施提供安全可靠的路由。您通过 DNS 提供商注册的域名会将请求转发到别名记录。负载均衡器位于 Amazon EC2 实例的前面,后者是 Auto Scaling 组的一部分。(图中用黑色虚线勾画出了 Auto Scaling 组。)Amazon EC2 Auto Scaling 可自动启动其他 Amazon EC2 实例,以适应应用程序上的负载增加。如果应用程序上的负载减小,Amazon EC2 Auto Scaling 会终止实例,但始终会至少保留一个正在运行的实例。

在 Amazon EC2 实例上运行的软件栈取决于容器类型。容器类型定义的是将在该环境中使用的基础设施拓扑和软件栈。例如,包含 Apache Tomcat 容器的 Elastic Beanstalk 环境使用 Amazon Linux 操作系统、Apache Web 服务器和 Apache Tomcat 软件。有关所支持的容器类型的列表,请参阅 Elastic Beanstalk 支持的平台。每个运行应用程序的 Amazon EC2 服务器实例都使用这些容器类型之一。此外,名为主机管理器 (HM) 的软件组件会在每个 Amazon EC2 服务器实例上运行。(在图中,HM 是每个 EC2 实例中的橙色圆。) 主机管理器负责:

  • 部署应用程序

  • 汇总事件和指标,以通过控制台、API 或命令行进行检索

  • 生成实例级事件

  • 监控应用程序日志文件中是否有关键错误

  • 监控应用程序服务器

  • 修补实例组件

  • 交替您的应用程序日志文件,并将它们发布到 Amazon S3

主机管理器会报告通过 AWS 管理控制台、API 和 CLI 提供的指标、错误、事和服务器实例状态。

图中显示的 Amazon EC2 实例是一个安全组的一部分。安全组定义实例的防火墙规则。默认情况下,Elastic Beanstalk 定义一个安全组,该安全组允许每个人都可以使用端口 80 (HTTP) 进行连接。您可以定义一个以上的安全组。例如,您可以为您的数据库服务器定义一个安全组。有关 Amazon EC2 安全组及如何为您的 Elastic Beanstalk 应用程序配置 Amazon EC2 安全组的详细信息,请参阅 安全组