基于Amazon EC2反向代理Google App Engine

近来想重拾一下GAE(Google App Engine),可是GAE在中国被墙,我能想到的解决方案是找一个没有被墙的服务器做GAE的reserved proxy,于是乎我想到了Amazon EC2(其实有点没事找事,如果真要建站直接在EC2上搞就得了,何必绕一圈)。这里就不管这种解决方案是否最优,就权当作是一次对EC2的初步实战的例子而已了。

第一步:注册EC2免费帐号

在http://aws.amazon.com/free/注册即可, 不过最阻扰我们的是需要一个可以境外付款的信用卡,不过幸运的是我有招行双币信用卡,填写需要的信息在卡上都有:

基于Amazon EC2反向代理Google App Engine_第1张图片

注册好后,会很快收到一个美元的扣费短信,不过这个只是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

这步就选择默认即可

基于Amazon EC2反向代理Google App Engine_第2张图片


基于Amazon EC2反向代理Google App Engine_第3张图片

3)Create key pair

key pair用于将来登录instance的认证,这里需要创建一个:

基于Amazon EC2反向代理Google App Engine_第4张图片

起一个名字,download后保存好即可

4)Configure Firewall

这里是配置网络端口的开发,对于一个web server来说,一般需要开放SSH(用于远程控制),HTTP和HTTPS(用于web访问),TCP(用于自制网络服务开发):

基于Amazon EC2反向代理Google App Engine_第5张图片

最后检查无误后,点击"Lanuch"即可完成instance创建

基于Amazon EC2反向代理Google App Engine_第6张图片

第三步:启动并登录Instance

创建好后的instance默认是关闭的,因此需要通过console开启instance:

基于Amazon EC2反向代理Google App Engine_第7张图片

远程登录和控制instance就用一般的linux远程控制工具即可,如Putty,SecureCRT,这里我用的是SecureCRT 6.7.3,这个版本能直接用刚才生成的key pair登录,SecureCRT的设置很简单,主要就是要载入key pair文件:

基于Amazon EC2反向代理Google App Engine_第8张图片

点击Properties:

基于Amazon EC2反向代理Google App Engine_第9张图片

载入下载过的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/,我们会发现:

基于Amazon EC2反向代理Google App Engine_第10张图片

基于Amazon EC2反向代理Google App Engine_第11张图片

如果你生成了Elastic IP,就不能让instance stop,不然会产生$0.01/h的费用,我就是因为停机而扣了一点点费用

到此,算是成功体验了一把EC2,已能通过http://ec2-23-21-223-133.compute-1.amazonaws.com/访问之前遗忘的GAE应用




你可能感兴趣的:(apache,Google,远程登录,GAE,pair,wizard)