Amazon EC2 和 AWS Elastic Beanstalk 之间的区别

Posted

技术标签:

【中文标题】Amazon EC2 和 AWS Elastic Beanstalk 之间的区别【英文标题】:Difference between Amazon EC2 and AWS Elastic Beanstalk 【发布时间】:2014-11-15 08:43:12 【问题描述】:

谁能解释一下 EC2 和 Beanstalk 之间的区别。我想了解 SaaS、PaaS 和 IaaS。

要在 Wordpress 中部署 Web 应用程序,我需要一个可扩展的托管服务。如果有什么比我的目的更好,也请告诉我。

仅供参考 - 我想托管和部署多个 Wordpress 和 Drupal 网站。

我不想给服务器更多的时间和专注于开发。但云托管需要自动扩展。

【问题讨论】:

我不明白这是一个基于意见的问题。 EC2 和 ELB 之间存在明显的差异。它们一定是为了填补不同的利基而设计的,否则为什么 AWS 会同时拥有它们?我认为这个网站上有一个地方可以比较和对比这两种技术。这不应该被关闭。 “EC2 和 Elastic Beanstalk 有什么区别”绝对不是基于选项的问题或答案。 运行堆栈交换的机器人需要升级。这不是可口可乐或百事可乐的意见问题。 @Ahmmad Ismail 我想一个更好的标题可能会有所帮助,例如“EC2 和 EB 之间的差异”而不是“EC2 与 EB”。无论如何,要求两种解决方案之间的差异显然不是“意见偏见”。 @Balmipour 很好的建议。而且显然不是基于意见的。 【参考方案1】:

首先,EC2 and Elastic Compute Cloud 是一回事。

接下来,AWS 包含一系列 Web 服务,其中包括 EC2 和 Elastic Beanstalk。它还包括许多其他内容,例如 S3、RDS、DynamoDB 和所有 the others。

EC2

EC2 是 Amazon 的服务,它允许您在 AWS 云中创建一个服务器(AWS 将这些 实例称为)。您按小时付费,并且只支付您使用的费用。你可以对这个实例做任何你想做的事情,也可以启动 n 个实例。

弹力豆茎

Elastic Beanstalk 是 EC2 层之外的抽象层。 Elastic Beanstalk 将为您设置一个“环境”,其中可以包含许多 EC2 实例、一个可选数据库以及一些其他 AWS 组件,例如 Elastic Load Balancer、Auto-Scaling Group、Security Group。然后,只要您想更新在 AWS 中运行的软件,Elastic Beanstalk 就会为您管理这些项目。 Elastic Beanstalk 不会在它为您创建的这些资源之上增加任何成本。如果您有 10 小时的 EC2 使用时间,那么您只需支付 10 小时的计算时间。

运行 Wordpress

对于运行 Wordpress,它是您最舒服的方式。您可以直接在单个 EC2 实例上运行它,也可以使用来自 AWS Marketplace 的解决方案,也可以使用 Elastic Beanstalk。

选什么?

如果您想减少系统操作并只关注网站,那么 Elastic Beanstalk 将是最佳选择。 Elastic Beanstalk 支持 php 堆栈(以及其他堆栈)。您可以将您的站点保持在版本控制中,并在您进行更改时轻松部署到您的环境中。它还将设置一个 Autoscaling 组,如果流量增长,该组可以生成更多 EC2 实例。

这是 Google 搜索“elastic beanstalk wordpress”时的第一个结果:https://www.otreva.com/blog/deploying-wordpress-amazon-web-services-aws-ec2-rds-via-elasticbeanstalk/

【讨论】:

澄清一下,你的意思是你想把更多的时间花在开发上,而不是配置服务器之类的东西上? 如今,公司构建其应用程序的 Docker 映像并将其部署到在 EC2 实例池上运行的容器管理工具(Kubernetes、Mesos、Docker Swarm)是一种常见的模式。 EC2 Container Service 是 Amazon 用于运行您自己的 Mesos 集群的托管替代品。如果您正在运行多个应用程序,这是一个很好的解决方案,并且可以简化管理和计费。如果您正在运行单个应用程序,除非您只是喜欢 Dockerized 模型,否则 Beanstalk 是更好的选择。 @JoshDavis 为了澄清您在“Elastic Beanstalk 不会在它为您创建的这些资源之上增加任何成本”的观点,我想引用这个“事实上,您不是Beanstalk 本身收费——您需要为您使用的 AWS 资源付费,例如 S3、SNS 和 EC2。”来自serverfault.com/a/401465/41015 当亚马逊自己无法清楚地解释自己的产品时,这很可悲。但这是真的,他们不能。 @Ephra 伙计,他们离开 EC2 是因为不是每个人都想要预配置的服务器,一些企业更喜欢自己配置服务器,原因是安全、自动化等原因。【参考方案2】:

Amazon EC2 允许您在 AWS 云中创建称为 EC2 实例的服务器。并按小时付费,并允许创建尽可能多的实例。

而弹力豆茎

Elastic Beanstalk 是 EC2 层之外的抽象层。 Elastic Beanstalk 将为您设置一个“环境”,其中可以包含多个 EC2 实例、一个可选数据库以及一些其他 AWS 组件,例如 Elastic Load Balancer、Auto-Scaling Group、Security Group。然后,只要您想更新在 AWS 中运行的软件,Elastic Beanstalk 就会为您管理这些项目。 Elastic Beanstalk 不会在它为您创建的这些资源之上增加任何成本。如果您有 10 小时的 EC2 使用时间,那么您只需支付 10 小时的计算时间。

【讨论】:

【参考方案3】:

对于高级概述,EC2 是一种 IaaS 计算服务;这意味着计算资源通常由配置它们的云工程师管理

虽然 Elastic Beanstalk 是一种 PaaS,但您不必过多关注资源管理。您只需指定您想要的内容,aws 通过自动化处理任务。例如配置 LAMP 堆栈

【讨论】:

EC2 不是基础设施即代码。它是“按需计算基础设施”,可以由 IaC 预置(如 Terraform),但也可以手动创建(如通过 AWS Web 界面) 哦,应该是我的键盘改变了我的话。我的意思是 iaas 基础设施即服务

以上是关于Amazon EC2 和 AWS Elastic Beanstalk 之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

如何构建只有一个 EC2 实例的 CloudFormation 和 Elastic Beanstalk 解决方案?

AWS EC2 和 Elastic Beanstalk

Amazon AWS EC2存储

在 Amazon Elastic Beanstalk(Apache、EC2)上安装 Mod_security

Amazon RDS 和 Elastic Beanstalk 连接

在 Amazon Elastic Compute Cloud (Amazon EC2) 上托管 twitter 流 api 的优缺点是啥