September 13, 2007
ObjectGrid on Amazon EC2
I'm a big fan of Amazons EC2 service. Since I got my account a few months ago, I've been using it to do scale out testing of ObjectGrid. ObjectGrid runs just fine on it as it isn't multi-cast based. The only gripe with EC2 is the external bandwidth cost. Network traffic between EC2 servers is free but traffic between the net and the boxes costs 20c per gigabyte.
Getting ObjectGrid running there is pretty painless. Grab the IBM Java 5 JVM and scp it up to a box, this is around 50MB. Next, scp a copy of ObjectGrid (a full image is around 30MB, eval copy is here). Then set JAVA_HOME to the IBM JRE directory and then you should be able to start catalog servers and container servers. If you want to test a grid then take a note of the first EC2 nodes host name and then create a few more VM instances. You need to scp your private key to these new boxes. This allows you to then scp to the original box to grab the JVM and ObjectGrid install. Now start container servers on the new VM instances pointing them at your catalog server and you have a grid. You can start as many instances as you want to test scaling, you'll likely run out of money before we stop scaling out.
Performance wise, it's ok. I see around 9.8MB/sec between virtual machines so it works well enough but won't be comparable with a local GB ethernet or faster network. The machines cost 75 bucks a month to keep running or 10c per hour otherwise.
I still haven't figured out how to get NFS running on EC2. This would be very handy and I'd just export the first servers directory with the JVM, ObjectGrid and application files. I'd mount this on every container virtual machine and this simplifies things a lot. All logs would go to the NFS system unless you didn't want that (a lot of log traffic would slow down performance so local logs would be better in that case).
If people are interested I can post more complete instructions.
September 13, 2007 | Permalink
What kind of application are you running on ObjectGrid on the EC2?
Posted by: Cylus Penkar | Sep 18, 2007 2:56:39 PM
A test application that hosts a partitioned dynamic grid and injects work in to primaries within the grid where it is processed directly against the primary copy. It's a scalability test just to make sure everything works. Its also handy to test scalability by adding ec2 images to scale it out.
Posted by: Billy | Sep 18, 2007 3:39:56 PM