This is a Canonical Question about Cloud Hosting
When deploying my application to the Internet:
- Should I chose a dedicated server, cloud hosting or a VPS?
- What factors should I consider when choosing?
We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.
This question seems to get asked a lot - usually with specific reference to Amazon's EC2 - but I think the general ideas still apply here.
Firstly, see this question and this question for an advantages/disadvantages comparison of cloud vs. vps/dedicated.
As to your specific scenario, you haven't given enough information to provide a definitive answer. All the points you have mentioned can be successfully implemented in the cloud (and really shouldn't be any more complicated than if you were using a dedicated server).
I will provide specific reference to Amazon's EC2 cloud - since that is what I am familiar with, but the concepts should generalize to other clouds as well.
The bottom line is going to come down to evaluate your resource requirements and then compare the cost of running dedicated vs. in the cloud. If you are just starting out, with few (couple thousand?) users and are not running computationally intensive scripts I would suggest that the cloud is likely less expensive.
To address a few common points:
End result: estimate your resource consumption and determine the minimum plans required to meet those needs on various platforms. Then estimate your likely growth over the next few months/year, and decide how you would go about scaling up (would you start small and then upgrade, etc). Consider the difficulty in doing so on a dedicated server vs. on a cloud (as well as the projected costs on each).
Typically, for an 'average' application just starting out I would recommend 'the cloud'. On the other hand, if your application(s) are particularly resource intensive (especially bandwidth, but also CPU, disk I/O, memory, storage) then a dedicate package often works out better. The real advantage of the cloud is the ability to start small and easily scale up - the idea of pay for what you use, not what you think you might need (which only works out good if you need a lot less than you 'might need'). Even if you don't end up going with Amazon's EC2 - I'd start by looking at it. It is well known (meaning lots of people use it = easily available help), fairly mature (as far as cloud computing goes), and fairly inexpensive - it forms a good baseline to which you can compare other services. Rackspace, Joyent, GoGrid, and Linode are other popular choices.
Depending on where you live, certain legal aspects will be a relevant issue that could be more important than any technical or financial aspect of the decision.
I assume that for dedicated hosting it is more likely that a local company in the users own country is chosen. In this case, the whole operation is subject to only one jurisdiction.
In case of a cloud provider, this is often not the case, especially if you happen to live outside the USA (I am going to assume the provider is an US company). In this case, you have to deal with two jurisdictions, your own countries, and the US one, and this is also true if you choose a non-US tier of the service provider, as the US government considers every asset of a US based company to be subject to US law.
Why could that be a problem?
So, in the end, this might be totally irrelevant in your case or a deal breaker that makes it impossible.