使用 Elastic Beanstalk 创建示例应用程序
在此步骤中,您将从先前存在的示例应用程序开始创建新应用程序。Elastic Beanstalk 支持针对不同的编程语言、应用程序服务器以及 Docker 容器的平台。您在创建应用程序时选择一个平台。
创建应用程序和环境
要创建您的示例应用程序,您将使用 Create application(创建应用程序)控制台向导。它创建 Elastic Beanstalk 应用程序并在其中启动一个环境。环境是运行应用程序代码所需的AWS资源的集合。
注意
2024 年 10 月 1 日之后创建的 AWS 账户将暂时需要设置选项才能成功创建新环境。与新账户一样,但仅限于账户尚没有环境的区域,现有账户需要采取相同的操作。有关更多信息,请参阅 启动模板。
创建示例应用程序
-
选择创建应用程序。
-
对于 Application name(应用程序名称),输入
getting-started-app
。 -
(可选)添加应用程序标签。
-
对于 Platform(平台),选择一个平台。
-
选择下一步。
-
这时将显示配置服务访问权限页面。
-
对于服务角色,请选择使用现有的服务角色。
-
下面我们将重点介绍 EC2 实例配置文件下拉列表。此下拉列表中显示的值可能因您的账户之前是否创建过新环境而异。
根据列表中显示的值,选择以下选项中的一个。
-
如果在下拉列表中显示有
aws-elasticbeanstalk-ec2-role
,请从 EC2 实例配置文件下拉列表中将其选中。 -
如果列表中显示的是其他值,并且这是您环境的默认 EC2 实例配置文件,请从 EC2 实例配置文件下拉列表中选中该值。
-
如果 EC2 实例配置文件下拉列表未显示任何可供选择的值,请按下面为 EC2 实例配置文件创建 IAM 角色的过程操作。
完成为 EC2 实例配置文件创建 IAM 角色中的步骤,以创建一个之后为 EC2 实例配置文件选择的 IAM 角色。然后返回此步骤。
现在您已创建了一个 IAM 角色并刷新了列表,该角色将在下拉列表中显示为一个选项。从 EC2 实例配置文件下拉列表中选中您刚刚创建的 IAM 角色。
-
-
在 Configure service access(配置服务访问)页面上选择 Skip to Review(跳至审核)。
这将跳过可选步骤。
-
Review(审核)页面将显示所有选择的摘要。
在页面底部选择 Submit(提交)。
创建用于 EC2 实例配置文件选择的 IAM 角色
-
选择查看权限详细信息。这将在 EC2 实例配置文件下拉列表下显示。
这时会显示一个名为查看实例配置文件权限的模态窗口。此窗口将列出您需要附加到所创建的新 EC2 实例配置文件的托管式配置文件。此外还提供了一个用于启动 IAM 控制台的链接。
-
选择窗口顶部显示的 IAM 控制台链接。
-
请在 IAM 控制台的导航窗格中,选择 Roles(角色)。
-
选择 Create role(创建角色)。
-
在可信实体类型下,选择 AWS 服务。
-
在 Use case(使用案例)下,选择 EC2。
-
选择下一步。
-
附加适当的托管式策略。滚动查看实例配置文件权限模式窗口,以查看托管式策略。这些策略还将在此处列出:
-
AWSElasticBeanstalkWebTier
-
AWSElasticBeanstalkWorkerTier
-
AWSElasticBeanstalkMulticontainerDocker
-
-
选择下一步。
-
输入角色的名称。
-
(可选)将标签添加到角色。
-
选择 Create role(创建角色)。
-
返回已打开的 Elastic Beanstalk 控制台窗口。
-
关闭查看实例配置文件权限模态窗口。
重要
不要关闭显示 Elastic Beanstalk 控制台的浏览器页面。
-
选择 EC2 实例配置文件下拉列表旁边的 (刷新)。
这将刷新下拉列表,以确保您刚刚创建的角色会在下拉列表中显示。
Elastic Beanstalk 工作流
为了对 AWS 资源部署和运行示例应用程序,Elastic Beanstalk 将执行以下操作。这些操作需要约 5 分钟的时间完成。
-
创建一个名为 getting-started-app 的 Elastic Beanstalk 应用程序。
-
使用这些 AWS 资源启动名为 GettingStartedApp-env 的环境:
-
Amazon Elastic Compute Cloud (Amazon EC2) 实例(虚拟机)
-
Amazon EC2 安全组
-
一个 Amazon Simple Storage Service (Amazon S3) 存储桶
-
Amazon CloudWatch 警报
-
AWS CloudFormation 堆栈
-
域名
有关这些AWS资源的详细信息,请参阅为示例应用程序创建的AWS资源。
-
-
创建一个名为 Sample Application 的新应用程序版本。这是默认的 Elastic Beanstalk 示例应用程序文件。
-
将示例应用程序的代码部署到 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页面。