如何实现 AWS EC2 实例(instance)变更区域(region)

我从去年6月份试用 AWS EC2 到现在正好一年多,免费试用期已经到了,我前几天我登录后台一看账单,EC2 已经产生了近10美元的费用。

本来想把现在 EC2 上的网站搬家到 DigitalOcean,后来算了一下,如果我购买三年付的 EC2 t2.micro(美国西部 Oregon)的套餐,那么还是比较划算的,三年总共151美元,合下来每月4美元多一点。DigitalOcean的最便宜套餐是每月5美元512M内存,而 EC2 的 t2.micro 是1G内存,是 DigitalOcean 的两倍,所以,果断的一次性付了151美元购买了三年期的 t2.micro。

由于我试用的 EC2 实例是日本区域的,而现在购买的实例在美国 Oregon,那么能不能把实例的区域切换成 Oregon 呢?答案是否定的,没法直接变更实例的区域。但是我们可以稍微迂回一下,通过复制镜像的方式来实现实例区域的变更。

首先我给现有的日本区域的实例建一个镜像(AMI, Amazon Machine Image),然后把这个镜像复制到美国 Oregon 区域,最后在 Oregon 区域下使用复制过来的这个镜像新建一个同等配置的实例。

就上面这么三步,操作起来还是非常简单的。然后把域名解析到新实例的 IP 上,各个网站都打开测试一下,一切正常!

最后,在确定一切都没有问题的情况下,就可以把之前的实例彻底删除了,这样就不会再产生额外的费用了。:-)