阿里云:用API控制你的云端服务器

本文摘要:长期以来,寻找一个高速、稳定和管理方便的IDC环境成为互联网站长的一个头疼问题,阿里云弹性计算平台为中国的站长和开发者提供了一个不错的选择。作为一个开放的平台,aliyun.

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

图片:用API控制1.png

JSON格式:
  

图片:用API控制2.png


准备工作完成后,我们将通过四个步骤启动一个VM

步骤 1:创建VM实例
在进入实战前,首先跟大家普及一下2个云数据中心的概念:
(1)  Region:相当于一个数据中心或者机房,不同的Region物理上隔离;
(2)  Zone:数据中心内部的不同集群,VM可以在Zone内进行迁移;
阿里云在北京和杭州有多个数据中心,因此,在创建VM前,首先考虑好要把它放在哪个区域。假设此处我们选择了cn-hangzhou-dg
接下来我们考虑要创建一个什么样的VM,弹性计算平台支持目前的主流服务器操作系统,包括Windows系列、RHELDebian等。Image仓库中已经预置了这些操作系统的不同镜像版本,在创建一个VM实例前,我们可以通过query_available_imgs接口获得可用Image的列表,从中选择一个适合自身应用的Image。假设此处我们选择了windows2003.32.20110520.01.vhd
create_vm接口根据你传入的参数创建一个VM实例,重要参数包括:
(1) cores: CPU核数;
(2)  mem: 内存大小,单位为MB
(3) image_no: 指定Image,例如windows2003.32.20110520.01.vhd
请记住返回的vm_name,后续的API调用必须以vm_name为唯一标识。
create_vm接口中有一个很特殊的参数:safety_quota,表示云磁盘的数据安全级别。当设置为0时,平台不会冗余云磁盘上的数据,因此它的损坏率接近物理磁盘,年损坏率约4%;当设置为1时,对于每一份写入云磁盘的数据,云磁盘会自动复制多份,并且分布在不同的物理位置,确保任意一台宿主机或者交换机损坏时VM数据都不会丢失,数据安全性达到99.999%以上。
调用示例:

图片:用API控制3.png.jpg

调用返回:

图片:用API控制4.png.jpg


步骤2:修改VM配置
通过默认配置生成的VM也许难以满足你的需求,此时可以通过modify_vmadd_disk等接口来修改VMCPU核数、内存大小、网络带宽、增加磁盘等。
调用示例:

图片:用API控制5.png.jpg

调用返回:

图片:用API控制6.png.jpg

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

图片:用API控制7.png.jpg

调用返回:

图片:用API控制8.png.jpg

步骤4:启动VM

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

图片:用API控制9.png.jpg

调用返回:

图片:用API控制10.png.jpg

以上四个步骤就完成了弹性计算平台服务的基本功能调用,是不是很简单?接下来还有更炫的功能。
第二部分 高级特性
高级特性 1:安全域
现在的IDC机房中各种病毒、木马层出不穷,常见的攻击方式有伪造MAC、伪造IPARP欺骗,据某黑客组织的统计数据,一台不安装防火墙软件的服务器暴露在公网上,被发现漏洞的平均时间在72个小时。一旦机器被攻破,所有的业务数据都呈现在黑客面前,系统随时可能瘫痪。
弹性计算服务在系统层面最大程度避免了此类攻击的发生,通过监控VM之间的流量,平台可以在第一时间阻止伪造MAC、伪造IPARP欺骗等攻击。同时,我们提出了安全域的概念。一个用户可以拥有多个安全域,同一安全域内的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
高级特性2:快照与回滚
在第一部分基本应用中,我们提到create_vm时可以指定safety_quota参数获得不同安全级别的磁盘,但99.999%SLA只是确保云磁盘上的当前数据不丢失,并不能保证数据本身的正确性。用户可能误删文件,系统也可能被病毒破坏,此时大多数用户就会回忆起Ghost等软件提供的系统还原功能。弹性计算平台现在也提供了类似的快照服务,所不同的是,我们的快照服务可以在不停止VM的情况下在线操作,当系统被破坏时,用户可以通过一个API瞬间恢复到之前任意快照的状态。
创建快照很简单,调用create_snapshot传入需要做快照的vm_namedevice_no即可;当需要回滚的时候,调用rollback_snapshot传入要回滚的vm_namedevice_no,并传入要回滚的目标状态snapshot_id即可。
当用户的系统崩溃、文件丢失的时候,快照将是最后一根救命的稻草。
Feature 3:定制Image
基本应用里说到,创建VM前必须先列举一下平台目前提供了哪些Image,为何我们不能自己创建一个Image呢?可行的话,我定制一个Image,一下子启动100个一模一样的VM该有多方便?
弹性计算平台上,这是很简单的事情。平台上的任意一个VM在任意时刻(当然,最好是安全关机状态)都可以打快照,而每一个快照都可以通过create_image接口另存为一个Image。接下来的事情就有趣了,每一个Image都可以派生一大批VM,而每一个VM的快照又可以另存为新的Image,子生孙,孙又生子……
平台上的Image可见性分为3种:
l  private: 私有,只有Image的创建者才可使用;
l  public:所有人可见可用;
l  protected: 受保护的,授权使用;
高级特性4:负载均衡服务
上一定规模的网站一般有多台服务器,一些统计数据反映,一般单台服务器可以承受的单日PV可达10~300万,超过这个数就要考虑架构的水平扩展、用多台服务器来支撑高并发流量。
弹性计算平台提供了所见即所得的负载均衡服务,只需要通过几个简单的API调用就可以为一批VM添加前端的负载均衡服务:
l  query_available_vips:查询可用VIP
l  assign_vip:为指定的一批VM添加负载均衡VIP
弹性计算平台同时支持TCPHTTP的负载均衡。
高级特性5:登录密钥
很多SA在管理Linux集群的时候都会采用一种技术:SSH KeyPair,通过密钥对建立服务器间的通道,这样从管理机远程登录服务器执行命令时不再需要重复输入密码。弹性计算平台也提供了这样的方便性,不需要用户手工配置服务器间的通道,只需调用create_key_pair接口生成一个密钥对,随后在启动VM时指定key_pair_name参数即可。
第三部分:平台保障
平台服务1:自动故障恢复
虽然云磁盘具备很高的数据安全级别,任意一块物理硬盘损坏都不会影响VM运行,也不会导致数据丢失,但VM所在的宿主机还是有损坏的可能。虽然CPU、主板这些部件相对硬盘损坏的几率小很多(根据我们实际运维的数据,在千分之一到千分之二左右),但它们发生故障时VM还是面临宕机的风险。
当宿主机宕机时,弹性计算平台会自动监测到故障的发生,并且立即根据一定的算法选择一台机器,让受影响的VM恢复运行。由于云磁盘的数据安全保障,VM的硬盘数据可以恢复到最后一刻的状态,但不保留其最后的内存和CPU执行状态。
因为故障随时可能发生,为了深夜里也能安心睡大觉,建议大家可以把Web服务等应用设置为开机自运行,这样,VM被平台恢复之后,你的应用也可以持续提供服务了。
平台服务2:防DDOS攻击
DDOS攻击令互联网站长谈虎色变,一旦被黑客组织盯上,可能面临几天甚至数周都开不了张的悲惨局面。国内的大多数IDC针对此类攻击都没有特别好的解决方案,一般都是建议站长换域名IP,或者购买更多的服务器和攻方拼资源,但这些方案对于站长基本上都难以实施,换域名IP意味着和客户远离,购买大量服务器意味着巨额成本的投入。
弹性计算平台专门针对互联网应用的脆弱性提供了防DDOS攻击服务,当攻击流量处于可清洗范围(目前是3G-7G)内时,系统自动启动防御流程,将攻击流量旁路到高端清洗设备上,然后将正常的访问流量放行到后端的VM。当流量超过平台清洗能力时,平台为了保护其他用户的服务不受影响,只能将受攻击的IP屏蔽。
根据一些行业数据的统计,去年DDOS攻击的平均规模为300Mb,一般情况下,这类攻击都可以被挡在云数据中心之外。
通过以上的简要介绍,相信大家对于阿里云弹性计算平台提供的服务有了一定的认识,我们致力于构建一个足够开放的平台,相信术业有专攻,相信开发者比我们更聪明更有精力,希望大家在这个平台之上能够开发出Elasticfox这样优秀的管理工具,锻造出GigaSpace这样具备雄厚实力的解决方案提供商。弹性计算的明天,我们一同来创造!

热门推荐

更多