I am considering hosting a typical Java web application on AWS and also the new Elastic Beanstalk (http://aws.amazon . com.com/elasticbeanstalk/) appears to possess the majority of what we should want. The main one factor I can not determine is how you can do distributed caching. It appears that AWS does not allow multicast discovery of recent nodes, so I am unsure how new nodes began through the auto-scaling process ought to be built-into a current distributed cache. Any suggestions / guidelines appreciated.
Update: Ideally this is a cache close to each application server instance. Best situation scenario will be a hibernate level 2 cache config for something similar to ehcache or terracota.
Here's a number of my thought:
Suppose you've distributed cacheing instance for example memcached running in certain EC2 instances and you apply the Elastic IP from AWS to map to those instances. As Elastic IP is kind of static Ip, you can now pre-configure your brand-new web application instances to discover the memcached istanced with the memcached IP
Throughout auto-scaling, now you'll be able to locate your memcached servers.
Another path to go lower today (after 2011-08-23) is by using Amazon . com ElastiCache that is protocol-compliant with Memcached and runs within the cloud for you personally. Causes it to be simple to put things into an in-memory cache.