If you haven't already launched a Linux server in the cloud, this might be the perfect time. Why?
- because you can set one up in a matter of minutes
- because you have lots of choices on what distribution you elect to use
- because you just might find that a Linux servers in the cloud provide you with a very convenient way to work with commands and apps that you might not have time or opportunity to try out at work
- because you can get a lot of value of out a cloud-based Unix system at a surprisingly reasonable cost, especially if you're new to the scene (cloud providers seem to love the newbies).
- and because experience in setting up and managing Linux servers in the cloud is likely to put a very colorful feather in your IT cap
Just considering Amazon's "free tier" deal for new cloud customers, you're likely to be amazed at what you can set up and use. In your first 12 months with EC2, you get:
- 750 hours of EC2 running a Linux, RHEL, or SLES t2.micro instance
- 750 hours of EC2 running a Microsoft Windows Server t2.micro instance
- 750 hours of Elastic Load Balancing plus 15 GB data processing
- 30 GB of Amazon Elastic Block Storage in any combination of General Purpose (SSD) or Magnetic, plus 2 million I/Os (with Magnetic) and 1 GB of snapshot storage
- 15 GB of bandwidth aggregated across all AWS services
- 1 GB of Regional Data Transfer
Many other cloud providers also provide special deals for new customers. As examples, you can get:
- a free virtual server for one month at Softlayer
- a free 30 day trial at CloudLinux
- free micro instances for a year at Turnkey
- a free seven day trial even without supplying your credit card number at CloudSigma
And, if you're a student, you can get free servers at YellowCircle. See http://www.yellowcircle.net
There are many ways to get started with Linux in the cloud that involve little or no investment and many different cloud providers to show you the way. Yeah, they won't all show up in Gartner's Magic Quadrant for PaaS reports, but they'll give you a chance to get started in the cloud and play with a variety of Linux systems and tools. And, with just a little care, you can get your Linux cloud experience for a lot less than you'd spend going out to lunch once a week.
Now, before I go any further with this, I should say that LaaS (Linux as a Service) is really not one of the acknowledged ?aaS acronyms. Linux servers in the cloud are generally considered PaaS (platform as a service) or IaaS (infrastructure as a service) offerings depending on how much control you need to exert over their configuration (the more you have to do, the more likely they're IaaS). The distinction may not matter unless you're setting up multiple systems in the cloud that need to interract with each other. In fact, Amazon doesn't even use these terms to describe its EC2 offerings.
So, what exactly is EC2?
EC2 is one of the terms you're going to hear a lot when you start moving into the cloud. EC2 is an offering from Amazon. The acronym stands for "elastic compute cloud" and the term is meant to convey how easily you can configure, control, and resize the systems you set up. You can literally launch a server (an "instance") in a couple of minutes (less than one minute once you've become used to the process) and increase or decrease the capacity of your servers as needed. That's, of course, where the "elasticity" comes in.
Linux "instances" (the term Amazon likes to use) in the cloud provide a great way to practice your Linux skills. They can be set up as development platforms to test your apps and provide a way to judge performance of those apps on systems of varying capacity. They can be set up as servers to practice your sysadmins skills or to work with tools such as MySQL or PostgreSQL. They can make it easier for you to learn a new programming or scripting language. And you can set up your server in the cloud and have your projects accessible from wherever you happen to be -- at home, in your office, or on the road.
Important considerations when looking into setting up a cloud-based Linux server include:
- the cost
- setup time
- how difficult the systems are to configure and manage
- avoiding lock-in (you should always be able to move your content to another cloud provider)
- and, as you get more seriously involved in your cloud endeavors, the security of your servers and your data
Amazon's free tier is certainly a big winner when it comes to getting a lot of server usage for next to nothing ("next to" because you could exceed the usage limits). To help you determine up front what your costs are likely to be beyond the free tier, Amazon provides a cost estimator that you can use to gauge what you'll be spending. You can terminate (basically delete) an instance -- thus avoiding charges -- if you're not going to need it for a long period of time and don't mind starting again from scratch when you do. The services are only likely to be costly if you configure a large high-end server and/or configure a lot of storage.
For most, if not all, cloud providers, you will pay for the resources that you consume. The prices are usually based on a per hour charge rounded up. But the per hour charges will generally be very low. A t2.micro system at Amazon, for example, will run as low as $.013 per hour. That's only about $2.18 a week and less than $10/month. The most modest cloud-based system at Google is a similar $.015 per hour. Of course, if you're reading this column well past Summer 2015, these prices may have changed a bit, but I suspect they're going to remain very appealing for quite a long time.
Amazon also provides other ways to reduce costs, claiming that you can save as much as 90% by bidding on otherwise unused EC2 instances.
If there's any area in which "on premises" servers are significantly cheaper, it's probably in the storage area. If your server needs a 500 GB disk, you'll probably find that acquiring and attaching one to your on premises server is going to be quite a bit cheaper than paying for the same amount of storage in the cloud. Then again, the cloud server will likely provide a lot of built-in redundancy which you may or may not be able to provide for your on-site systems.
Still, it's the flexibility to expand and contract storage as needed that really elevates the cloud's offerings. It's much harder to resize your data storage on premises. Even if you have a hefty SAN or NAS, expanding storage for a particular server is more time consuming than making those kind of changes in an environment set up to allow these kind of changes to occur all the time.
Setting up a Linux server in the cloud generally involves selecting the OS and size of system you want and launching it. That plus a little time configuring how you'll connect. It's that quick. A couple of minutes max. You might then have to wait briefly while the system is set up, but you'll soon be able to connect to your new server and start working.
Configuring the Server
For Amazon, you can quickly set up the keys you will need to connect to your server and configure PuTTY to allow you to log in. If you'll be logging in from a fixed IP or a known subnet, you can configure the server to only accept connections from those addresses. You can upload content using files using tools such as scp or FileZilla. This YouTube presentation does a very nice walkthrough that includes using FileZilla with Amazon EC2.
You can also get a lot of very helpful hints on how to work in the cloud through these tips pages from Bristle Software:
Tips from Fred Stluka who said "I moved all of my servers and all of my clients' servers
to AWS in 2009 and have never looked back" carry a lot of weight!
As long as you use fairly ubiquitous tools, you won't have much of a problem. Some people prefer not to use Amazon's Linux AMI (a Linux image provided, supported and maintained by Amazon Web Services for EC2) because this particular image is only available on Amazon, but whether or not you want to avoid it depends on what you're planning on doing with your Linux cloud server. It has a number of considerable advantages as it comes with many packages and tools that make it especially easy to use and Amazon Web Services provides ongoing security and maintenance updates to all instances using this image.
Security is especially critical if you're putting proprietary data in the cloud, but there are numerous ways to enhance the security of your cloud services. As mentioned already, you can restrict access to particular IP addresses. You can also encrypt connections and storage volumes.
In fact, security as a reason to not move services to the cloud is rapidly and seriously losing its footing. Companies like Amazon now go to great lengths to educate their customers on their security controls. In fact, it turns out that security in the cloud is often far better than many of us can manage on internal systems. And cloud service uptime, with its built-in redundancies is incredible.
AWS availability zones (hosting in multiple locations world-wide) involve multiple data centers located in separate buildings, on separate power grids, using separate generators, and separate disaster zones -- yet all within a particular region such as US East. For most of us, that level of business continuity preparation is well beyond our reach.
Why the Cloud?
It's not just for those of us wanting to set up a personal system in the cloud. Linux cloud offerings also provide many small and medium sized businesses with all the computing power they need. There are quite a few serious and highly successful businesses today that do all of their work using servers in the cloud. One such company is AppMakr (see https://www.appmakr.com/). These cloud-based companies find that they can hire extremely talented workers regardless of where those individuals physically reside. Clouds are great for creating inexpensive systems that you use from anywhere, but they're also great for serious large scale development and creating a working environment that appeals to talented creative people because of the flexibility they provide -- not just to the servers, but to the people who work with them.
Popular Linux servers in the cloud include Ubuntu, CentOS, Suse Linux Enterprise Server and openSuse. Amazon also offers its AMI (an EBS-backed, AWS-supported image) and various Windows cloud servers are also available.
Maybe it's time for you to spend your $10/month and see what it's like.