Wednesday, April 13, 2011

nice AWS!

I spent time over the last several days setting up a free amazon web services account, and manged to deploy a simple openId helper service that I've been working on the last couple weeks. I couldn't be happier with AWS. I have a glassfish app server running custom java webapp online for free rather than paying between $50 and $100 a month to some hosting provider. If people actually start using my apps, then I'll just scale up my AWS instance, and start paying Amazon for the resources I use. That's just what I need.

The AWS web console is very to use; I was able to get up running with an Amazon Linux AMI backed by an EBS disk by just following the instructions in the "getting started" guide. I'm new to AWS, but I've already picked up a few tricks.

  • "Terminating" an EC2 instance not only shuts down the server - it also deletes the instance and its data - even an EBS backed instance. Just stop (don't terminate) an EBS AMI if you want to be able to start it back up again.
  • This bLog has a nice overview of how to register the AWS security keys with the Putty ssh client for Windows.
  • The public DNS name on a load balancer persists, but the public DNS name on an EC2 instance is reset after reboot. A good way to publish a service is to deploy it behind a load balancer, then map a DNS C-record to the load-balancer's public DNS name. You can do the same thing with an "elastic IP", but I don't think the AWS free service tier includes elastic IPs.

I'm also really happy with my experience with openId. The littleId code includes a simple openId consumer I wrote with the very nice openid4java library, and supporting javascript, PHP, and scala/java client libraries. The littleId openId consumer can run in the same java webapp that requires authentication, or the webapp can access littleId as a simple web service. In fact, a webapp can just use as its littleId service provider.

The littleId client API includes support for javascript, java, scala, and a little PHP, and should be easy to port to other languages. The javascript code manages openId popup-authentication windows in the browser. The java client code includes JAAS integration, and a simple LoginServlet and request-filter that easily integrate into a java .war webapp, and the PHP code is currently just a single-method class with which a PHP client can verify the credentials delivered by littleId's openId consumer. There's a littleId demo online that might help show what I'm talking about.

I'm not sure how much that all makes sense, but I'm all set to write webapps that authenticate with Google and Yahoo openId credentials, plus there's a small chance other developers might find the littleId service useful. It would be great to get a little traffic to, and setup the site with adwords or whatever to make a few bucks!

I hope to make the littleId service more useful to a developer compared to just coding an openId consumer directly by integrating support for and Facebook connect authentication. I also plan to setup a workflow for authentication by non-web GUI clients. We'll see how long it takes me to get around to that!

Finally, is it just me, or is iTunes unstable on Windows 7 ?

No comments: