为了快速开始部署标准 .NET Web 应用程序,Elastic Beanstalk是适合您的服务。
AWS CloudFormation 为开发人员和系统管理员提供了一种简单的方法来创建和管理相关 AWS 资源的集合,以有序且可预测的方式预置和更新它们。
CloudFormation (CFn) 是对现有 AWS API 的轻量级低级抽象。使用静态 JSON/YAML模板文档,您声明一组与 AWS API 上的 CRUD 操作相对应的资源(例如EC2 实例或S3 存储桶)。
当您创建 CloudFormation 堆栈时,CloudFormation 会调用相应的 API 来创建关联的资源,而当您删除堆栈时,CloudFormation 会调用相应的 API 来删除它们。支持大多数(但不是全部)AWS API。
AWS Elastic Beanstalk 是一种易于使用的服务,用于在 Apache、Nginx、Passenger 等熟悉的服务器上部署和扩展使用Java、.NET、PHP、Node.js、Python、Ruby、Go和Docker开发的 Web 应用程序和服务和 IIS。
您只需上传代码,Elastic Beanstalk 就会自动处理部署,从容量配置、负载平衡、自动扩展到应用程序运行状况监控。
Elastic Beanstalk (EB) 是一种更高级别的托管“平台即服务”(PaaS),用于托管 Web 应用程序,其范围类似于Heroku。EB 不是直接处理低级 AWS 资源,而是提供了一个完全托管的平台,您可以在其中使用Web 界面创建应用程序环境,选择您的应用程序使用的平台,创建和上传源包,其余的由 EB 处理。
使用 EB,您可以获得用于监控应用程序环境和部署新版本应用程序的各种内置功能。
在后台,EB 使用 CloudFormation 创建和管理应用程序的各种 AWS 资源。您可以通过将CloudFormation 资源添加到与您的应用程序一起部署的EB 配置文件来自定义和扩展默认 EB 环境。
结论
如果您的应用程序是使用 Elastic Beanstalk 支持的平台之一的标准 Web 层应用程序,并且您希望为您的应用程序提供易于管理、高度可扩展的托管,请使用 Elastic Beanstalk。
如果你:
- 想要直接管理您应用程序的所有 AWS 资源;
- 想要管理或大量定制您的实例供应或部署过程;
- 需要使用 Elastic Beanstalk 不支持的应用平台;或者
- 只是不想要/不需要任何更高级别的 Elastic Beanstalk 功能
然后直接使用 CloudFormation,避免添加 Elastic Beanstalk 的配置层。