What exactly is the difference between a VPS (Virtual Private Server), a Cloud Server, and a Dedicated Server? I'm having trouble finding a concise explanation that isn't littered with advertising.
Cloud Server vs Virtual Server vs Dedicated Server – Key Differences
clouddedicated-servervirtualizationvps
Related Solutions
Originally posted by cyberx86. Please remove this notice once the post has been cleaned up.
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:
'x services' and 'x cron jobs every 5 min' really don't describe the complexity or resource requirements. Look at your load averages, memory utilization, and bandwidth usage - these will determine whether or not the cloud would be cost effective for you. Typically for an initial setup the cloud offers a low cost, low risk investment, whereas dedicated servers have a higher start-up cost. On the other hand, if you have an application that consumes significant quantities of bandwidth, a dedicated server will probably work out less expensive.
PHP 5 and MySQL are really not significant considerations - cloud platforms allow you to customize everything from the operating system up - which means you will have no issues running either of these. The only consideration comes from the fact that these make for a dynamic application - which requires more processing power. The cloud can handle that, but with cloud computing you pay for what you use - greater processing requirements translate into greater costs. Keep in mind though, that depends on both the number of requests being processed and the complexity of each request. The smallest (EC2) server can easily handle several tens of thousands of Wordpress page requests a day, if reasonably optimized.
Codeigniter is reasonably efficient to my knowledge, but again, it is dependent on what exactly your application does (what kind of resources it requires). A cloud environment will have no problem running a Codeignitor app. In most cases, I would suggest it is less computationally expensive than running WordPress.
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.
Short version:
Dedicated Instances - You pay for the instances, but they get placed on whatever dedicated hardware Amazon decides.
Dedicated Host - You pay for the entire physical server and can, in effect, run instances on it as you please.
Long version:
In both cases, its hardware that only your instances will use. However with dedicated hosts you have even more control than you would with dedicated instances. For example: Requesting a m4.large dedicated instance could end with your instance on a server exactly the size of an m4.large, so it'd be an old machine from years ago. Next time you reboot that instance it could be rebalanced onto new hardware. Maybe you have two dedicated instances that hammer the heck out of the RAM (making something up), they could end up on two different pieces of hardware or the same hardware.
On the flip side with a dedicated hardware, you pay for the hardware much in the same way you could pay for a leased server at a colo. You know exactly what the hardware is, you can run instances on it in the way you choose. You can leave overhead, or not. If you decide that instance X runs on your dedicated hardware, it will always run on that dedicated hardware in the way you've specified.
Best Answer
VPS and Cloud are the same damn thing.
A dedicated server is a physical box sitting in a rack somewhere that is not shared with anyone else, that you can do whatever you want with.