本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Elastic Beanstalk Web 服务器环境
下图显示了一个 Web 服务器环境层的示例 Elastic Beanstalk 架构,并显示了这种环境层中各个组件协同工作的方式。
环境是应用程序的核心。在图中,环境显示在顶层实线内。当您创建环境时,Elastic Beanstalk 会预置运行应用程序所需的资源。为环境创建的Amazon资源包括一个 Elastic Load Balancer(图中的 ELB)、一个 Auto Scaling 组和一个或多个 Amazon Elastic Compute Cloud (Amazon EC2) 实例。
每个环境有一个指向负载均衡器的别名记录(URL)。该环境有一个 URL,例如 myapp.us-west-2.elasticbeanstalk.com
。通过使用别名记录,此 URL 在 Amazon Route 53abcdef-123456.us-west-2.elb.amazonaws.com
)。Amazon Route 53
负载均衡器位于 Amazon EC2 实例的前面,后者是 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 实例上运行。主机管理器负责以下内容:
-
部署应用程序
-
汇总事件和指标,以通过控制台、API 或命令行进行检索
-
生成实例级事件
-
监控应用程序日志文件中是否有关键错误
-
监控应用程序服务器
-
修补实例组件
-
交替您的应用程序日志文件,并将它们发布到 Amazon S3
主机管理器报告指标、错误、事件和服务器实例状态,它们是通过 Elastic Beanstalk 控制台、API 和 CLI 获取的。
图中显示的 Amazon EC2 实例是一个安全组 的一部分。安全组定义实例的防火墙规则。默认情况下,Elastic Beanstalk 定义一个安全组,该安全组允许每个人都可以使用端口 80 (HTTP) 进行连接。您可以定义一个以上的安全组。例如,您可以为您的数据库服务器定义一个安全组。有关 Amazon EC2 安全组及如何为您的 Elastic Beanstalk 应用程序配置这些安全组的更多信息,请参阅安全组。