为了快速开始部署标准.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)是用于托管Web应用程序的更高级别的托管“平台即服务”(PaaS),范围类似于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的配置层。