26
Feb

The Story of AWS JAVA SDK and Eucalyptus

Many people have asked this to us, how can I use AWS JAVA SDK with Eucalyptus. In the past we had lot of trouble configuring this , but not anymore.

As you might or might not know, Eucalyptus 3.3.0 is bringing better support for the AWS JAVA SDK and the developers are working hard , that every aspect is covered in some way or the other.

If you want to read more on that, I would recommend the following:

https://github.com/eucalyptus/architecture/wiki/aws_java_sdk-3.3-design
https://github.com/eucalyptus/architecture/wiki/aws_java_sdk-3.3-spec

Those 2 links will give you a decent idea of what is coming in 3.3.0 with regards to AWS JAVA SDK support.

Now on to this blog post, well 3.3.0 is currently under development, the brave hearts can go and grab the source from here https://github.com/eucalyptus/eucalyptus , in the testing branch , lives the bits

If you are not so brave and you are running Eucalyptus 3.1.2 or 3.2.0/3.2.1 well this blog post is for you, because yes, you can use AWS JAVA SDK 1.3.14 against your Eucalyptus private cloud.

I spent considerable time back in July 2012 to figure out what is going on with this thing and I came up with 2 tickets in our bug tracking system which are available here

https://eucalyptus.atlassian.net/browse/EUCA-3001
https://eucalyptus.atlassian.net/browse/EUCA-3003

At that time I wrote some ugly patches , basically removing new stuff and adding back what was there earlier in the AWS JAVA SDK , to make it work with Eucalyptus.

Then recently, I saw 2 commits from Steve Jones one of the CLC developer at Eucalyptus , here to the AWS JAVA SDK

https://github.com/sjones4/aws-sdk-java/commit/88acbcc5d6a5db9a0855fa98de56341bc3772283
https://github.com/sjones4/aws-sdk-java/commit/211e220fede28d4c36d335910e8b86e035f9b931

I decided I will take these 2 commits and apply them to the AWS JAVA SDK version 1.3.14 , which I made to work in July 2012. So I went ahead and reverted the patches I had done and worked on applying the above 2 commits on the version 1.3.14

The code is available here, on my github local fork

https://github.com/jeevanullas/aws-sdk-for-java

And as usual the patch is here

https://github.com/jeevanullas/aws-sdk-for-java/commit/905311ae4d049696baf108aff6e87ddc1eab84ca

Thats about it. For people who would like to build from source , they can clone my fork and build from it, get the JAR file , start playing right away.

For those who do not have much time, I have build the JAR and have uploaded that here

http://jeevanullas.in/tmp/aws-java-sdk-1.3.14.jar

Feel free to grab and use it.

I did try to use the latest version of AWS JAVA SDK but could not make it work with the patch, on Eucalyptus 3.2.0/3.2.1/3.1.2 , so this is the latest version of AWS JAVA SDK, which I know off, that works.

Again don’t think it is end of the road, Eucalyptus 3.3.0 is bringing in better support for AWS JAVA SDK and, I have tried that personally, last known version of SDK I tried was 1.3.26 and it works like a charm, plus 3.3.0 Eucalyptus has got the other cool stuff like ELB/Autoscaling/Cloudwatch, so definitely something forward to look at.

In the blog post to follow up I will try to give few examples of how you can use the AWS JAVA SDK to write code which talks to Eucalyptus, because then we can see how many cool things are in store, so stay tuned and healthy!

  • Qingye Jiang (John)

    Thanks a lot for the pointer to the patched JAR file. I have created a 101 example showing AWS SDK for Java working with Eucalyptus Community Cloud.

    http://www.qyjohn.net/?p=3076