近来想重拾一下GAE(Google App Engine),可是GAE在中国被墙,我能想到的解决方案是找一个没有被墙的服务器做GAE的reserved proxy,于是乎我想到了Amazon EC2(其实有点没事找事,如果真要建站直接在EC2上搞就得了,何必绕一圈)。这里就不管这种解决方案是否最优,就权当作是一次对EC2的初步实战的例子而已了。
第一步:注册EC2免费帐号
在http://aws.amazon.com/free/注册即可, 不过最阻扰我们的是需要一个可以境外付款的信用卡,不过幸运的是我有招行双币信用卡,填写需要的信息在卡上都有:
注册好后,会很快收到一个美元的扣费短信,不过这个只是amazon验证帐号是否有效的方式,会返还的。
注册流程中也可以不完成信用卡的填写,可以以后填写或更改,https://aws-portal.amazon.com/gp/aws/developer/account?ie=UTF8&action=payment-method
第二步:创建instance
成功注册后就能访问EC2 console,https://console.aws.amazon.com/ec2/home
点击"Launch Instance"创建一个Instance,选择Classic Wizard:
1)Choose an AMI
由于我的需求很简单,只需要一个apache即可,因此就选择了最简单的“Basic 32-bit Amazon Linux AMI 2011.09”。EC2免费容量是10G,因此不能选太复杂的底层系统,这个最简单的都用去了8G。因此,这一步需要做好规划,和你的需求进行平衡。
2)Instance Details
这步就选择默认即可
3)Create key pair
key pair用于将来登录instance的认证,这里需要创建一个:
起一个名字,download后保存好即可
4)Configure Firewall
这里是配置网络端口的开发,对于一个web server来说,一般需要开放SSH(用于远程控制),HTTP和HTTPS(用于web访问),TCP(用于自制网络服务开发):
最后检查无误后,点击"Lanuch"即可完成instance创建
第三步:启动并登录Instance
创建好后的instance默认是关闭的,因此需要通过console开启instance:
远程登录和控制instance就用一般的linux远程控制工具即可,如Putty,SecureCRT,这里我用的是SecureCRT 6.7.3,这个版本能直接用刚才生成的key pair登录,SecureCRT的设置很简单,主要就是要载入key pair文件:
点击Properties:
载入下载过的pem文件即可
完成后即可远程登录到EC2 Instance
第四步:安装和配置apache
1)安装apache: sudo yum install httpd
2)配置proxy: sudoedit /etc/httpd/conf/httpd.conf
<IfModule mod_proxy.c>
ProxyRequests On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://cutesource.appspot.com/
ProxyPassReverse / http://cutesource.appspot.com/
ProxyVia On
</IfModule>
这里是最简单的proxy设置,主要就是把所有的请求代理到GAE(http://cutesource.appspot.com/)
3)启动appche: sudo /etc/init.d/httpd start
第五步:分配Elastic IPs
刚才我们创建的instance会自动生成一个public dns,这也是我们刚才远程访问的地址,但这个地址会在重启后自动更改,这类似于我们家里宽带的动态ip。因此我们需要一个固定ip和域名。在Elastic IPs一栏里可以创建并绑定到instance,这样我们就可以有固定域名了,本例子就是http://ec2-23-21-223-133.compute-1.amazonaws.com/
不过对于Elastic IPs要格外小心,它很容易产生费用,查看http://aws.amazon.com/ec2/pricing/,我们会发现:
如果你生成了Elastic IP,就不能让instance stop,不然会产生$0.01/h的费用,我就是因为停机而扣了一点点费用
到此,算是成功体验了一把EC2,已能通过http://ec2-23-21-223-133.compute-1.amazonaws.com/访问之前遗忘的GAE应用