由于之前提到的某些原因,我终于还是决定更换博客的托管主机。折腾了2天,转到Amazon云计算平台后,百度已经开始收录本站,效果显著。

什么是Amazon EC2?

这个问题在讲私有云的时候有过简短的介绍,不过后面的语言可能太学术了一点。Amazon AWS服务是云计算先驱,EC2是AWS提供的其中一项服务。简单的说,EC2就是在Amazon服务器上运行的虚拟机,我们可以在虚拟机里自己安装操作系统、web服务、数据库,想做什么就做什么,拥有完全的权限。

为什么选择Amazon EC2?

目前很多成长期的互联网公司都在使用EC2,例如Foursquare,Quora,Zynga等。之前叱咤风云的维基解密亦曾托管于EC2,抵御了官方黑客洪水般的DDOS攻击。云计算的一大特点就是按需使用,灵活伸缩,在初期网站访问量不大时选用低配置虚拟机,花费较少,而待大量访问来临时,后台可以一键升级到高配置,稳定度过高峰。

另外与普通主机托管不同的,刚刚也提到了,我们拥有root级完全的系统权限,后台要跑什么应用自己都可以搭环境,不受限制。最狠的是Elastic IP配置可以让我们的站点拥有一个独立IP!这是多么的难能可贵啊,被GFW误杀的概率大大降低了。

如何收费?

目前新注册用户可以免费使用Micro Instance 1年。该instance具体配置为613M内存,10G空间,每个月上下行流量各15G。这个配置对于个人博客这类小型网站完全够用。

其他高配置的虚拟机Instance收费标准,是以小时计费。

如何部署?

1. 注册账户

首先你需要新注册一个Amazon AWS帐号(旧帐号无法免费使用EC2),注册时会要求提供信用卡,并自动有越洋电话打来确认。

2. 创建EC2 Instance

登录AWS控制台,选择“Launch Instance”新建一个虚拟机。

创建instance虚拟机

3. 选择AMI

AMI相当于硬盘镜像,你可以选择预装有不同操作系统的镜像,当然也有很多人将他们自己配置的镜像打包共享,方便快速部署。假设我们想要部署一个wordpress博客站点,那么就可以选择BitNami WordPress Stack,这是一个配置好了wordpress运行环境的镜像,可以选择预装Ubuntu或Windows系统,预装Apache、PHP和mysql等环境,当然你也可以自己装其他环境,例如nginx。在BitNami网站上查找Amazon镜像代码,根据自己的需要选择不同镜像。

bitnami镜像代码

这里要注意的是一定要选Root Device为EBS的AMI,才能保存数据在虚拟硬盘。

下面就可以继续在Amazon控制台搜索镜像代码,继续配置EC2。

搜索选择AMI

4. 选择Instance类型

这里选Micro,才可以享受1年的免费使用期。

instance类型

5. 密钥对

如果你之前没有生成过密钥对,这里需要生成key pairs,用于以后ssh登录到系统。

key_pairs

6. 防火墙设置

初次配置,建议新建一个防火墙Security Group规则,允许所有TCP UDP ICMP协议,以避免出现不必要的麻烦。以后熟悉了运行环境,可以修改规则只允许HTTP(80) SSH(22)通过。

firewall

7. 创建完毕

等instance状态为running的时候,系统就已经在正常运行了。我们可以通过控制台显示的二级域名访问到web服务,并登录wordpress后台进行有关设置。

创建完毕

8. 分配IP

切换到Elastic IP,选择新分配一个IP,然后将其绑定到我们刚刚部署好的系统。使用这个独立IP是免费的,但如果你分配了IP却不做关联绑定,占着茅坑不拉屎,就会被收费了。我们可以随时解除绑定,释放IP。下一次再分配的时候,二级域名和IP都会有变化。

分配elastic_ip

好了,现在可以到域名服务商处,修改A记录,把自己的域名指向这个IP了。

9. SSH登录

Linux下直接使用终端登录

ssh -i yourkey.pem bitnami@****.compute-1.amazonaws.com

Windows下可以使用PuTTy登录到运行的EC2 instance,注意putty本身不支持Amazon提供的PEM格式密钥,需要使用puttygen来将pem格式文件转换成putty使用的ppk文件。将Connection->SSH->Auth->Private Key file for authentication设置为由pem转换而来的ppk文件。

这样就可以登录到Instance上了,现在就可以top看看系统的详细信息。sudo有效,可以为所欲为了。

博客迁移

备份数据库,导入到EC2中的数据库;备份wordpress主题、插件……这些都不是本文讨论范围了。搜索之,应该会有人总结得很全面。

这里要提到的是Bitnami的应用结构。Apache安装在/opt/bitnami,phpmyadmin和wordpress安装在/opt/bitnami/app。web服务启动重启都有相关脚本,很方便。ftp以及mysql默认用户密码等等,具体请查看/opt/bitnami的文档。

参考链接:
http://apan.me/index.php/2011/04/22/%E5%BC%80%E5%8D%9A%E5%8E%86%E7%A8%8B/
http://www.agileweboperations.com/migrate-your-wordpress-blog-to-a-bitnami-ec2-instance
http://www.2bit-coder.com/2010/09/wordpress-in-the-cloud-amazon-ec2/