亚马逊EC2(提供Web服务)

2023-04-19 47阅读

温馨提示:这篇文章已超过456天没有更新,请注意相关的内容是否还可用!

亚马逊EC2

提供Web服务

亚马逊弹性计算云(EC2,ElasticComputeCloud)是一个让使用者可以租用云端电脑运行所需应用的系统。EC2借由提供Web服务的方式让使用者可以弹性地运行自己的Amazon机器映像档,使用者将可以在这个虚拟机器上运行任何自己想要的软件或应用程式。提供可调整的云计算能力。它旨在使开发者的网络规模计算变得更为容易。

中文名 亚马逊EC2
外文名 EC2,Elastic Compute Cloud
属于 系统
方式 提供Web服务

简介

亚马逊EC2上的简单的Web服务界面,可以让您轻松的获取和配置资源。它提供您对计算资源的完全控制,并运行于亚马逊已获实证的计算环境中。亚马逊EC2缩短了获取和启动新的服务器实例时间到数分钟,让您能够迅速调整,无论是增加还是缩减,适应您计算需求的变化。亚马逊EC2让您只需为实际使用的计算进行支付。亚马逊EC2上提供开发工具来构建隔离故障应用程序并与日常故障隔离开。亚马逊弹性云计算(AmazonElasticComputeCloud,简称AmazonEC2),是由亚马逊公司提供的Web服务,是一个让用户可以租用云端电脑运行所需应用的系统。

历史

Amazon在2006年8月25日发布EC2受限公众Beta版本。

虚拟机

EC2使用Xen虚拟化技术。每个虚拟机,又称作实例,能够运行小、大、极大三种能力的虚拟私有服务器。Amazon利用EC2ComputeUnits去分配硬件资源(一个ECU相当与一个SandyBridge级Xeon)。EC2系统提供以下的虚拟机实例类型

微型实例

默认配置了613MB的存储器,一个虚拟核心上运行两个ECU单位,免费试用一年(需信用卡收取一美金)

小型实例

默认配置了1.7GB的存储器,一个虚拟核心上运行一个ECU单位

大型实例

默认配置了7.5GB的存储器,两个虚拟核心上各运行两个ECU单位

极大实例

默认配置了15GB的存储器,四个虚拟核心上各运行两个ECU单位

操作系统

支持Windows以及Linux,所有平台使用微型(免费)实例可免费使用。

自动配置

AmazonEC2自动配置容量的功能允许用户自动调整AmazonEC2的容量。假如用户的流量达到尖峰,自动配置功能可以自动增加更多的容量至虚拟主机上以维持性能。

创建步骤

如果你已经准备好使用AmazonWeb服务(AWS),那么,至少有两种做法可以用来创建以及使用AWS。一种做法是使用AWSAPI(应用程序编程接口)调用。建议你在大多数情况下使用第二种做法,即AWS管理控制台,亚马逊的基于web的界面。

AWS管理控制台的简化流程

1)AWS注册

2)创建实例的安全组

3)启动AmazonEC2实例

4)连接AmazonEC2实例

5)添加AmazonEC2实例存储

AWS注册

进行AWS注册,单击“注册”,然后按照后续屏幕上的说明。注册时,你会收到你的AWS帐号,之后会用到。

第一次注册AWS,你会收到一个账户,所有的AWS服务都会自动生成一个帐户。包括AmazonEC2服务,S3和EBS存储服务等。虽然AWS能够免费注册,可以使用750个小时,但是,必须提供一个信用卡号,当你使用“收费”服务时,可以用来缴费。

亚马逊使用你提供的电话号码确认你的身份。你会很快收到自动电话系统的来电,系统将提示你输入收到的验证码。一旦验证码经过验证,你的帐户将被激活。

创建IAM用户

当访问AWS服务时,该服务决定了你是否有权限访问该服务资源。创建IAM用户,然后根据不同权限将用户添加到IAM组。接下来,使用一个特殊的URL访问AWS。“账户id”就是你的AWS帐户ID,没有连字符,是你注册AWS时获得的AWS帐户。

创建IAM用户,开启IAM控制台,输入注册AWS时设置的电子邮箱和密码,并按照提供的说明操作。创建IAM用户后,你就能获得凭证,使用上述特殊的URL,登录并且使用AmazonEC2。

创建安全组

安全组作为虚拟防火墙,控制着访问相关实例的允许流量。将入站和出站的规则添加到安全组中来控制流量。入站规则能够控制访问与安全组相关实例的流量,如HTTP。

出站规则控制着到达与安全组相关实例的目的地,可以发送的流量。然而,返回流量,如从主机接收到的响应,收到的流量是自动允许的。如果计划在多个区域启动实例,将需要在每区域区分别创建安全组。

创建安全组,开启AmazonEC2控制台:

为安全组选择区域

点击“创建安全组”,输入一个新安全组的名称和描述。

在入站选项卡上,创建规则,比如:

允许进入实例的HTTP流量

允许进入实例的SSH流量

两个AWS内部通信的实例,必须属于同一安全组,或者一个实例的安全组必须配置为接收同一AWS帐户的另一个安全组的流量。安全组被限定区域,因此,在每个区域需要配备适当的安全组,有计划地来运行应用程序。

启动AmazonEC2实例

可以使用AWS管理控制台启动实例。启动实例之前,你必须完成第一个步骤是“注册。”

通过访问AmazonEC2控制台,开始启动程序,选择“启动实例”。选择AmazonMachineImage(AMI)创建启动实例的模板。接下来,通过选择实例类型,为实例选择硬件配置。选择之前为实例创建的安全组,并使用之前创建的凭证,最后启动实例。

为AmazonEC2实例添加EBS卷

启动并且连接一个实例后,可以为实例添加一个EBS卷,或者添加其他存储服务的存储单元。打开AmazonEC2控制台,选择创建实例(EBS卷是敏感区域)的区域,选择实例。你可以选择卷的类型:标准的或者供应的IOPS。最后,附加卷。如果创建了一个空的卷,你需要将卷格式化才可以安装。

常见错误

亚马逊Web服务让企业相信他们拥有了自己的私有资源,但是有时候共享云系统反咬一口虔诚的企业。在亚马逊Web服务EC2实例中会看到一个错误RequestLimitExceeded,这也是反咬企业的错误之一。

如果你进行了过多的AWS调用,你的调用就会出现RequestLimitExceeded错误。然而,AWS并没有明确多少调用算“过多”,很可能是因为这是一个复杂的且未公开的算法,AWS也有待进一步开发。但是这意味着没办法预测什么时候这个错误会发生。

解决方法

首先将AWS作为有约束的资源考虑,而且往返周期昂贵。正如你无法一次按字节阅读一个文件,不要在一个小的组块中询问AWS。

如果你希望了解正在运行的每一个实例,可以对每一个实例运行一个单独的AWS调用,或者使用灵活的API来针对AWSEC2实例列表的信息进行单独请求。第一种方法更有可能导致问题。

第二种选择是考虑你多久需要更新一下请求的AWS数据。假定你正在收集实例数据来进行手动扩展决定。频繁更新数据增加了精准度,知道你收到了请求拒绝提示,而且不得不以指数方式退下。要平衡你所请求的数据频率。

然而,在做了这些时候,所有的AWS调用需要防止请求限制异常,你必须决定如何处理。一些调用可以失败,而且你可以基于逻辑尝试一次;其他的调用需要局部再次尝试直到成功为止。

对于第二种情况,很多管理员会编写类似的代码:

intbackOffFactor=0;while(true){try{amazonClient.someCall();break;}catch(AmazonServiceExceptione){if(e.getErrorCode().equalsIgnoreCase("RequestLimitExceeded")){quietSleepSeconds(++backOffFactor);}}

这个代码是一种改进的强制性重传延迟,通过使用重试之间的更长周期的休眠实现,使用一个实用功能来完成,即所有的管理员编写休眠和捕捉/忽略“InterruptedException”,直到“过多”情况消失。你可以调整多快增加休眠时间,而且也可以创建最高上限限制休眠时间。

这并不是完美的代码,而且可以作为一个lambda表达式在这些语言支持闭包中处理,但是表达了基本的意图:假设失败的可能,并且放慢失败直到系统停止抱怨。

参考资料

1.2006年8月25日Amazon发布EC2受限公众Beta版本·UC电脑园

目录[+]