Over the years, there has been a lot of mixed information as to what Linux cloud servers actually mean. This article aims to clear the air once and for all with a concise explanation while providing you with a list of Linux cloud server resources from which you can investigate for yourselves.
Yes, the term “Linux cloud server” may seem silly, as it should be defined as a group of servers working together for a common purpose. But the fact is that most people are not aware of this. Therefore this article was written to provide a more accurate outline of what “the cloud” actually is.
What is Linux Cloud Storage?
The term “putting something into the cloud” often confuses people. I’ve seen the definition of cloud hosting evolve into whatever one’s marketing department happens to want it to mean. But at its simplest, storing something in the cloud means you’re storing data on a computer that is not locally available. Okay, cloud computing is actually a bit more complex than that.
In truth, storing data on the cloud means at least one or two of the following are part of the server solution:
- Cloud Storage is best suited towards anyone needing off-site storage for their data.
- Your stored data is stored at a location not local to you. This could be across the street or on the other side of the globe.
- The server instance you’re using to store your data is flexible and scalable. This means that with very little effort, an administrator can remotely resize the storage capacity of a cloud hosting server. Additionally, increasing the cloud host’s processing power is also an option made readily available despite being in a remote location.
- You only pay for what you use. This might mean your cloud hosting service is billed to you only for the time it was used. This service period usually ranges from hourly to monthly pricing.
- Usually, cloud hosting providers offer you far greater reliability and physical data security. This translates to your data being spread out across multiple servers instead of being tied to a single server environment. This storage approach is called logical storage pools and can sometimes span beyond a single physical location.
A common example of Linux-based cloud storage would be to utilize Amazon’s S3 object storage. Accessible from various installable tools and web interfaces, Amazon’s S3 provides its users with the ability to meet the above criteria for Linux-based cloud storage.
Tip: The best way to understand cloud storage is to remember that the data sent to the cloud is usually uploaded and stored in an inactive storage state. Think of this as a remote hard drive where you might back up your data.
What is Linux Cloud Hosting?
Cloud hosting is sometimes referred to as cloud computing. Regardless of the term you prefer, the end result is that this is a cloud server instance used for active data interaction. This means a user can run the Linux cloud host in an active environment instead of a passive one.
When looking for a Linux powered cloud host, you’ll generally find they all have the following things in common:
- Cloud hosting is targeted towards developers and businesses. Unlike cloud storage, hosting is primarily sought out by those looking to develop web applications or to host a website.
- Running a cloud hosting environment requires greater Linux-based computing power than merely storing data.
- Like cloud storage, hosting with a cloud instance allows for a scalable environment that you can grow as needed within the host’s virtual environment. Does a website or project require additional resources? No problem, just scale up the CPU and memory as needed.
A well-known example of cloud hosting is Amazon’s EC2 virtual server. Like Amazon’s storage option, EC2 provides web hosting or web application access from anywhere with an Internet connection.
Tip: Unlike traditional Linux web hosting, a cloud host provides what some refer to as elastic computing. Shared, VPS and dedicated hosting require you to select a set amount of resources ahead of time. Cloud hosting resources can be expanded from a control panel anytime it’s needed.
Cloud Storage Recommendations:
Below are cloud based storage and hosting recommendations. Note, this does not include self-hosted solutions like NextCloud as that would require you to figure out a set remote destination for its installation and files.
|Provider Name||Encryption Offered||Capacity||Linux Desktop Compatible||License|
|Dropbox||Encrypted storage & client-side encryption||Unlimited if Dropbox Business||Linux Client Available||Proprietary|
|Jungle Disk||Encrypted storage & client-side encryption||Unlimited using Amazon S3 or Rackspace||Linux Client Available||Proprietary|
|Tarsnap||Encrypted storage & client-side encryption||Unlimited||Bash Terminal Linux Client Available||BSD License|
|SpiderOak One||Encrypted storage & client-side encryption||Up to 5,000 GB for SpiderOak One or Unlimited for SpiderOak Semaphor||Linux Client Available||Proprietary (GPLv3 for some tools)|
|Google Drive||Encrypted storage & client-side encryption||Up to 30 TB||Insync / overGrive / Gdrive CLI||Proprietary|
Cloud Hosting Recommendations:
|Provider Name||Resources Available||Capacity|
|Digital Ocean||Up to 224 GB of RAM|
Up to 32 Cores CPU
Up to 10 TB Data Transfer
|Up to 500 GB SSD|
(Additional Block Storage up to 1.95 TB)
|Linode||Up to 200 GB of RAM|
Up to 16 Cores CPU
Up to 20 TB Data Transfer
|Up to 1536 GB SSD|
(No visible details on additional block storage)
|Amazon EC2||See Amazon for details||Unlimited|
|Rackspace cloud hosting||See Rackspace for details||See Rackspace for details|
Cloud Server Security Considerations
No matter what cloud backup or hosting solution is selected, the key is to make sure you understand how off-site security works. In the simplest terms possible, once data has been moved away from the original PC, it’s potentially viewable by anyone.
This is less of an issue in LAN-based environments where data isn’t moving beyond the watchful eye of the LAN’s firewall. However, when moving data to and from a cloud server (or cloud instance), it’s critical to know that the transmission of said data is encrypted.
This encryption of data in transit is done in a few different ways:
- SSL – Secure Socket Layer provides a layer of encryption for data communications between a server and a client machine. For websites, it’s a must have as it ensures when you login to a website that your credentials aren’t spilling out to watchful eyes looking to exploit weak sign in accounts. This applies to any site using a login capability, including blogs. You’ll know that SSL is being used effectively when you see the green padlock in your browser followed by https. SSL can be looked at as a secure tunnel between one’s browser and the destination website.
- SSH – This is a secure method remote access another computer or server. For Linux cloud servers, this is useful as it allows the administrator to remotely login to an offsite machine to update, upgrade or otherwise maintain it within a secure tunnel from their original workstation. It’s also common practice to use SSH connections to connect to a remote file system over sFTP. Unlike regular FTP, sFTP provides FTP through an encrypted SSH connection. SSH can be looked at as secure tunnel for remote access.
Tip: What about using a VPN? Historically, a VPN shares similar benefits to SSH in terms of encrypting internet traffic. However, it differs from SSH in that its core purpose is to simply connect a workstation to a private network over a public network, in this case the Internet. This is useful for employees who need to connect to their workplace network while away from the office.
To summarize, SSH is best used for local workstation access to a cloud server, whereas a VPN would best used to connect a local workstation to a private remote network.
Securing data already uploaded to a cloud server is down with Destination of data should also be encrypted. It’s important to note that not all cloud servers do this automatically. While it’s common practice for cloud storage solutions to encrypt your stored data, cloud hosting usually leaves this up to you.
The reason why cloud hosts won’t provide encryption by default is because many of the files on the cloud host are to be read by the public. Those files that are not will be protected through directory permissions set to the correct values:
- Apache users, you can protect a directory’s contents with a htaccess file.
- Nginx users can use the Nginx HttpAuthBasic module.
In both examples, the data isn’t encrypted, rather, only accessible for those with the appropriate authentication.
Cloud servers vs Physical Servers
In the old days, having a server to utilize meant having access to a single physical server. For shared web hosting, this may have meant taking a single machine and sharing its resources among hundreds of people. However, for the lucky few who could afford their own box, the dedicated server meant untapped control and power. If you were hacked or something crashes, odds are it meant the local administrator had a late night ahead of them.
Cloud servers in many ways made things better. Unfortunately, at least in the web development space, they make things a bit more confusing as well. Cloud servers used for storage or backups are almost always cloud servers in the truest sense of the term. The data isn’t centralized and is spread across multiple servers (often across multiple locations).
This isn’t always true with cloud hosting servers. These hosting instances are usually centralized to a single location and sometimes even to a single machine running as a VPS (virtual private server). This means even with backups, if that data center goes up in smoke, your data might as well.
Some cloud hosting providers offset this issue by giving you true root access to the hosting instance. This useful as it allows the administrator of the cloud instance to offload important data to a local destination for additional backup assurance using rsync or a similar option.
So which is better? It doesn’t matter – the keys to remember are as follows:
- Web hosting – Cloud hosting is just fine for web developers and most lower traffic websites. Higher traffic websites however may do better with advanced power and functionality found with a dedicated server.
- Data backup – Cloud storage is a great option. There are providers listed above with Linux desktop support and the prices for managed services are difficult to beat. Obviously, some content is best left out of the cloud, but most of it is just fine, since managed cloud backup services usually encrypt your data anyway.
Whether Linux enthusiasts of the world decide to use or avoid cloud server solutions, one thing is for sure – they’re here to stay and are a growing part of the Linux landscape.