Resin Cloud deployment with Amazon

From Resin 3.0

Revision as of 23:21, 25 November 2011 by Rickhigh (Talk | contribs)
Jump to: navigation, search

This tutorial is going to cover the basics of using Resin with Amazon Web Services for cloud deployment. If you are new to cloud computing and IaaS, follow along and you will soon be deploying Java web applications in the cloud. You wil create an EC2 instance. You will download and install Resin on Ubuntu on a local machine. You will install Resin on an Amazon Linux AMI instance (EC2 instance). You will use Roo to create a simple application and deploy it.

We use Roo because Spring is fairly widely used, and Roo is a quick way to generate a sample app. Future tutorials will use other common Java tools as well as show you how to configure and manage a complete Resin cluster. Think of this as the first tutorial in a series of tutorials.

For this tutorial you will need Resin 4.0.24 or later. Check back periodically because as we are going to expand the tutorial and improve Resin's support of cloud deployments. The Resin engineering team plans on improving cloud support continuously.

Many of the steps in this tutorial would be similar even if you were using Eucalyptus, CloudStack with CloudBridge, RightScale myCloud or even OpenNebula this guide should help you along as they all support the Amazon EC2 REST APIs. Also any cloud computing environment (private or public, on premises or hosted) will have similar characteristics. Thus even if you are using a private cloud using OpenStack like Project Olympus, the principles will be the same. In fact even using remote servers deployed in a datacenter or virtualized servers with Xen Server, Xen Cloud or VMWare vSphere the steps will be very similar.


For this tutorial we expect you are familiar with starting, and stoping Amazon WS instances. If you are not, go through this tutorial from Amazon WS. You will need an Amazon WS account. Amazon WS allows you to have free tier so you can learn Amazon WS (EC2, S3, Elastic Load Balancer, Block Storage, SimpleDB, Simple Queue Service, Simple Notification Service).


Fire up an Amazon Instance

Fire up an Amazon Instance using Amazon Linux (basically CentOS 5.4). Then install Resin as follows using RPM:


$ sudo rpm --import http://caucho.com/download/rpm/RPM-GPG-KEY-caucho
$ sudo yum install http://caucho.com/download/rpm/4.0.24/x86_64/resin-pro-4.0.24-1.x86_64.rpm


Install Resin on a Local Box

Install Resin locally so you test locally and deploy. Feel free to install it on any supported OS.


Add Caucho's Debian repository to your system's repositories to use automated update tools like Synaptic and apt-get. To do this, add the following line to your /etc/apt/sources.list

deb http://caucho.com/download/debian unstable multiverse


Then install Resin as follows:

apt-get update
apt-get install resin-pro

It is a good idea to make sure the version you install on Amazon AMI matches the version you install locally.

You can see that Resin is installed as follows:

$ ls /etc/resin
app-default.xml  local.d  resin.properties  resin.xml

$ ls /var/www/
doc  licenses  log  resin-data  watchdog-data  webapps

$ ls /etc/init.d/resin
/etc/init.d/resin

$ ls -l /usr/local/share/resin
lrwxrwxrwx 1 root root 16 2011-11-18 09:03 /usr/local/share/resin -> resin-pro-4.0.24


Also at this point, Resin should be running as well, and you can verify this with resinctl status:

$ resinctl status
Resin/4.0.24 status for watchdog at 127.0.0.1:6600

watchdog:
  watchdog-pid: 7383

server 'app-0' : ACTIVE
  password: missing
  watchdog-user: root
  user: www-data(www-data)
  root: /var/www
  conf: /etc/resin/resin.xml
  pid: 7590
  uptime: 0 days 00h19

Install Spring Roo

Download and install Spring Roo using directions at the Spring Roo site.

Personal tools