用API控制你的云端服务器

文/陈波 长期以来,寻找高速、稳定和便于管理的IDC环境一直是互联网站长最头疼的问题。阿里云弹性计算平台为中国的站长和开发者提供了一个不错的选择。作为开放平台,aliyun.com不仅提供了面向终端用户的操作控制台,而且将弹性计算服务的各项功能以Open API的形式对外开放,让合作伙伴或者站长可以更加精细地控制弹性计算资源。 阿里云弹性计算平台目前提供的计算资源包括云服务器和负载均衡。接下来,我们通过一个实例来演示如何利用平台的Open API来构建一个具备伸缩性的服务器架构。 基本应用 准备工作:获得API权限 为了访问弹性计算平台的Open API,用户首先要注册成为aliyun.com的开发者,获得AppKey和AppSecret。具体参见 阿里云云账号中心,此处不再赘述。每一个API请求必须有认证信息app_key,否则将被视作非法访问。API的响应内容采用统一格式,调用者可以通过指定format参数选择返回数据的格式。目前支持的格式包括XML和JSON两种,分别如下所示。

XML格式:

用API控制你的云端服务器

JSON格式:

用API控制你的云端服务器

准备工作完成之后,我们将通过四个步骤来启动一个VM(如图1所示)。

用API控制你的云端服务器
图1 启动VM的四个步骤
步骤 1:创建VM实例 在进入实战前,先简单介绍一下云数据中心的两个基本概念。

  • Region:相当于一个数据中心或者机房,不同的Region在物理上隔离。
  • Zone:数据中心内部的不同集群,VM可以在Zone内迁移。

阿里云在北京和杭州有多个数据中心,因此,在创建VM前,首先考虑好要把它放在哪个区域(这里假设我们选择了cn-hangzhou-dg)。 接下来我们要考虑创建一个什么样的VM。弹性计算平台支持目前的主流服务器操作系统,包括Windows系列、RHEL、Debian等。Image仓库中已经预置了这些操作系统的不同镜像版本,因此在创建一个VM实例前,可以通过query_available_imgs接口获得可用Image的列表,并从中选择一个适合自身应用的Image。假设此处我们选择了windows2003.32.20110520.01.vhd。create_vm接口会根据你传入的参数创建一个VM实例,重要参数如下。

  • cores:CPU核数。
  • mem:内存大小,单位为MB。
  • image_no:指定Image,例如windows2003.32.20110520.01.vhd。

请记住返回的vm_name,因为后续的API调用以vm_name为唯一标识。 create_vm接口中有一个很特殊的参数safety_quota,表示云磁盘的数据安全级别。当设置为0时,平台不会冗余云磁盘上的数据,因此它的损坏率接近物理磁盘,年损坏率约为4%;当设置为1时,云磁盘会自动将写入的每一份数据复制多份,并且分布在不同的物理位置,确保任意一台宿主机或者交换机损坏时VM数据都不会丢失,数据安全性达到99.999%以上。

调用示例如下:

用API控制你的云端服务器

调用返回如下:

用API控制你的云端服务器 步骤2:修改VM配置 通过默认配置生成的VM也许难以满足需求,此时可以通过modify_vm、add_disk等接口来修改VM的CPU核数、内存大小、网络带宽、增加磁盘等。

调用示例如下:

用API控制你的云端服务器

调用返回如下:

用API控制你的云端服务器 步骤3:绑定公网IP 网站服务不可缺少的是公网IP。通过query_unassigned_ips接口可以查询未被使用的公网IP,从中选取1个,然后调用assign_ip,就可以将公网IP绑定到VM上。 调用示例如下:

用API控制你的云端服务器 调用返回如下:

用API控制你的云端服务器 步骤4:启动VM

完成上述步骤之后,只剩下非常简单的一步:传入vm_name,启动云服务器。在启动过程中,VM的状态历经pending、starting,最终达到running状态。在公网IP ping通后,就可以用终端工具连接云服务器了。Windows的终端工具一般是Remote Desktop,Linux的终端工具一般是SSH。将来我们还会向用户直接开放VNC带外管理的功能,让用户更彻底地控制云服务器的生命周期。

调用示例如下:

用API控制你的云端服务器 调用返回如下:

通过以上四个步骤就完成了弹性计算平台服务的基本功能调用,是不是很简单下来还有更炫的功能。

用API控制你的云端服务器

高级特性

安全域

现在的IDC机房中各种病毒、木马层出不穷,常见的攻击方式有伪造MAC、伪造IP、ARP欺骗等几种。据某黑客组织的统计数据显示,将一台不安装防火墙软件的服务器暴露在公网上,发现其漏洞的平均时间在72个小时左右。一旦机器被攻破,所有业务数据都将呈现在黑客面前,系统随时可能瘫痪。 弹性计算服务在系统层面最大程度地避免了此类攻击的发生,通过监控VM之间的流量,平台可以在第一时间阻止伪造MAC、伪造IP、ARP欺骗等攻击。同时,我们提出了安全域的概念。一个用户可以拥有多个安全域,默认同一安全域内的VM网络互通,不同安全域的VM被隔离。当然,用户可以通过自定义防火墙规则放行安全域间的流量。 初始情况下,每个用户都拥有自己的一个默认安全域。如果有多个安全域的需求,就可以通过create_group接口来创建新域。要把一个VM放在指定域中,必须在create_vm时指定group_no参数。 接下来可以通过authorize_group接口将指定域的协议/端口开放给另一个安全域或者一段公网IP。例如,你在云服务器上搭建了一个FTP服务,但FTP协议漏洞经常被作为攻击目标,因此你只想开放给一个固定的公网地址,此时可以通过以下参数授权: group_no=the_ group_no&source_cidr_ip=1.2.3.4/32&ip_protocol=tcp&port_range=21 快照与回滚 在第一部分中,我们提到create_vm时可以指定safety_quota参数获得不同安全级别的磁盘,但99.999%的SLA只能确保云磁盘上的当前数据不丢失,并不能保证数据本身的正确性。用户可能误删文件,系统也可能被病毒破坏,此时大多数用户就会回忆起Ghost等软件提供的系统还原功能。弹性计算平台现在也提供了类似的快照服务。所不同的是,我们的快照服务可以在不停止VM的情况下在线操作。当系统被破坏时,用户可以通过一个API瞬间恢复到之前任意快照的状态。 创建快照很简单,调用create_snapshot传入需要做快照的vm_name和device_no即可。当需要回滚时,调用rollback_snapshot传入要回滚的vm_name和device_no,并传入要回滚的目标状态snapshot_id即可。 当用户的系统崩溃、文件丢失时,快照将是一根救命稻草。 定制Image 第一部分中提到,创建VM前要先查询平台目前提供了哪些Image。那么我们可以自己创建一个Image吗果可以的话,自己定制一个Image,一下子启动100个一模一样的VM该有多方便。 在弹性计算平台上,这是很简单的事情。平台上的任意一个VM在任意时刻(当然,最好是安全关机状态)都可以打快照,而每一个快照都可以通过create_image接口另存为一个Image。接下来的事情就有趣了,每一个Image都可以派生一大批VM,而每一个VM的快照又可以另存为新的Image…… 平台上的Image可见性分为如下三种。

  • private:私有,只有Image的创建者才可使用。
  • public:所有人可见、可用。
  • protected:受保护的,授权使用。

负载均衡服务 有一定规模的网站一般都会有多台服务器。一些统计数据反映,一般单台服务器能承受的单日PV可达10万~300万,超过这个数就要考虑架构的水平扩展,即用多台服务器来支撑高并发流量。 弹性计算平台提供了所见即所得的负载均衡服务,只需要通过几个简单的API调用,就可以为一批VM添加前端的负载均衡服务。

  • query_available_vips:查询可用VIP。
  • assign_vip:为指定的一批VM添加负载均衡VIP。

弹性计算平台同时支持TCP和HTTP的负载均衡。 登录密钥 很多SA在管理Linux集群时都会采用一种技术——SSH KeyPair(密钥对),通过密钥对建立服务器间的通道,这样从管理机远程登录服务器执行命令时就不再需要重复输入密码。弹性计算平台也提供了这样的便捷性,不需要用户手工配置服务器间的通道,只需调用create_key_pair接口生成一个密钥对,随后在启动VM时指定key_pair_name参数即可。 平台保障 自动故障恢复 虽然云磁盘具备很高的数据安全级别,任意一块物理硬盘损坏都不会影响VM运行,也不会导致数据丢失,但VM所在的宿主机还是有损坏的可能;虽然CPU、主板这些部件相对硬盘损坏的几率小很多(根据我们实际运维的数据,在千分之一到千分之二左右),但它们发生故障时VM还是会面临宕机的风险。 当宿主机宕机时,弹性计算平台会自动监测到故障的发生,并且立即根据一定的算法选择一台机器,让受影响的VM恢复运行。由于云磁盘的数据安全保障,VM的硬盘数据可以恢复到最后一刻的状态,但不保留其最后的内存和CPU执行状态。 因为故障随时可能发生,为了深夜里也能安心睡大觉,建议大家把Web服务等应用设置为开机自运行,这样,VM被平台恢复之后,你的应用也可以持续提供服务。 防DDOS攻击 DDOS攻击令互联网站长谈虎色变,一旦被黑客组织盯上,可能面临几天甚至数周都开不了张的悲惨局面。国内的大多数IDC针对此类攻击都没有特别好的解决方案,一般都是建议站长换域名IP,或者购买更多的服务器与攻方拼资源。但这些方案基本上都难以实施:换域名IP意味着和客户远离,购买大量服务器则意味着巨额成本的投入。 弹性计算平台专门针对互联网应用的脆弱性提供了防DDOS攻击服务,当攻击流量处于可清洗范围(目前是3~7GB)内时,系统自动启动防御流程,将攻击流量旁路到高端清洗设备上,然后将正常的访问流量放行到后端的VM。当流量超过平台清洗能力时,为了保护平台其他用户的服务不受影响,只能将受攻击的IP屏蔽。 根据一些行业数据的统计,去年DDOS攻击的平均规模为300MB。一般情况下,这类攻击都可以被挡在云数据中心之外。 小结 通过上面的介绍,相信大家对于阿里云弹性计算平台提供的服务有了一定的认识。我们致力于构建一个足够开放的平台,相信术业有专攻,相信开发者比我们更聪明、更有精力,希望大家在这个平台上能够开发出Elasticfox这样优秀的管理工具,锻造出GigaSpace这样具备雄厚实力的解决方案提供商。弹性计算的明天,我们一同来创造! 本文选自《凌云》杂志第1期,更多精彩内容敬请关注《凌云》专区。 《程序员》2012年杂志订阅送好礼活动火热进行中         文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树控制执行流程if-else91725 人正在系统学习中

来源:《新程序员》编辑部

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2012年1月2日
下一篇 2012年1月2日

相关推荐