对于.NET 项目来说,ElasticBean}和 CloudForment 有什么不同?

我开发了一个。NET MVC 应用程序,并且已经开始使用 AWS 并通过 VisualStudio 工具包部署它。我已经成功地使用工具箱中的 Elastic Bean}选项部署了应用程序。

当我在复习关于部署的教程时。NET 应用程序到 AWS 的工具箱,我注意到有教程部署与 弹性豆茎和云的形成。这两者有什么区别?

据我所知,它们似乎在本质上都在做同样的事情——使应用程序更容易部署到 AWS 云(设置 EC2实例、负载平衡器、自动伸缩等)。我试着把它们都读了一遍,但除了一大堆对我来说听起来一模一样的流行语,我似乎什么也没读到。我甚至在 AWS 网站上找到了一个 常见问题来回答这个问题,但是我真的不明白。

我应该用其中一个还是另一个? 两个都用?

86115 次浏览

他们其实很不一样。弹性豆茎旨在使开发人员的生活更轻松。CloudForment 旨在让系统工程师的生活变得更加轻松。

Elastic Bean}是 AWS IaaS 服务之上的一个类 PaaS 层,它抽象出了底层的 EC2实例、弹性负载平衡器、自动伸缩组等。这使得那些不想处理所有系统事务的开发人员更容易在 AWS 上快速部署他们的应用程序。它非常类似于其他 PaaS 产品,如 Heroku、 EngineYard、 Google App Engine 等。使用弹性豆茎,您不需要理解任何底层的魔法是如何工作的。

另一方面,CloudForm 不会自动执行任何操作。它只是一种在巨大的 JSON/YAML 文件中定义部署所需的所有资源的方法。因此,CloudForm 模板实际上可以创建两个 Elastic Bean}环境(生产环境和登台环境)、两个 ElasticCache 集群、一个 DynamoDB 表,然后在 Route53中创建适当的 DNS。然后我将这个模板上传到 AWS,离开,45分钟后一切都准备就绪并等待着。因为它只是一个纯文本的 JSON/YAML 文件,所以我可以将它放在源代码控制中,这为应用程序部署的版本控制提供了很好的方法。它还确保我有一个可重复的、“已知的良好”配置,我可以快速部署在不同的区域。

云形成是一个允许您部署 AWS 服务的服务。您将创建一个模板文件,该文件描述所需的服务。当您部署该模板时,CloudForm 将为您创建作为“包”的资源。您在模板中定义的所有资源将一起启动和终止。可以使用 Cloud Forms 创建的资源类型的示例有: S3、 EC2实例、 AutoScaling、 DynamoDb 等。对于 EC2,Cloud Form 还提供了使用“ cfn-init”脚本的能力; 这些脚本可以与模板结合使用,以引导您的实例。

弹性豆茎使用云形成模板和参数: 1。创建一个负载均衡器和自动缩放组,2。把你的代码复制到 S3,3。引导 Ec2实例从 S3下载代码并部署它。

Cloud Form 不像 EB 那样容易使用,但是它更强大,因为您可以创建 EC2实例以外的资源,控制 cfn-init 脚本的方式,等等。

还有其他值得注意的差异。弹性豆茎被设计为一个单一的应用程序的容器。我有一套几个网站和服务,但发现很难部署多个网站与豆茎,并建议,经过几次尝试,由 AWS 帮助使用云形成在这种情况下,因为它有额外的灵活性。 有一篇非常有用的文章介绍了如何引导 AWS 云的形成并更新正在运行的站点 给你,这篇文章比 AWS 页面要清楚得多。我们还在试图弄清楚是否可以直接从 VS 部署到存储在 S3上的云形成模板,然后让它自动更新,就像豆茎一样..。

对于快速开始部署标准的.NET Web 应用程序,弹性豆茎是最适合您的服务。

App Services Comparison Graphic

AWS CloudForm : “模板驱动的配置”

AWS CloudForm 为开发人员和系统管理员提供了一种简单的方法来创建和管理相关的 AWS 资源集合,以有序和可预测的方式提供和更新这些资源。

CloudForm (CFn)是对现有 AWS API 的轻量级、低级抽象。使用静态 JSON/YAML 模板文档,可以声明一组 资源(如 EC2实例S3桶) ,它们对应于 AWS API 上的 CRUD 操作。

当您创建一个 CloudForm 堆栈时,CloudForm 调用相应的 API 来创建相关的参考资料,当您删除一个堆栈时,CloudForm 调用相应的 API 来删除它们。支持 大多数(但不是全部) AWS API

AWS Elastic Bean} : “ Web Apps Made Easy”

AWS Elastic Beanstalk 是一个易于使用的服务,用于在熟悉的服务器上部署和缩放使用 爪哇咖啡.NETPHPNode.js巨蟒露比去吧多克开发的 web 应用程序和服务,例如 Apache、 Nginx、 customer 和 IIS。

您可以简单地上传代码,Elastic Bean}自动处理部署,从容量供应、负载平衡、自动伸缩到应用程序健康监视。

弹性豆茎(EB)是一个更高级的、管理的“平台即服务”(PaaS) ,用于托管 Web 应用程序,范围类似于 你好。EB 没有直接处理低级别的 AWS 资源,而是提供了一个完全管理的平台,在这个平台中,您可以使用 网页界面来处理 创建应用程序环境,选择您的应用程序使用的 平台,创建并上传 源束源束源束源束,然后由 EB 来处理其余的事情。

使用 EB,您可以获得 监视您的应用程序环境部署应用程序的新版本的各种内置特性。

在底层,EB 使用 CloudForm 来创建和管理应用程序的各种 AWS 资源。通过将 形成云资源添加到与应用程序一起部署的 EB 配置文件,可以自定义和扩展默认的 EB 环境。

结论

如果您的应用程序是一个标准的 Web 层应用程序,使用的是 Elastic Beanstalk 支持的平台之一,并且您希望为您的应用程序提供易于管理、高度可伸缩的宿主 使用弹性豆茎

如果你:

  • 希望直接管理应用程序的所有 AWS 资源;
  • 希望管理或大量定制您的实例供应或部署过程;
  • 需要使用不受 ElasticBean}支持的应用程序平台; 或者
  • 只是不想/不需要任何更高级别的 Elastic Bean 特性

然后 直接使用云形成和避免增加的配置层的弹性豆茎。

根据你上传的代码,Elastic Bean}自动处理部署,从容量供应、负载平衡、自动伸缩到应用程序健康监控,而 CloudForm 是一个自动供应引擎,旨在通过一个 JSON 脚本部署整个云环境。

这些服务旨在相互补充。AWS Elastic Beanstalk 提供了一个在云中轻松部署和运行应用程序的环境。它与开发人员工具集成在一起,为您管理应用程序的生命周期提供了一站式体验。AWS CloudForm 是用于广泛的 AWS 和第三方资源的一种方便的供应机制。它支持许多不同类型应用程序的基础设施需求,例如现有的企业应用程序、遗留应用程序、使用各种 AWS 资源构建的应用程序和基于容器的解决方案(包括使用 AWS Elastic Bean}构建的应用程序)。

作为 AWS 资源类型之一,AWS CloudForm 支持弹性 Bean}应用程序环境。例如,这允许您创建和管理 AWS Elastic Bean}托管的应用程序以及用于存储应用程序数据的 RDS 数据库。除了 RDS 实例之外,还可以将任何其他受支持的 AWS 资源添加到组中。

Bean} : 使开发人员能够只管理代码而不管理系统

云的形成: 简化和使系统工程师的一切更容易

如果开发人员或开发团队正在寻找一个快速的 MVP 测试,最好的选择是使用 Bean}快速部署并进行检查。

当 AWS 迁移发生时,系统工程师将参与到供应中来,Cloud Form 将提供很多帮助,并提供更细粒度的控制。

两者都用于提供基础设施; 但它们的方法不同。

豆茎: 起点是代码。我有一个 NodeJs 代码,我想上传和运行它; 请为我提供基础设施。平台即服务(PaaS)

CloudForm: 起点是基础设施。请创建一个 EC2实例,包含一个 LoadBalancer、 SecurityGroup 等,这样我就可以将我的 NodeJs 代码上传到它。代码式基础设施(IaC)。

Beanstack 内部使用 云的形成

基本上对软件开发人员有帮助。

示例 : 您希望快速启动 PC 并运行应用程序。你不会单独购买电脑产品(硬盘、内存、处理器)。你购买了一个完整的 CPU 或者一台需要配置的笔记本电脑。您不关心它在内部如何运行,因为您希望您的应用程序为您运行。豆茎为您提供了这个特性,使您可以毫无后顾之忧地完成所有准备工作。

Cloudform -对系统工程师/硬件基本上是有帮助的。

示例 : 你想组装100台 PC 然后交给开发者,而不是组装这么多的 PC,你只需给出一个项目列表,然后由零售商为你组装 PC。 类似地,创建一个模板并将其发送到云形成,它将毫不费力地完成您的工作。