Amazon LightSail Review (or how to create WordPress site on AWS cloud in under 5 minutes)

The following article is a short review of newly launched Amazon Lightsail service. AWS CEO Andy Jassy announced Lightsail IaaS cloud service at Amazon re:invent event on 30th of November...

The following article is a short review of newly launched Amazon Lightsail service. 

Image result for Amazon Lightsail logo

AWS CEO Andy Jassy announced Lightsail IaaS cloud service at Amazon re:invent event on 30th of November 2016, making it one of the newest additions to numerous other web services hosted through AWS cloud offering.

According to Amazon, the premise of Amazon Lightsail is “to let customers to easily fire up a server in the cloud for a low price and hide the complexity of the underlying services being used.” (Miller, 2017). The motto of Lightsail is: “Virtual Private Servers Made Easy!”

The unspoken reason for launching Lightsail service was to curb the providers of cost effective virtual servers. DigitalOcean is one the most dominant companies among the cloud providers that succeeded by modeling their business on offering cheap virtual servers accompanied by the efficient user interface. According to Trends.netcraft.com (2017), DigitalOcean is becoming hugely popular and currently holds the third place in the world ranking of online web-facing servers. According to Forbes (2017), DigitalOcean has an operating income of $718 million on revenues of almost $3 billion.

So, while never officially announced, it is more than likely that Amazon launched the Lightsail mainly to bring in the customers, largely from the group of developers, who tend to prefer deployment of their infrastructure with as little clicks as possible.

Amazon is currently (as of mid-2017) the only provider among the three giants of cloud hosting (Amazon, Microsoft, and Google) that has any service to compete with DigitalOcean.

Amazon Lightsail – Services & Features

Amazon Lightsail can be accessed either through Amazon AWS list of cloud services at https://aws.amazon.com, or directly at its own dedicated web address at https://lightsail.aws.amazon.com.

Testing the service, I could launch a new VPS (Virtual Private Server) within a couple of minutes. The simplicity of the Lightsail service is also the main reason why I decided to select this service to demonstrate how easy it is to host a simple website. Another reason for selecting Amazon Lightsail was its simple to follow documentation.

Figure 1 is my attempt at visually describing the simplicity of creating VPS on Amazon Lightsail. As can be seen from the diagram, the entire process of launching a new VPS is done in 6 simple steps. Upon logging into Amazon Lightsail web management console, the user clicks the ‘create new instance’ button, then follows these six simple steps:

- The region where the server is to be deployed.

- Image to deploy (operating system, application or development stack).

- Monthly cost (server RAM, vCPU, SSD size, and bandwidth).

- Define Firewall rules (which ports are to be opened).

- Setup DNS (domain name that will be associated with the website – optional)

- Assign Static IP address that will remain dedicated to the server.

C:\Users\jaros\AppData\Local\Microsoft\Windows\INetCache\Content.Word\Amazon Lightsail (1).png

Figure 1 - © Jozef Jarosciak (https://drive.google.com/file/d/0Byk4Yve3RK0YdTU5QnZvV084SXc/view?usp=sharing)

As we can see Amazon Lightsail puts together all the necessary services, such as computing engine, SSD storage, DNS, security, bandwidth and is able to do this for a fixed-price.

Step-by-Step Plan for Developing Simple Web Site on Amazon Lightsail

For this part of the article, I look at the simple theoretical scenario in which I have been tasked to create a simple cloud-based website that will allow users of the website to sign up and register for an event. I outline Amazon Lightsail service and explain each of the features required. As part of the process, we can see the overall project implementation plan and how the cloud functionality can be realized by the Amazon Lightsail IaaS platform.

- **Sign up for Amazon Lightsail**

To start with Lightsail, visit https://lightsail.aws.amazon.com and simply log in using your existing credentials (if already a user of Amazon AWS). If the user does not have the credentials, they need to click the register button and will be asked to create an AWS account.

- **Create Instance**

The first time you visit Lightsail management console you will be greeted with an empty screen, simply choose the option to Create Instance (Figure 1).

Figure 1 – LightSail Screenshot © Jozef Jarosciak

- 

Select Instance Location

There are a number of options, but I have decided to choose an AWS Region that is nearest to me, or in other words the one that is closest to my end users of the website. I am in Toronto, Canada, so I have chosen Ohio (us-east-2) region (Figure 2).

Figure 2 – LightSail Screenshot © Jozef Jarosciak

Another reason for this selection is due to a fact, that Ohio is one of the more recently launched Amazon regions and it still has $5/month (free for the first month) VPS servers available.

I am planning to start a single VPS only, however, to protect my server from a failure that could occur in one of the possible locations, I have also selected an option to replicate my instance across one new zone (Figure 2), which adds little more protection and uptime to my VPS. According to Amazon, “Each AWS Region has up to five Availability Zones. We use letters to identify them, such as us-east-2a.” (Lightsail.aws.amazon.com, 2017).

- 

Select the Instance Image

Amazon allows its users to select from three different high-level options; one is to install an Operating System (OS) alone, where the user has (at the time of this article) two choices: Amazon Linux 2016 (RHEL based instance) or Ubuntu Server 16.04 LTS. Another possibility is to select a Development Stack, such as LAMP, Node.js, MEAN, Nginx or Gitlab, all of them are powered by Bitnami (a provider of easy to use cloud images that can be installed on any platform).

The third option and the one I have decided to use is the option to use: Applications because I decided to host my website on a pre-created website CMS platform called: WordPress (Figure 3). Luckily one of the Application options is ‘WordPress powered by Bitnami (CMS/blogs/websites).' Other Application options currently offered are Drupal, Joomla, Magento and Redmine, none of which in my opinion matches the ease of WordPress use. Important to note is, that by default all applications packages currently offered by Amazon Lightsail are by default installed on top of the Ubuntu Server operating system. I am familiar with Ubuntu Linux. However, users more familiar with RHEL or Centos could consider this limitation to be a deterring factor for choosing Lightsail as their cloud host provider.

There is a couple of reasons why I selected WordPress CMS App and OS package. The main reason being that I do not need to know any coding to launch a website. WordPress allows me to do so quickly and effortlessly, with a couple of clicks. Another reason is that WordPress offers many plugins and it is trendy among developers. As a matter of fact, according to WordPress, “WordPress powers 28% of the internet.” (WordPress.com, 2017).

Figure 3 – LightSail Screenshot © Jozef Jarosciak

Optional features in this section of the server configurations are an option to add a shell script that executes as soon as the newly created instance launches for the first time. This option is a good choice for those users who may want to execute certain batch configuration jobs before the first launch. Another option offered by Lightsail is an ability to change the default SSH key pair that is required for SSH connections to the server, such as those through Putty or Kiddy clients. This is not one of the options I decided to use as I am comfortable with the security of SSH key pair generated by Amazon, however for those concerned about security this choice provides a welcome option.

- 

Select Instance Plan (VPS Size and Cost)

Amazon made their price extremely simple. For my website, I have decided to use $5 Lightsail plan (Figure 4), which is currently offered with an option of testing the server free for up to 750 hours (one month).

According to Amazon, “Choose a $5 plan when you launch your first Lightsail server, and we will credit one free month to your account. Data transfer rates refer to data transferred "in" to and "out" of Amazon Lightsail.” (Lightsail.aws.amazon.com, 2017).

The cheapest Lightsail instance, as Amazon refers to their VMs, as we can see costs only $5/month, which is only $0.007 per hour and it comes with 512 MB RAM, 1 vCPU, 20 GB SSD and 1TB of data transfer.

Figure 4 – LightSail Screenshot © Jozef Jarosciak

- 

Name your VPS Instance

All Lightsail instances must be created with unique names, so I have decided to use a descriptive name: “Jozef-WordPress-512MB-Ohio-1” as illustrated in Figure 5. The name suggests that it is my website, running WordPress and that it is running on 512 MB RAM instance, which allows me to quickly recognize the VPS that runs my site (useful when there is more than one server configured in Lightsail console).

Figure 5 – LightSail Screenshot © Jozef Jarosciak

- 

Create Instance

The next step is to press the ‘CREATE’ button, which will start the process of configuring the VPS from the Ubuntu WordPress image we have selected earlier in step 4.

Figure 6 illustrates what happens when the ‘create’ button is pressed. As we can see, Amazon informs us that our instance is currently in the pending status.

Figure 6 – LightSail Screenshot © Jozef Jarosciak

At this point, it will take anywhere between a couple of seconds to a couple of minutes for Amazon to initiate the WordPress image. For the sake of argument, I have decided to measure the exact time it takes to go from pending to the running stage. I expected to wait for couple minutes, however, to my surprise, in exactly 12 seconds I was greeted by the fully running VPS server (Figure 7).

Figure 7 – LightSail Screenshot © Jozef Jarosciak

Clicking on the server name takes me directly to server management page. This is where I can see details such as CPU Utilization, Network In and Out and other useful metrics. This is where I can also stop or reboot my server.

Figure 8 – LightSail Screenshot © Jozef Jarosciak

- 

Configure Firewall

The following configuration is important from the standpoint of security. Figure 9 illustrates the Firewall settings management page that allows me to control which ports are open to the public. Surprisingly Amazon has already automatically pre-configured the ports I was planning to use. To connect to my server over SSH, I needed port 22, and for the website itself, port 80 for web access to my site and port 443 for SSL protected site (would need to be configured separately, not part of this article). According to Lightsail Firewall (2017), Amazon offers a complete list of all Lightsail port settings, application layer protocol types, and transport layer protocol types on their help site.

C:\Users\jaros\AppData\Local\Temp\SNAGHTML10c4fd8d.PNG

Figure 9 – LightSail Screenshot © Jozef Jarosciak

- 

Instance Public IP Address

A public IP address is a very important to note because that is the IP address that is allocated to our Lightsail instance and permits access to it over the Internet. Because our instance is running a web server that needs to be accessible by Internet users, we need to take a note of this public IP address, which is now globally unique to our server instance.

Illustrated in Figure 10 is the public IP address as well as an option to make it static, which essentially means, that the IP address will always remain assigned to our Lightsail Instance.

Figure 10 – LightSail Screenshot © Jozef Jarosciak

- 

Register Domain using Amazon Route 53

Amazon offers the option of assigning a public IP address to a domain name, so the site can be visited by using something else than its hard to remember IP address. This can be done using Amazon Route 53 service, which allows users to register a unique domain and in such way to route the visitors to our Lightsail instance. This option is available right from the Lightsail console and is illustrated in Figure 11.

Figure 11 – LightSail Screenshot © Jozef Jarosciak

- 

Visit WordPress Website

However, due to concerns about the length of this article and cost associated with the creation of domain name at Amazon Route 53, I do not cover details of creating DNS zone and will access WordPress CMS over the public IP address directly instead.

As our public IP address is 18.220.55.225, let’s load the WordPress website in the browser and check if it opens. To do so, we need to point our browser to public IP address of our Lightsail instance: http://18.220.55.225

Figure 12 shows a fully loaded WordPress site. It is amazing, that with just a couple of clicks we have a fully running WordPress website setup, ready to be configured for hosting our event registration form.

Figure 12 – LightSail Screenshot © Jozef Jarosciak

- 

**Configure WordPress **

Now that our WordPress site is running, we can set up the event registration form by using one of the available WordPress form creator plugins. One of such products is called ‘Ninja Forms,' which allows us to create an event registration form within minutes using a simple yet powerful drag-and-drop form creator.

According to its authors “Ninja Forms is the ultimate FREE form creation tool for WordPress. This product is designed for beginners, as quickly and easily design complex forms with absolutely no code. For developers, utilize built-in hooks, filters, and even custom field templates to do whatever you need at any step in the form building or submission using Ninja Forms as a framework.” (Karpenko, 2017)

Figure 13 shows how easy is to use the drag and drop to create an event registration page using free Ninja Forms plugin.

Figure 13 – Ninja Forms Screenshot © Jozef Jarosciak

Conclusion

Just to recap, the main reason why I selected Amazon Lightsail is perfectly captured by the statement from Amazon:

“You get the simplicity of a VPS, backed by the power, reliability, and security of AWS. As your needs grow, you will have the ability to smoothly step outside of the initial boundaries and connect to additional AWS database, messaging, and content distribution services. All in all, Lightsail is the easiest way for you to get started on AWS and jumpstart your cloud projects, while giving you a smooth, clear path into the future.” (Amazon Web Services, 2016)

One and possibly the only issue I have that speaks against Amazon is that while Lightsail is very inexpensive, the current prices are still (as of June 2017) slightly more expensive than correspondingly priced plans that can be obtained from the competitors such as DigitalOcean, Vultr or Linode.

However, regarding easy of use, it is on par or catching up to main competitors, and thus Amazon remains my cloud provider of choice. Additionally, Lightsail is completely backed by Amazon AWS API, accessible through Lightsail CLI and API, which can come handy for situations where the user might need to execute certain actions programmatically.

To conclude this article, I need to say that it took me many times longer to document the process than to actually launch a fully working WordPress server which was effectively done in less than 5 minutes. And that was the main reason why I wanted to illustrate the power of Amazon LightSail IaaS offering.

The fact that LightSail also offer an ability to run VPS with pre-built WordPress, is taking the offering from pure IaaS somewhere in between IaaS and PaaS, because user has the application setup and configured, but is still required to take charge of server management, making it an interesting and time-saving option, but the service is still a lot more IaaS than PaaS.

References

Lisota, K. (2016). Amazon launches Amazon Lightsail with low-cost $5 virtual private servers. [online] GeekWire. Available at: https://www.geekwire.com/2016/amazon-launches-amazon-lightsail-low-cost-5-virtual-private-servers/ [Accessed 28 Jun. 2017].

Amazon Web Services. (2016). Amazon Lightsail – The Power of AWS, the Simplicity of a VPS | Amazon Web Services. [online] Available at: https://aws.amazon.com/blogs/aws/amazon-lightsail-the-power-of-aws-the-simplicity-of-a-vps/ [Accessed 28 Jun. 2017].

Miller, R. (2017). AWS announces virtual private servers starting at $5 a month. [online] TechCrunch. Available at: https://techcrunch.com/2016/11/30/aws-announces-virtual-private-servers-starting-at-5-a-month/ [Accessed 28 Jun. 2017].

Forbes (2017). Forbes Welcome. [online] Available at: https://www.forbes.com/sites/justinwarren/2016/08/03/digitalocean-boasts-700000-users-disses-other-clouds/#11ece98d1561 [Accessed 28 Jun. 2017].

Lightsail.aws.amazon.com. (2017). [online] Available at: https://lightsail.aws.amazon.com/ls/webapp/create/instance?region=us-east-2 [Accessed 28 Jun. 2017].

WordPress.com. (2017). WordPress.com: Create a website or blog. [online] Available at: https://wordpress.com/ [Accessed 29 Jun. 2017].

Lightsail Firewall (2017). Lightsail. [online] Available at: https://lightsail.aws.amazon.com/ls/docs/overview/article/understanding-firewall-and-port-mappings-in-amazon-lightsail [Accessed 29 Jun. 2017].

Karpenko, L. (2017). Form Maker by WD – user-friendly drag & drop Form Builder plugin. [online] WordPress.org. Available at: https://en-ca.wordpress.org/plugins/form-maker/ [Accessed 29 Jun. 2017].