亚马逊一直是个例外

亚马逊率先大举进军虚拟服务器主机托管领域;就本文提到的每个方面而言,亚马逊的服务几乎总有例外。亚马逊不是率先提供虚拟主机的,但据我回忆和发现,亚马逊率先提供实际上没有限制的容量来创建主机,并向持有有效信用卡的人提供服务。)

剩下来的最大区别在于,亚马逊的标准服务在运行时,不保留一份启动磁盘镜像的持续性常规副本;有办法添加持续性,但我在测试中觉得持续性并不可靠。如果你的标准镜像崩溃了,就无法从那个点来恢复。长期以来,这使得EC2局限于用在负载均衡网站,或者亚马逊的简单存储服务S3)拥有所有数据最新副本的系统。

本文提到的其他所有VPS服务只提供持续性磁盘镜像,只有在你付费购买VPS期间,它才完好无损。大多数服务供了存储这种磁盘镜像的功能,即使你删除了实际实例,以后还是可以恢复过来。

你可以创建一个亚马逊所说的自定义的亚马逊机器镜像Amazon Machine Image),它让你可以拿来标准发行版后进行修改,然后把它作为可装入的镜像写入,用于许多实例。这对于想要创建某几种特定配置的多个实例的公司来说很有用。

亚马逊还让你可以根据需要,创建持续一小时、一星期、一个月或更长时间的实例。由于VPS提供商在某个机器上分配了特定的持续性存储空间,实例不用后必须删除掉,不过你通常可以通过存储镜像来恢复,你只要支付存储费,就可以保存存储镜像。

为了避免没有持续性存储空间的问题,你可以用命令来创建实例,那样它在系统启动时就能执行任务。依赖EC2的那些用户使用这种脚本,即可利用持续性但非挂载式的S3服务,将文件拷贝过去,亚马逊并不因此计算带宽的使用量;可以通过亚马逊弹性块存储EBS)服务挂载持续性卷;或者连接到亚马逊关系数据库服务RDS)处的持续性MySQL架构。同时结合三者使用其功能也相当强。

虽然亚马逊在一年前就开始提供持续性、可启动的EBS卷,但我还是无法让这些卷运行起来如同亚马逊机器镜像AMI)一样可靠。实例会突然终止。你可以暂停这种实例,不用为运行时间付费;但我并未发现可以在运行状态下恢复这些实例。

捣鼓了一番后,我还是创建了完全符合自己要求的实例。我使用标准的AMI,然后对它进行定制。一旦定制完毕,我创建了快照,作为基本镜像。我把所有脚本和数据存放在持续性EBS驱动器上。我启动自定义AMI,然后挂载持续性驱动器,运行每周一次的数据库构建任务——这项任务要花几个小时,而且很耗费处理器资源,无法在我的生产环境上运行。又经过了一番调整后,我可以启动AMI,它正确地挂载了EBS卷,开始运行。

别指望这很容易。即使有比较新的管理控制台可以通过浏览器来使用,你还是无法在亚马逊环境下随便搭建服务器。事先一定要要有更充分的规划,尤其是你要想清楚如何应对实例崩溃及其他因素。


相关内容