Dedicated Server vs. Cloud Server – Which One Would I Pick?
Still, the time came when had to ask myself: "dedicated server or cloud server?"
Throughout this text, I will do my best to explain everything about this topic. I'll go into what the two types of servers are, what they offer, what they lack, and how it worked for me and might work for anyone else.
Without further ado, let's get started.
What is a Dedicated Server?
A server is also known as "dedicated hosting service" or "managed hosting service." As a client, I can lease or buy a whole server and not share it with anyone. Clients that use dedicated servers are usually large companies, organizations, and businesses. Typically, they choose to buy dedicated servers for several reasons. These include high levels of security, e-mail stability, and control, as well as higher server capacity. I will talk more about these, as well as other benefits later in the text.
What is a Cloud Server?
A cloud server functions in almost the same way as a dedicated server. In short, I can get the same level of security, control, and performance as I would on a dedicated or even a shared server. However, there is one key difference. Cloud servers live up to their name regarding where they are.
In other words, they don't exist on one physical piece of hardware. They are instead hosted in a virtual environment, which a cloud hosting provider manages. I can get a cloud server and pay for the precise amount of space I need. Moreover, I can also scale my resources in any way, depending only on what I need them for. Of course, there are more benefits to owning a cloud server, and all will be listed below.
Dedicated vs. Cloud -- What They Offer
There are a few categories which should be taken into consideration. When I was buying server space, I had several key ones in mind. I focused on:
- The price
So let's go over them, one by one.
I'm a private user, but even if I were a small business, I'd say that dedicated servers cost quite a bit. For example, a typical dedicated server can cost up to $1,000, and I've seen even more expensive ones than that. Naturally, I could have gone the cheaper route, with $100 or even $50 per package. However, experience has taught me that, indeed, you get what you pay for. Configurations for dedicated servers under $100 are rarely useful for what a client needs. Not to mention that I might also pay for what I don't use, i.e., excess space and config material.
One thing where a cloud server has the edge over a dedicated one is the price. I never pay for more than what I need. To put it differently, I only pay for the storage and the time I use it, nothing else. There is a minimum billing, of course, and it usually starts at around \$50. The great thing is the fact that there's no upper limit. I pay as much as I can use, and I use as much as I see fit. There are no caps or anything like you would have with dedicated servers.
Cloud servers are better than dedicated servers when it comes to the pricing. There is no need to pay for space and storage you don't use or need.
I will say this right now -- both servers perform well in terms of security. Or rather, there isn't a whole lot of difference between them in this area. In case I get a DDOS attack, cloud is probably better. It's unlikely the provider will take care of my one server in case of a dedicated service.
In all other cases it's irrelevant whether it's a separate physical server or a cloud node.
Another great feature is that I get to have control over all of my data. A hosting service gives the client, i.e., me, full access to manipulate my webspace. As such, I have a better chance of protecting my digital property.
In this regard, dedicated servers might have a very slight edge over cloud servers, if only because they're more reliable since they exist in physical hardware. However, cloud servers have better monitoring, alert systems, and customer support. Naturally, these will cost a bit more to get right.
Both dedicated servers and cloud servers are more or less secure in the same way, with minor differences here and there.
If a client properly configures their dedicated server, it can be quite powerful. In fact, one such server that uses RAID10 can outperform most cloud servers for a fraction of the cost. And considering how most cloud servers are on shared platforms, dedicated servers are more stable and work with fewer hiccoughs.
However, they do have one issue where cloud servers beat them. This is what users like to call "dirty instances." For example, if I use a dedicated server for a long time, it will work more slowly. And this slow operation happens because of temporary program files clutter. I then have to physically remove these files, which will further slow my process down.
As mentioned above, dedicated servers have problems with dirty instances. Not cloud servers, though. When I run into a dirty instance, all I have to do is use the toolset the server offers and move onto a new, "clean" instance. This way I can continue to work with optimal speeds and clean up the dirty instance later.
However, there is one critical area where a cloud server just doesn't work as well as a dedicated one. With cloud servers, disk I/O can be somewhat unpredictable. Most cloud servers share their network and storage with multiple clients. So if one client sends a lot of write requests to the server's storage array, everyone faces slower runtime. On top of that, I/O problems cannot be solved within the framework of cloud servers, nor can users scale it down.
Even with a few issues, dedicated servers perform better than cloud servers. They are more stable and more efficient technologies.
Regarding storage, a dedicated server will always have limits. This type of server will only have a limited number of drive bays or DAS arrays. You can add more storage, but just if the bays are open. For me to have more storage, I would have to have a multi-hub setup, a good RAID controller, memory modules or batteries that work well with the server, and an underlying LVM file system.
Processing-wise, it doesn't get better. I need a maintenance window just to change processors. For more processing, I would need to move the whole page to a different dedicated server. Another solution would be to network the entire thing with an additional server and manage the growth of the platform.
Unlike dedicated servers, cloud servers have almost unlimited storage. In fact, I can procure additional space without directly interacting with the server. Doing so, I will experience precisely zero downtime. A cloud server can be beneficial to high-profile products, as well as unproven ones that need scalability, and need it now.
Processing, on the other hand, can be tricky. I can only get as much processing as the provider gives me. Naturally, I can provision more cores, but this has limitations as well. Most of these limitations are based on occupancy and how many resources there are on the node. Large-scale hosts inside of a cloud space can be severely limited that way.
Another downside to cloud servers is that you cannot scale applications nor operations, just resources. Most options that I get with a cloud server in this regard, like CPU/RAM increase or dedicated database inclusion, I already have with dedicated servers. Ultimately, I might just optimize my dedicated server and fix bottlenecks to scale everything properly instead of going for a cloud server. Once more it comes down to I/O, and as I've explained earlier, you cannot scale I/O in cloud servers.
Both types of servers have severe issues with scalability, and it really depends on what the user wants it for. Cloud servers seem to perform better on a few fronts. However, the issues with I/O can make them perform worse than dedicated servers.
Most data I use on a dedicated server, I will store and process on the spot. What does this mean? That means that if a request is made, the server faces a minimal delay when getting and processing information. If I were into heavy computing or dealing with frequent financial transactions, I want every millisecond to count. Or rather, every microsecond. The best solution for that has to be a dedicated server, where I can process data right there before me in a short amount of time.
Speed is something a cloud server needs. Most of the time, if I want to access data via a cloud server, I have to do it from the storage area network, or SAN. So if I make a request, it must go to the backend infrastructure. And once it's there, it undergoes processing. But it doesn't stop there. When it comes back, the hypervisor still has to route it to the required processor, and only THEN can I use it. All of this makes data speed...well, slow. In other words, not something a user dealing with heavy computing wants out of a server.
Data travels faster through dedicated servers. I can process data on the spot, and it can move around with little to no delay. Cloud servers make the data travel to and from the SAN, which takes up additional time.
Regarding reliability, dedicated servers have their flaws. The one advantage I found with cloud servers that helps dramatically is how easy it is for me to migrate my entire webpage somewhere else in case of a crash. That isn't the case with dedicated servers. If I face a crash, I cannot really back up my data. In other words, when the server goes, everything goes.
Naturally, I can repair the whole thing and restart it, but that takes time and money. Not to mention that I don't get said time and money back after getting the server back in order.
A few more issues are there when it comes to tools and compartmentalizing. Yes, I can compartmentalize my resources on a dedicated server, but again -- that costs money. Also, if I want to scale, provision or manage my resources, I have to wait for vendor-led development.
Cloud servers tend to be more reliable overall, despite the I/O issues. If a server crashes, the cloud provides more space to relocate data and start over. Not to mention that my page will still function, although with some small issues. However, I would rather have minor slowdowns than to reboot the whole server when it crashes.
Compartmentalizing is cheaper and faster with cloud servers, too. Not to mention easier. On top of that, I can have access to APIs which the local cloud community runs. These APIs can help me with management, provisioning, and automatic scaling. In short, anything I plan on doing with my server is easier and faster on a cloud server.
Despite their flaws, cloud servers are often more reliable than dedicated servers. They run better, have more access to tools, and don't suffer as much during a crash due to being on the cloud. Dedicated servers don't have the same benefits. Also, when they crash, I lose time and money just getting them back up.
Which One Should I Choose?
I've used both types of servers before, and can safely say that they're both good in their own way. In the end, it comes down to what a client wants from his website. If what they need is a cheap, reliable, and simple solution, cloud servers are the way to go. On the other hand, dedicated servers will prove great for big businesses and organizations. They are more stable, run data faster, and perform better.