Web 服务器环境 - AWS Elastic Beanstalk

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Web 服务器环境

下图显示了一个 Web 服务器环境层的示例 Elastic Beanstalk 架构,并显示了这种环境层中各个组件协同工作的方式。


      AWS Elastic Beanstalk 架构图

环境是应用程序的核心。在图中,环境显示在顶层实线内。当您创建环境时,Elastic Beanstalk 会预配置运行应用程序所需的资源。为环境创建的AWS资源包括一个 Elastic Load Balancer(图中的 ELB)、一个 Auto Scaling 组和一或更多个 Amazon Elastic Compute Cloud (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)。Amazon Route 53 是一种可用性高、可扩展性强的域名系统 (DNS) Web 服务。它可以向您的基础设施提供安全可靠的路由。您通过 DNS 提供商注册的域名会将请求转发到别名记录。

负载均衡器位于 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 应用程序配置这些安全组的更多信息,请参阅安全组