本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Elastic Beanstalk 部署容器
由托马斯·斯科特 (AWS) 和让-巴蒂斯特·吉洛斯 () 创作 AWS
摘要
在亚马逊网络服务 (AWS) 云上,El AWS astic Beanstalk 支持 Docker 作为可用平台,因此容器可以在创建的环境中运行。此模式展示了如何使用 Elastic Beanstalk 服务部署容器。此模式的部署将使用基于 Docker 平台的 Web 服务器环境。
要使用 Elastic Beanstalk 部署和扩展 Web 应用程序和服务,您需要上传代码,部署就会自动处理。还包括容量预调配、负载均衡、自动扩缩和应用程序运行状况监控。当你使用 Elastic Beanstalk 时,你可以完全AWS控制它代表你创建的资源。Elastic Beanstalk 不收取额外费用。您只需为用于存储和运行应用程序的AWS资源付费。
此模式包括使用 E AWS lastic Beanstalk 命令行界面 CLI (EB) 和管理控制台进行部署的说明。AWS
使用案例
Elastic Beanstalk 的使用场景包括:
部署原型环境来演示前端应用程序。(此模式以 Dockerfile 为例。)
部署API以处理对给定域的API请求。
使用 Docker-Compose 部署编排解决方案(在此模式中
docker-compose.yml
未用作实际示例)。
先决条件和限制
先决条件
AWS 账户
AWSCLI本地安装了 EB
Docker 已安装在本地机器上
限制
在免费套餐中,每个 IP 地址的 Docker 拉取限制为每 6 小时拉取 100 次。
架构
目标技术堆栈
亚马逊弹性计算云 (AmazonEC2) 实例
安全组
应用程序负载均衡器
自动扩缩组
目标架构
自动化和扩缩
AWSElastic Beanstalk 可以根据发出的请求数量自动扩展。 AWS为环境创建的资源包括一个 Application Load Balancer、一个 Auto Scaling 组和一个或多个 Amazon EC2 实例。
负载均衡器位于作为 Auto Scaling 组一部分的 Amazon EC2 实例的前面。Amazon A EC2 uto Scaling 会自动启动额外的亚马逊EC2实例,以适应应用程序不断增加的负载。如果您的应用程序的负载减少,Amazon A EC2 uto Scaling 会停止实例,但它会使至少一个实例保持运行。
自动扩缩触发器
您的 Elastic Beanstalk 环境中的 Auto Scaling 组使用 CloudWatch 两个亚马逊警报来启动扩展操作。当每个实例的平均出站网络流量在 5 分钟时间段内高于 6 MB 或低于 2 MB 时,默认触发器将扩展。要有效地使用 Amazon A EC2 uto Scaling,请配置适合您的应用程序、实例类型和服务要求的触发器。您可以根据多种统计数据进行扩展,包括延迟、磁盘 I/O、CPU利用率和请求数。有关更多信息,请参阅自动扩缩触发器。
工具
AWS 服务
AWSCommand Line Interface (AWSCLI) 是一个开源工具,可帮助您通过命令行外壳中的命令与AWS服务进行交互。
AWSEB 命令行接口 (EBCLI) 是一个命令行客户端,可用于创建、配置和管理 Elastic Beanstalk 环境。
弹性负载均衡在多个目标上分配传入的应用程序或网络流量。例如,您可以跨亚马逊弹性计算云 (AmazonEC2) 实例、容器以及一个或多个可用区中的 IP 地址分配流量。
其他服务
Docker
将软件打包成称为容器的标准化单元,其中包括库、系统工具、代码和运行时系统。
代码
此模式的代码可在 GitHub 集群示例应用程序
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
克隆远程存储库。 |
| 应用程序开发者、AWS管理员、AWS DevOps |
初始化 Elastic Beanstalk Docker 项目。 |
| 应用程序开发者、AWS管理员、AWS DevOps |
在本地测试项目。 |
| 应用程序开发者、AWS管理员、AWS DevOps |
任务 | 描述 | 所需技能 |
---|---|---|
运行部署命令 |
| 应用程序开发者、AWS管理员、AWS DevOps |
访问已部署的版本。 | 部署命令完成后,使用该 | 应用程序开发者、AWS管理员、AWS DevOps |
任务 | 描述 | 所需技能 |
---|---|---|
使用浏览器部署应用程序。 |
| 应用程序开发者、AWS管理员、AWS DevOps |
访问已部署的版本。 | 部署后,访问已部署的应用程序,然后选择URL提供的应用程序。 | 应用程序开发者、AWS管理员、AWS DevOps |
相关资源
其他信息
使用 Elastic Beanstalk 的好处
自动预调配基础设施
自动管理底层平台
自动修补和更新以支持应用程序
自动扩缩应用程序
能够自定义节点数
能够在需要时访问基础设施组件
与其他容器部署解决方案相比,易于部署