使用 Elastic Beanstalk 创建示例应用程序 - AWS Elastic Beanstalk

使用 Elastic Beanstalk 创建示例应用程序

在此步骤中,您将从先前存在的示例应用程序开始创建新应用程序。Elastic Beanstalk 支持针对不同的编程语言、应用程序服务器以及 Docker 容器的平台。您在创建应用程序时选择一个平台。

创建应用程序和环境

要创建您的示例应用程序,您将使用 Create application(创建应用程序)控制台向导。它创建 Elastic Beanstalk 应用程序并在其中启动一个环境。环境是运行应用程序代码所需的AWS资源的集合。

注意

2024 年 10 月 1 日之后创建的 AWS 账户将暂时需要设置选项才能成功创建新环境。与新账户一样,但仅限于账户尚没有环境的区域,现有账户需要采取相同的操作。有关更多信息,请参阅 启动模板

创建示例应用程序
  1. 打开 Elastic Beanstalk 控制台

  2. 选择创建应用程序

  3. 对于 Application name(应用程序名称),输入 getting-started-app

  4. (可选)添加应用程序标签

  5. 对于 Platform(平台),选择一个平台。

  6. 选择下一步

  7. 这时将显示配置服务访问权限页面。

  8. 对于服务角色,请选择使用现有的服务角色

  9. 下面我们将重点介绍 EC2 实例配置文件下拉列表。此下拉列表中显示的值可能因您的账户之前是否创建过新环境而异。

    根据列表中显示的值,选择以下选项中的一个。

    • 如果在下拉列表中显示有 aws-elasticbeanstalk-ec2-role,请从 EC2 实例配置文件下拉列表中将其选中。

    • 如果列表中显示的是其他值,并且这是您环境的默认 EC2 实例配置文件,请从 EC2 实例配置文件下拉列表中选中该值。

    • 如果 EC2 实例配置文件下拉列表未显示任何可供选择的值,请按下面为 EC2 实例配置文件创建 IAM 角色的过程操作。

      完成为 EC2 实例配置文件创建 IAM 角色中的步骤,以创建一个之后为 EC2 实例配置文件选择的 IAM 角色。然后返回此步骤。

      现在您已创建了一个 IAM 角色并刷新了列表,该角色将在下拉列表中显示为一个选项。从 EC2 实例配置文件下拉列表中选中您刚刚创建的 IAM 角色。

  10. Configure service access(配置服务访问)页面上选择 Skip to Review(跳至审核)。

    这将跳过可选步骤。

  11. Review(审核)页面将显示所有选择的摘要。

    在页面底部选择 Submit(提交)。

配置服务访问
创建用于 EC2 实例配置文件选择的 IAM 角色
  1. 选择查看权限详细信息。这将在 EC2 实例配置文件下拉列表下显示。

    这时会显示一个名为查看实例配置文件权限的模态窗口。此窗口将列出您需要附加到所创建的新 EC2 实例配置文件的托管式配置文件。此外还提供了一个用于启动 IAM 控制台的链接。

  2. 选择窗口顶部显示的 IAM 控制台链接。

  3. 请在 IAM 控制台的导航窗格中,选择 Roles(角色)。

  4. 选择 Create role(创建角色)。

  5. 可信实体类型下,选择 AWS 服务

  6. Use case(使用案例)下,选择 EC2

  7. 选择下一步

  8. 附加适当的托管式策略。滚动查看实例配置文件权限模式窗口,以查看托管式策略。这些策略还将在此处列出:

    • AWSElasticBeanstalkWebTier

    • AWSElasticBeanstalkWorkerTier

    • AWSElasticBeanstalkMulticontainerDocker

  9. 选择下一步

  10. 输入角色的名称。

  11. (可选)将标签添加到角色。

  12. 选择 Create role(创建角色)。

  13. 返回已打开的 Elastic Beanstalk 控制台窗口。

  14. 关闭查看实例配置文件权限模态窗口。

    重要

    不要关闭显示 Elastic Beanstalk 控制台的浏览器页面。

  15. 选择 EC2 实例配置文件下拉列表旁边的 refresh icon (刷新)。

    这将刷新下拉列表,以确保您刚刚创建的角色会在下拉列表中显示。

Elastic Beanstalk 工作流

为了对 AWS 资源部署和运行示例应用程序,Elastic Beanstalk 将执行以下操作。这些操作需要约 5 分钟的时间完成。

  1. 创建一个名为 getting-started-app 的 Elastic Beanstalk 应用程序。

  2. 使用这些 AWS 资源启动名为 GettingStartedApp-env 的环境:

    • Amazon Elastic Compute Cloud (Amazon EC2) 实例(虚拟机)

    • Amazon EC2 安全组

    • 一个 Amazon Simple Storage Service (Amazon S3) 存储桶

    • Amazon CloudWatch 警报

    • AWS CloudFormation 堆栈

    • 域名

    有关这些AWS资源的详细信息,请参阅为示例应用程序创建的AWS资源

  3. 创建一个名为 Sample Application 的新应用程序版本。这是默认的 Elastic Beanstalk 示例应用程序文件。

  4. 将示例应用程序的代码部署到 GettingStartedApp-env 环境。

在环境创建过程中,控制台会跟踪进度并在“事件”选项卡中显示事件状态。当所有资源启动并且运行应用程序的 EC2 实例通过运行状况检查后,环境的运行状况将变为 Ok。现在,您可以使用您的 Web 应用程序的网站。

为示例应用程序创建的AWS资源

当您创建示例应用程序时,Elastic Beanstalk 会创建以下AWS资源:

  • EC2 实例 - 配置来在您选择的平台上运行 Web 应用程序的 Amazon EC2 虚拟机。

    各平台运行一组不同的软件、配置文件和脚本以支持特定的语言版本、框架、Web 容器或其组合。大多数平台使用 Apache 或 nginx 作为在 Web 应用程序前处理 Web 流量的反向代理,向其转发请求、提供静态资产以及生成访问和错误日志。

  • 实例安全组 - 配置为允许端口 80 上的传入流量的 Amazon EC2 安全组。通过此资源,HTTP 流量可以从负载均衡器到达运行您的 Web 应用程序的 EC2 实例。默认情况下,其他端口不允许流量进入。

  • Amazon S3 存储桶 – 使用 Elastic Beanstalk 时创建的源代码、日志和其他构件的存储位置。

  • Amazon CloudWatch 警报 - 用于监控环境中的实例负载的两个 CloudWatch 警报,它们将在负载过高或过低时触发。警报触发后,您的 Auto Scaling 组会扩展或收缩以进行响应。

  • AWS CloudFormation 堆栈 – Elastic Beanstalk 使用 AWS CloudFormation 启动您环境中的资源并传播配置更改。这些资源在您可通过 AWS CloudFormation 控制台查看的模板中定义。

  • 域名 – 一个域名,它以下面的形式路由到您的 Web 应用程序:subdomain.region.elasticbeanstalk.com

    域安全

    为增强 Elastic Beanstalk 应用程序的安全性,已将 elasticbeanstalk.com 域注册到 公共后缀列表(PSL)

    如果您需要在 Elastic Beanstalk 应用程序的默认域名中设置敏感 Cookie,我们建议您使用带有前缀 __Host- 的 Cookie 来提高安全性。这种做法可以保护您的域免遭跨站点请求伪造(CSRF)攻击。要了解更多信息,请参阅 Mozilla 开发者网络中的 Set-Cookie 页面。