The question “I am already running my application in a Datacenter and paying an amount per month, how cost effective can we be after moving to cloud?” is a real nightmare for the solution providers. Which ever is the cloud provider, they will try to convince that there will be enough cost reduction.
Indeed is there any cost reduction ? The short answer is “No”, where as the long answer is “Maybe if you can make some changes in the application, if you can make the application adapt to the usage pattern”.
The public cloud providers, when pricing comes, are no different any others who provide the pay-as-you-go model. They will never let us compare the pricing, will confuse us with different pattern names and package configurations. Even exactly similar services will have entirely different packaging structure.
So then how will you compare ?
1. Define your application requirements
2. Use estimation tools by each of the providers to arrive at a basic pricing for each provider.
3. Do benchmarks with trial accounts on each of the providers.
4. Decide with whom you need to go.
So eventually how do you reduce the “recurring” costs ?
Rebuild the parts of your applcation that can be handled by managed services, which has no provisioning cost which most of the cloud providers do have. Make tweaks such that your application instance does not need to write to the instance store. Use block stores for files or nework mountable shared drives. Shrink the application server to a size where it can handle the lean period usage. Configure horizonal scaling of application servers, use biddable resources whereever available.
Its tough to tear down concepts and alreay learned database structuring. But the most optimized away would be to define, design, develop and deploy on a cloud platform without provisioning dedicated applcation servers. There is one issue behind this, that you tend to be bitten by the vendor lock down, but that is something that should be dealt with.