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 the cloud?” is a real nightmare for the solution providers. Whichever 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”, whereas 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 an 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 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 application 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 network mountable shared drives. Shrink the application server to a size where it can handle the lean period usage. Configure horizontal scaling of application servers, use biddable resources wherever available.
It’s tough to tear down concepts and already learned database structuring. But the most optimized away would be to define, design, develop and deploy on a cloud platform without provisioning dedicated application servers. There is one issue behind this, that you tend to be bitten by the vendor lockdown, but that is something that should be dealt with.