My concern has always been, ruby (or any other complex application) is going to compile differently on like but different systems.
Over long periods of time I'd be concerned that I could never recreate the 'same' Ruby 1.9.2 installation using RVM.
How can you address the concern of small changes being introduced when compiling against slightly different versions of development and runtime libraries?
Understood, however AWS manages the association to block level storage, as well as the performance tuning. You can still operate with ephemeral compute decoupled from storage.
EBS performance is notoriously variable by orders of magnitude. Amazon is working on this, however my personal belief is that using block storage creates an undesirable link between your storage and compute layers. Using S3, RDS or another NoSQL solution is a far more modular approach.
That being said, all apps are different and some may need block storage. I'm not saying it should not be used, however when making that decision the relation and hard dependencies created should be understood.
Given my experience, you are advocating way to much reliance on EBS. The nature of block storage makes it a poor choice for cloud attached storage.
Apps should be designed for redeployment quickly via configuraiton management. Persistent data should be stored to S3 or RDS, only use EBS as a last resort.
Moving from a VPS to EC2 is more than a fork lift migration, but should be viewed as an application redesign.
Agreed, however I've been feeling for a while that Red Hat is becoming the new Solaris. Everything takes twice as long and is a couple revs out of date when compared to other distros.
I've been struggling to find the value in their services to justify this trade off.
There is a benefit to splitting concerns. Though I never plan it, over the years I make changes to both DNS and registration for my domains. It always goes smoother when you can update them independently.
Over long periods of time I'd be concerned that I could never recreate the 'same' Ruby 1.9.2 installation using RVM.
How can you address the concern of small changes being introduced when compiling against slightly different versions of development and runtime libraries?