(Note: This is the second part of a 3 – part blog post about setting up the OpenGeo Suite on a AWS Ubuntu server. Links to the other parts are at the bottom of this post)
Starting Fresh with a New AMI
At the end of my last post, I had my AWS Ubuntu-micro-server running smoothly, but the OpenGeo GeoExplorer was not very stable. It was crashing often, and for no apparent reason. I followed up with a few suggestions about data directory permissions, and swap-file space, but to no avail (Thank you @spara and @jeffbarr). I had been tweaking things quite a bit on that server, (The whole purpose of this exercise is to learn how things work, right?) so I decided to wipe the slate clean and start from scratch.
I began by looking for a different ami. A bit of searching led me to the Ubuntu Cloud Portal – AMI Locator, which facilitates searching and filtering all of the Ubuntu AMIs available. At the bottom of the table, I chose “Zone: us-east-1”, and “Name: oneric”.
I then clicked on the ami-a562a9cc link, (a 32-bit ebs server) which then opened up the Request Instances Wizard that I talked about in the last post.
Following everything I outlined in part-1, I wound up with a shiny new Ubuntu server connected to my Windows machine through WinSCP and PuTTY.
In the PuTTY window, I entered the the following commands to make sure the new server was up to date:
sudo apt-get update
sudo apt-get upgrade
Here’s a hint: The PuTTY window does not have any menus or toolbars, and control-v does not work for pasting text. If you copy the above commands, and then simply right-click in the PuTTY window, the commands will be pasted in. Hitting enter will then run them.
Install the OpenGeo Suite
Next up, is getting the OpenGeo Suite installed. I’ve described this process in other posts, but here it is in short form. Just remember to substitute <YourAWSPublicDNS> with your actual Public DNS string, which looks something like this: ec2-75-101-170-100.compute-1.amazonaws.com.
- In the PuTTY window (or terminal if you’re using some form of Linux), sudo to root:
- Then enter these commands. I’ve found they work best if they’re entered one at a time:
wget -qO- http://apt.opengeo.org/gpg.key | apt-key add -
echo "deb http://apt.opengeo.org/ubuntu lucid main" >> /etc/apt/sources.list
apt-cache search opengeo
apt-get install opengeo-suite
- Back in the AWS Management Console, choose the server instance, go up to the “Instance Actions” button, and click Reboot
- Once it’s finished rebooting, test the OpenGeo Suite
- In a browser window, go to: http://<YourAWSPublicDNS>:8080/dashboard/
- Launch GeoExplorer
- Click the Login button on the right end of the toolbar.
- Default Login credentials are User: admin, Password: geoserver
- Make any changes to the map you want
- Save the map (There is a save map button on the toolbar)
- …and exit GeoExplorer
The map should now be publicly viewable at:
Here’s what mine looks like:
Now I have a real cloud-based web-map- server up and running. But wait. There’s more. The next step to making this a truly useful map server, is to add some custom data to it.
Upload some Data
Using WinSCP, I added a new folder under the /home/ubuntu directory.
- Travel to the “/home/ubuntu” directory on the remote side
- Right click > New > Directory…
- Name the new folder, and make sure permissions are set to
Owner: RWX, Group: R-X, and Other: R-X, (Octal: 0755), otherwise, upload and GeoServer access will not work
- In the Local panel, I made my way to where I store GIS data on my workstation lappy. This particular folder holds all the shapefiles I plan on using with any of my OpenGeo Suite/GeoServer boxes, and they’re all in Web Mercator projection (EPSG: 3857).
- Highlighting the files I want to upload on the Local side, I then drag and drop them into the new remote folder
- Upload promptly ensues
Next up, is…
Loading this new data into GeoServer
- Open up the OpenGeo Suite dashboard once more at: http://<YourAWSPublicDNS>:8080/dashboard/
- Click on the GeoServer link, and Login
Loading data into GeoServer is another complicated process, so I won’t go into those details here. The process for importing data into a PostGIS database is well documented on the OpenGeo website. Importing shapefiles is not much different.
Now I have some custom data on my server. I can add styles to it, set up a new map using GeoExplorer, and post it for the world to see.
Here’s a look at a map I put together just for testing purposes:
And the link:
I’m pretty happy with the way this turned out. Everything seems to be working OK so far. The new instance is much more stable than my first try. It hasn’t crashed once, even though I felt like I was pushing it to the limit with all the uploading, styling, and layout editing I was doing in GeoExplorer.
Now, if it were only 5 o’clock, I’d be able to celebrate with a beer. What’s that? It’s 4:30?
Close enough! :-)