目前最广泛的云计算平台有两个,一个是Google App Engine(简称GAE),另一个则是Amazon Web Service(简称AWS)。虽然GAE提供了很方便的编程框架和工具,并且收费模式更吸引人,但Geoserver并不能在GAE中运行,原因可以参考我的这篇博客。因此目前最佳选择是使用AWS,好消息是AWS最近推出了一年免费使用的套餐:AWS Free Usage Tier,套餐包括:
AWS Free Usage Tier (Per Month):
750 hours of Amazon EC2 Linux Micro Instance usage (613 MB of memory and 32-bit and 64-bit platform support) – enough hours to run continuously each month*750 hours of an Elastic Load Balancer plus 15 GB data processing*10 GB of Amazon Elastic Block Storage, plus 1 million I/Os, 1 GB of snapshot storage, 10,000 snapshot Get Requests and 1,000 snapshot Put Requests*5 GB of Amazon S3 storage, 20,000 Get Requests, and 2,000 Put Requests*30 GB per of internet data transfer (15 GB of data transfer “in” and 15 GB of data transfer “out” across all services except Amazon CloudFront)*25 Amazon SimpleDB Machine Hours and 1 GB of Storage**100,000 Requests of Amazon Simple Queue Service**100,000 Requests, 100,000 HTTP notifications and 1,000 email notifications for Amazon Simple Notification Service**10 Amazon Cloudwatch alarms**In addition to these services, the AWS Management Console is available at no charge to help you build and manage your application on AWS.
最需要注意的有两点:
提供的Linux Instance Usage是Micro类型,若无其他类型,则会产生费用。Amazon Elastic Block Storage(简称EBS)为10G,Ubuntu的官方AMI中EBS为15G,若使用这个,则会产生费用。此外,数据传输还会产生费用,但具体区分哪些流量收费哪些在免费的范围内,我还无法做到。不过新手难免会超出Free套餐的东西,我就在两天中产生了三刀的费用,因此在开始时需要经常检查自己的账户。
好了,背景就简单的这么介绍一下吧,下面是我的配置步骤。
注册AWS账户,在http://aws.amazon.com/free/中按提示进行即可注册成功后打开http://aws.amazon.com/ec2/,点击Sign Up for Amazon EC2登录打开AWS Management Console在Navigation栏中设置区域为US East点击Launch Instance,创建一个instance。首先,选择一个AMI,点击Community AMIs标签,在搜索框中输入ac41b7c5,找到相应的AMI,点击Select。在第二步中将Instance Type改为Micro(t1.micro)第三步使用默认配置即可下一步添加一个tag,随便写一个即可,如geoserver创建Key pair,名字随便填一个,如geoserver,然后点击Creat & Download Your Key Pair创建新的Security Group,随便填个名字,如geoserver,然后添加HTTP 80和SSH 22两个Rule。这个Rule后面还要编辑,添加Http TCP 的8080端口。最后是一个Instance的配置清单,核对一下,尤其是类型是否为micro的。Windows下:安装Putty和PuttyGen,一般windows里提供的都是一个打包好的安装包,这些程序都有。。linux下则找对应的SSH命令,可以参考官方文档,或者我转载的那篇安装geoserver到AWS的博客。打开PuttyGen,点击Load(或File-Load Key),文件类型选择All Files,打开geoserver.pem(就是在9中创建KeyPair时下载的那个)。在下面的类型选择SSH-2 RSA,1024bit,这也是默认选项。点击Save Private key,将生成一个Putty格式(.ppk)的Key, 保存。通过Putty连接AWS。在Console中点击新建的Instance,在下面的详细信息中找到Public DNS,记录来。打开Putty,Host Name就填写Public DNS,如:ec2-50-17-35-207.compute-1.amazonaws.com。点击Connection--SSH--Auth,在Private Key file for authentication中找到刚才保存的ppk格式的Private Key。点击Open,进行连接。用户名为ubuntu,不必输入密码。输入命令:sudo apt-get update和sudo apt-get install tomcat6 tomcat6-admin打开AWS的Console,打开Security Group配置页面,增加一个8080端口的Rule:在Connection Method中选择HTTP,Protocol选择TCP,From Port为8080,To Port为8080,Source(IP or Group)为0.0.0.0/0,点击Save即可。配置Tomcat,在putty中输入下面这些命令:sudo vim /etc/default/tomcat6 修改这行:JAVA_OPTS="-Djava.awt.headless=true -Xmx512 m"去掉这行前面的注释:TOMCAT6_SECURITY=nosudo vim /var/lib/tomcat6/conf/tomcat-users.xml sudo /etc/init.d/tomcat6 restart<tomcat-users><role rolename="admin"/><role rolename="manager"/><role rolename="tomcat"/><user username="自己设一个用户名" password="自己设一个密码" roles="admin,manager,tomcat"/></tomcat-users>
20. 下载Stable的WAR版本的Geoserver ,解压出war包。
21. 打开Tomcat的Manager页面,地址为Public DNS:8080/manager/html,如:http://ec2-50-17-35-207.compute-1.amazonaws.com:8080/manager/html。打开时会提示输入用户名和密码,就是在19这步中tomcat-users.xml中的用户名和密码。
22. 上传geoserver的war包,需要花一段时间。
23. 打开http://ec2-50-17-35-207.compute-1.amazonaws.com:8080/geoserver,输入用户名和密码
恭喜恭喜:),安装完成了,后面可能有一些问题,以后再写吧。
参考文献:
http://leighspersistentthoughts.wordpress.com/2010/06/17/installing-a-headless-geoserver-on-ubuntu-10-4-on-amazon-web-services/http://guru.gg/aether/ubuntu-10-4-amazon-aws-free-tier