Amazon Elastic Compute Cloud image for Servoy

After yesterday’s user group, a few people have expressed interest in creating an Amazon Machine Image for developers that is pre-configured to run Servoy (the one I showed wouldn’t be generic enough). I’d be glad to work on this, but need some input on two questions:

First, what would a “default” installation of Servoy look like? What type of database should we use? Would any extra free plugins / drivers / beans be installed? Are there any other related tools that we should put on by default?

Second, are we trying to create an image that you just boot, import your solution and test, or are we making a base image that each developer will then modify further?

Thanks,
Darren

Eventually it would be a great resource to have a family of machine images, with the permutations of Servoy 3.1, 3.5, (4.x eventually), and popular SQL DBs, for developers who quickly want to try out a solution in a particular environment. This would best be served with a base set of the free plugins/beans/drivers, which could be added to as required by each developer (and optionally saved as a new AMI permutation to add to the community resource). A catalogue or at least an agreed naming scheme would help to manage the menagerie.

To get the ball rolling, start with a couple of images, say 3.1 and 3.5 with Sybase as the DB, with other DB proponents contributing images over time.

One issue to be solved is the Servoy license - as mentioned in the VUG, it’s possible to make as many instances of the same Machine image, so should it be created without license installed? This would leave it to each user to be responsible for that aspect. Some advice needed from Servoy here.

For simplicity, since disc space really isn’t an issue, I would create 1 image with Servoy 3.1 and Servoy 3.5 installed. For databases, I would install both Sybase and MySQL. That would probably cover 75% of people.

Then we would just need some instructions so that you can start the right services for your specific setup. For example, a user may have Servoy 3.1 with MySQL, so just need instructions on starting up the right services.

Lastly, there were 2 issues that weren’t very clear in the demo.

  1. How can you get a static ip or host name? This would be critical since each client points directly to a server.
  2. Allowing the SQL Database data to be persistent…so is it saved. Reading the FAQ at http://www.amazon.com/b?ie=UTF8&node=201591011 , it appears all data is lost when the instance shuts down, So you have to have some automated way to back the data up to the Amazon S3 (or other online storage) so that it is saved, and then load it back in when the instance starts up. For large databases, that could get tricky. However, after a bit more research, I just found a few resources. http://www.persistentfs.com and http://www.elasticdrive.com/ both offer persistent data storage systems to work with Amazon’s Elastic Compute Cloud services. PersistentFS appears to be free, while Elastic Drive is a bit expensive. However both allow you to use Amazon’s S3 services as the persistent storage. So the setup would be:
    Amazon EC2 would have the system image with PersistentFS installed. Data would then be stored to your Amazon S3 account.

As for the licenses, if you only have 1 instance of your image running, this won’t be an issue. However if you want to have multiple instances running, you have a few options.

  1. Leave the client licenses empty on your image. Then after the image starts up, you can connect to the servoy-admin page on each instance and enter your license codes. But this goes back to my previous question about persistent storage…what property file does this get written to?
  2. Just have multiple images, each image with its own license codes.

Finally, I took a look a pricing. We now know that to host with Amazon requires EC2 + S3. So, they have a calculator at http://calculator.s3.amazonaws.com/calc5.html . I filled out some specs and you can see the results below. The EC2 data transfer cost is really the killer. I set it at 2,000 GB, which is about what you average hosting provider provides per month. As you can see with the attached images, the price came out to about $1,000 per month. I personally haven’t every monitored the network usage in and out of a Servoy server, so maybe one of the Servoy hosting providers or other users can suggest how many GB per month of usage is actually needed.

Also some other options for cloud computing:

http://www.gogrid.com

They have a comparison with Amazon’s service at http://www.gogrid.com/pricing/compare.php

Also

http://flexiscale.com/

http://www.servepath.com/dedicated-servers/grid-servers/index.htm

http://www.mosso.com/index.jsp

http://www.mediatemple.net/webhosting/gs/

http://www.3tera.com/

Some have fixed IPs, and permanent storage solving one of the problems raised above. I haven’t looked in detail on any of these yet, just getting a feel for the range on offer.

There’s an overview at
http://www.johnmwillis.com/redmonk/demystifying-clouds/

Ask Amazon and you shall receive – look what was announced today:

Dear Amazon EC2 Developer,

This is a quick note to let you know about some exciting changes with Amazon EC2. We are happy to announce two significant new features - Elastic IP addresses and Availability Zones - which help you to run reliable web sites and other applications within Amazon EC2.

Elastic IP Addresses are static IP addresses designed for dynamic cloud computing, and now make it easy to host web sites, web services and other online applications in Amazon EC2. Elastic IP addresses are associated with your AWS account, not with your instances, and can be programmatically mapped to any of your instances. This allows you to easily recover from instance and other failures while presenting your users with a static IP address.

Availability Zones give you the ability to easily and inexpensively operate a highly available internet application. Each Amazon EC2 Availability Zone is a distinct location that is engineered to be insulated from failures in other Availability Zones. Previously, only very large companies had the scale to be able to distribute an application across multiple locations, but now it is as easy as changing a parameter in an API call. You can choose to run your application across multiple Availability Zones to be prepared for unexpected events such as power failures or network connectivity issues, or you can place instances in the same Availability Zone to take advantage of free data transfer and the lowest latency communication.

With these two new features, it now easier than ever for you to isolate your application from common failure scenarios and host high availability web sites in Amazon EC2.

Are any Servoy developers now using Amazon EC2. If so, how is it working for you?

Dean Westover
Choices Software, Inc.