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