Case Study: Lock Up Your AMIs

Excelsior JET, Amazon Web Services, and Apache Tomcat Case Study

By: Marc Whitlow, President & CEO
Colabrativ, Inc.
January 2012

image

Colabrativ, Inc. is a startup software company providing enterprise solutions for research documentation and project management, and providing biomedical research consulting services. Our mission is to enable better R&D project management decisions by improving experimental information retention, and to increase researcher productivity by reducing repetitive processes.

A research organization's experiment records are the foundation of its intellectual property, and, as such, must be stored in a way that allows the research organization to maintain control over these records. In order to make it as easy as possible for organizations interested in trying our enterprise experiment documentation system or electronic notebook (ELN), iExperiment, we wanted to create a public intellectual property protected Amazon Machine Image (AMI). With this setup, a group can easily start an Amazon EC2 instance with iExperiment and its database already installed. This allows the organization to maintain control over their records, and it can be done completely independently of Colabrativ. An interested party only needs to contact us when the 61-day trial license has expired.

Enterprise Electronic Notebook, iExperiment, Public Machine Image on the Amazon Web Services (AWS) Management Console - US West - Launch Instance Wizard - Community AMIs.

iExperiment's Public Amazon Machine Image under Community AMIs in the Amazon Web Services (AWS) Management Console's Launch Instance Wizard.

iExperiment is built on Web 2.0 technology (Java, MySQL and Google's Web Toolkit running on Apache Tomcat 6). Thus deploying a standard Java Archive on a public AMI running Tomcat would not meet our intellectual property protection needs. After a fair amount of searching, we found Excelsior through a blog post by Dmitry Leskov. It was the only solution we found that met our requirement of protecting a Java-based Tomcat-deployed enterprise application.

We requested and downloaded the free Excelsior JET Evaluation Package of version 7.6. At that time, all of our servers were being hosted by other organizations, e.g. Amazon Web Services. We initially tried Excelsior JET on Amazon Web Services, trying both Basic 32-bit Linux and Redhat 6.1 EC2 instances, and attempted to run Excelsior JET remotely, but the use of xterm was frustratingly slow. It takes a little over two hours to create iExperiment's binary executables using Excelsior JET. In the end, we purchased a small Linux computer and installed the 64 bit Ubuntu Server 11.10. (Although the Excelsior JET for Linux system requirements call for kernel 2.6.x, and Ubuntu Server 11.10 runs kernel 3.0.0, this did not seem to be an issue.) Throughout this process, the Excelsior Java Team and Dmitry Leskov were extremely helpful in answering our questions as we worked our way through various issues.

The primary change we needed to make to the iExperiment deployment configuration, in order to use the binary executables created by Excelsior JET, was to move the user configurable files outside of the application. For example we had to move the properties files out of the application/WEB-INF/classes to an iExperiment directory (/var/local/iexperiment/properties).

One Excelsior JET option we did not utilize in our 61-day evaluation of iExperiment was the ability to limit how long the application will run. We want the application to run in a limited manner after the 61-day evaluation is over. In particular, we want the group evaluating iExperiment to have access to the experimental information that they put into the application.

In summary, we have been able to successfully protect our intellectual property in our enterprise application iExperiment in a public Amazon Machine Image, allowing groups interested in valuating iExperiment to quickly get up and running with it on Amazon Web Services.

For more information on running your Tomcat Web apps in Amazon EC2, consult our “Cat in the Cloud” article series: