更新时间:2023-11-25 15:55
亚马逊弹性计算云(EC2,Elastic Compute Cloud)是一个让使用者可以租用云端电脑运行所需应用的系统。EC2借由提供Web服务的方式让使用者可以弹性地运行自己的Amazon机器映像档,使用者将可以在这个虚拟机器上运行任何自己想要的软件或应用程序。提供可调整的云计算能力。它旨在使开发者的网络规模计算变得更为容易。
支持Windows以及Linux,所有平台使用微型(免费)实例可免费使用.
Amazon EC2自动配置容量的功能允许用户自动调整Amazon EC2的容量。假如用户的流量达到尖峰,自动配置功能可以自动增加更多的容量至虚拟主机上以维持性能。
如果你已经准备好使用Amazon Web服务(AWS),那么,至少有两种做法可以用来创建以及使用AWS。一种做法是使用AWS API(应用程序编程接口)调用。建议你在大多数情况下使用第二种做法, 即AWS管理控制台,亚马逊的基于web的界面。
AWS管理控制台的简化流程:
(1)AWS注册
(2)创建实例的安全组
(3)启动Amazon EC2实例
(4)连接Amazon EC2实例
(5)添加Amazon EC2实例存储
AWS注册
进行AWS注册,单击“注册”,然后按照后续屏幕上的说明。注册时,你会收到你的AWS账号,之后会用到。
第一次注册AWS,你会收到一个账户,所有的AWS服务都会自动生成一个帐户。包括Amazon EC2服务,S3和EBS存储服务等。虽然AWS能够免费注册,可以使用750个小时,但是,必须提供一个信用卡号,当你使用“收费”服务时,可以用来缴费。
亚马逊使用你提供的电话号码确认你的身份。你会很快收到自动电话系统的来电,系统将提示你输入收到的验证码。一旦验证码经过验证,你的帐户将被激活。
创建IAM用户
当访问AWS服务时,该服务决定了你是否有权限访问该服务资源。创建IAM用户,然后根据不同权限将用户添加到IAM组。接下来,使用一个特殊的URL访问AWS。“账户id”就是你的AWS帐户ID,没有连字符,是你注册AWS时获得的AWS帐户。
创建IAM用户,开启IAM控制台,输入注册AWS时设置的电子邮箱和密码,并按照提供的说明操作。创建IAM用户后,你就能获得凭证,使用上述特殊的URL,登录并且使用Amazon EC2。
创建安全组
安全组作为虚拟防火墙,控制着访问相关实例的允许流量。将入站和出站的规则添加到安全组中来控制流量。入站规则能够控制访问与安全组相关实例的流量,如HTTP。
出站规则控制着到达与安全组相关实例的目的地,可以发送的流量。然而,返回流量,如从主机接收到的响应,收到的流量是自动允许的。如果计划在多个区域启动实例,将需要在每区域区分别创建安全组。
创建安全组,开启Amazon EC2控制台:
为安全组选择区域
点击“创建安全组”,输入一个新安全组的名称和描述
在入站选项卡上,创建规则,比如:
允许进入实例的HTTP流量
允许进入实例的SSH流量
两个AWS内部通信的实例,必须属于同一安全组,或者一个实例的安全组必须配置为接收同一AWS帐户的另一个安全组的流量。安全组被限定区域,因此,在每个区域需要配备适当的安全组,有计划地来运行应用程序。
启动Amazon EC2实例
可以使用AWS管理控制台启动实例。启动实例之前,你必须完成第一个步骤是“注册。”
通过访问Amazon EC2控制台,开始启动程序,选择“启动实例”。选择Amazon Machine Image(AMI)创建启动实例的模板。接下来,通过选择实例类型,为实例选择硬件配置。选择之前为实例创建的安全组,并使用之前创建的凭证,最后启动实例。
为Amazon EC2实例添加EBS卷
启动并且连接一个实例后,可以为实例添加一个EBS卷,或者添加其他存储服务的存储单元。打开Amazon EC2控制台,选择创建实例(EBS卷是敏感区域)的区域,选择实例。你可以选择卷的类型:标准的或者供应的IOPS。最后,附加卷。如果创建了一个空的卷,你需要将卷格式化才可以安装。
EC2安全组在AWS中为虚拟机网络安全策略基线提供了一个结构,它应当被视为第一道防线——一个必要但不充分的安全组件。
企业AWS部署也应包括一个或多个VPC以便为网络安全策略增加一个层。
确保AWS部署:
为每一个应用、应用层和管理用户组创建一个独立的安全组,并使用专为特定工作负载或服务层需求而调整的策略:不要为每一个实例创建一个独立的安全组;不要把所有的实例都放在同一个安全组。这种旧式的“护城河和城堡”式的防火墙策略明显外强中干,面对如今使用多重攻击和内部试探在先针对性攻击在后的攻击方式已无法发挥防火墙作用;不要依靠VPC的默认AWS安全组。
仔细规划网络路由和子网设计(VPC),并使用网络之间的严格ACL。网络ACL为互联网和应用程序协议提供了精细化控制,例如GRE、IPSec、ICMP、HTTP、SSL、DNS以及源/目的IP地址范围之间的流量限制。一方面VPC ACL独立于安全组,另一方面两者又相互协作。在不必要的流量和潜在有害的流量到达EC2实例和安全组策略之前,VPC ACL和安全组就就把它们剔除了。
当为网络和实例进行ACL规则定义时,使用最低权限标准。只允许绝对需要的连接、端口和用户。 特别关注出站安全组策略。出站规则限制对特定地址的连接,例如Dropbox或中国黑客,以及可用于未授权数据泄露的端口(FTP)。
支持无所不在的日志记录:VPC流量日志、CloudTrail、亚马逊身份与访问管理等等。事件日志可提供故障问题排除、现场安全漏洞和随时间推移安全策略完善所必须的详细信息。
亚马逊Web服务让企业相信他们拥有了自己的私有资源,但是有时候共享云系统反咬一口虔诚的企业。在亚马逊Web服务EC2实例中会看到一个错误RequestLimitExceeded,这也是反咬企业的错误之一。
如果你进行了过多的AWS调用,你的调用就会出现RequestLimitExceeded错误。然而,AWS并没有明确多少调用算“过多”,很可能是因为这是一个复杂的且未公开的算法,AWS也有待进一步开发。但是这意味着没办法预测什么时候这个错误会发生。
首先将AWS作为有约束的资源考虑,而且往返周期昂贵。正如你无法一次按字节阅读一个文件,不要在一个小的组块中询问AWS。
如果你希望了解正在运行的每一个实例,可以对每一个实例运行一个单独的AWS调用,或者使用灵活的API来针对AWS EC2实例列表的信息进行单独请求。第一种方法更有可能导致问题。
第二种选择是考虑你多久需要更新一下请求的AWS数据。假定你正在收集实例数据来进行手动扩展决定。频繁更新数据增加了精准度,知道你收到了请求拒绝提示,而且不得不以指数方式退下。要平衡你所请求的数据频率。
然而,在做了这些时候,所有的AWS调用需要防止请求限制异常,你必须决定如何处理。一些调用可以失败,而且你可以基于逻辑尝试一次;其他的调用需要局部再次尝试直到成功为止。
对于第二种情况,很多管理员会编写类似的代码:
这个代码是一种改进的强制性重传延迟,通过使用重试之间的更长周期的休眠实现,使用一个实用功能来完成,即所有的管理员编写休眠和捕捉/忽略“InterruptedException”,直到“过多”情况消失。你可以调整多快增加休眠时间,而且也可以创建最高上限限制休眠时间。
这并不是完美的代码,而且可以作为一个lambda表达式在这些语言支持闭包中处理,但是表达了基本的意图:假设失败的可能,并且放慢失败直到系统停止抱怨。