What is Amazon Web Services?
Amazon Web Services, popularly known as AWS, is a set of cloud computing services. These services are collectively known as web services. These services are today available in 54 availability zones within 18 different geographical regions and one local region. Amazon plans on adding 12 more availability zones and four more geographic regions across the globe.
Availability zone is nothing more than a cluster of up to six data centers with more data centers being added to each cluster constantly.
Amazon Web Services is a state-of-the-art Infrastructure as a Service (IaaS), with the major competitors being Google Cloud Platform, Microsoft Azure, and IBM Cloud. AWS is by far the largest IaaS. It offers one of the most comprehensive set of tools and a massive list of third-party integrations.
The massive infrastructure of AWS combined with the abnormally vast collection of partners will allow you to build the cloud service that you dream of. However, you need to note that AWS is an enterprise-grade solution, and setting up AWS for even the smallest of web presence will require a great deal of technical knowledge that only developers can handle.
Amazon Web Services or AWS refers to a group of cloud computing service, at the core of which are two major services – Amazon Elastic Compute Cloud or EC2, and Amazon Simple Storage Service or S3. A company looking for a large computing capacity will always find it cheaper to use AWS rather than building it own server farm or data center.
After from cloud computing there are other services offered by AWS that include e-commerce storefronts, cloud databases, etc. Use them together and what you get is the ability to build end-to-end workload that comes complete with custom-coded apps and management tools.
Who Should be Using AWS?
Amazon Web Services is not for individual like you and me. It is an enterprise-grade solution that is perfectly suited for large enterprises. However, given the flexibility of AWS and its vast array of services, it is becoming increasingly popular among SMBs or Small to Midsized Businesses.
AWS is not for individuals who are looking for a simple web presence or a small blog. If you are looking for that, you better opt for some other web hosting solution. It is not that you cannot build your website using AWS, but the technical know-how required for doing so is quite off the charts. The learning curve is too steep!
In case you are hell-bent on using AWS (because it is extremely reliable, and allows for massive scalability) and you are not interested in going through the learning curve, you can always look forward to Cloudways – a managed cloud hosting provider that offer AWS cloud hosting.
However, using Cloudways will cost you more than what you would normally pay for using Amazon Web Services directly. That’s quite normal, because managed hosting platforms are expensive!
If you are thinking that your web application (can be a website) will grow exponentially, and you need something that can scale accordingly, AWS is what you should be looking at. The only limit that you will face is the wallet that you hold. If your wallet has the financial power it takes for massive scalability, AWS has the infrastructure that is required to match that exponential growth.
What are the Core Features of Amazon Web Services?
Now, this is a difficult question that you have asked. The core services include everything that you would normally expect from any cloud service. Networking, Compute, Databases, and Storage & Content Delivery are the primary or core components of AWS.
But if you are thinking that’s all that AWS has to offer; you couldn’t be more wrong! In 2016. AWS launched a whopping 1,012 new features. As if that wasn’t enough, AWS went ahead and introduced another 1,430 new features in 2017.
Please don’t expect me to walk you through all of those features one-by-one. No person in this world, in his or her sane mind, will ever do that.
Among the various products that Amazon Web Services has to offer, some of the core offerings include:
- Databases
- Storage
- Content Delivery
- Networking
- Analytics
- Development tools
- Internet of Things
- Management Tools
- Enterprise and Security applications
- Robotics
- Game Tech
- Media services
What’s interesting is that you can control everything through a secure web client that gives you extensive admin controls. The tools that you get include identity management, encryption key creation (and control and storage), logging, monitoring, and more.
When you compare the giants like Google Cloud, Microsoft Azure, IBM Cloud, and AWS, you will immediately note that Amazon Web Services has more options than anyone else.
For instance, if you need a DBMS (Database Management System), you can get Amazon Aurora – a relational database service that is completely compatible with PostgreSQL and MySQL. You can take a look at AMS Snowball if you need terabytes or petabytes of data on the cloud.
Amazon Web Services can even deliver a ruggedized custom shipping container that is 45-foot long! It is an exabyte-scale data appliance that is known as AWS Snowball.
Okay, AWS takes care of data storage, but what about processing all that data? AWS can offer you offer you RedShift, Amazon ElasticMapReduce, Hadoop & Spark service. There’s machine learning and artificial intelligence as well when you have to deal with so much data.
AWS has also started offering Internet of Things, in case you need that. If you are thinking about the conventional cloud services then AWS has block and archival storage, file system, containers, and virtual servers.
Bottom line? There is no such thing that can be done on cloud but not on AWS. Every aspect of cloud is covered by AWS. In fact, AWS also has the widest range of both third-party and in-house software options.
If a situation ever comes where AWS doesn’t have what you need, you are probably going to need and build your own private cloud.
AWS is based on Red Hat Enterprise Linux, and it supports a wide range of Linux distros. In case you want Windows, that’s available as well. You get Windows server 2003, 2008, 2013, and 2016, and guess what? Everything sits on Xen hypervisor. Xen hypervisor is used by other providers like Linode, Rackspace Hosting, etc.
Because of Amazon Web Services’ global availability, multinational companies are the ones that heavily depend on AWS.
Getting Started with AWS
I said earlier that AWS is not easy. It requires you to go through a steep learning curve. However, you can still set up a basic cloud with some attention. Getting started with AWS is as simple as creating a profile, setting up your billing information, and then selecting your preferences where you have to tell you role and what you are interested in.
Once you go past the payment setup information, you will get the option of selecting from a free account (free tier) or other account types. Once you choose what you want, you will see this:
On the same page you will also find some quick links for tutorials. Here is what you will note:
For instance, if you want to launch a WordPress website, you can click on the ‘Launch a WordPress Website’ link where you will see a clean step-by-step tutorial. In fact, you will see something call Amazon Lightsail. Lightsail is the easiest way to get started with AWS. It is an easy-to-use cloud platform that is ideal for simpler workloads and quick deployments.
Lightsail plans start for $3.50 a month, which is quite competitive considering the overall competition in the industry. To be honest, that’s the lowest price I have seen among all cloud providers, especially when you are trying to build a WordPress site.
Create WordPress Site with AWS
If you start with Amazon Lightsail, you will have to go ahead and login again to AWS. Once you login you will see this screen:
Once you click on the Let’s get started button, you will see the option of selecting your server location. It is neatly arranged.
Once you select the location, you need to select the OS & app or OS only. If you want to install WordPress right away, you will have to select the Linux operating system. If you select Windows, you will get to install the OS only.
You also get to enable snapshot and add a new pair of SSH keys or download the default pair of SSH keys already provided by AWS.
Once you have selected the optional options, you can move forward and choose the instance plan. This is where you will have to select the number of virtual CPU cores you need, the storage you want, and the RAM you want. You can also select a plan based on the bandwidth you want.
What’s interesting is that AWS will offer a month free for the lowest plan that they have to offer. This plan will cost you $3.5 a month.
To be honest, Amazon Lightsail offers the lowest cost of all cloud hosting providers I have worked with.
For example, for $5 Amazon Lightsail will give you 1 GB RAM, 1 vCPU, 40 GB SSD, and 2 TB bandwidth. Compare this with DigitalOcean where you will get 1 GB RAM, 1 vCPU, 25 GB SSD, and 1 TB bandwidth. Of course, AWS is quite cheaper.
Once you have to select the plan that you want, you can go ahead and create the instance by providing a name to the instance. It is necessary to provide unique names to identify specific instances if you are creating multiple instances.
Once you click on the Create instance button, you will see the next page where you will reach the next page where you will see the instance. From there you can go ahead and create new instance or click on the different tabs to find the options.
Under the Networking tab, you will get the options for creating a static IP, enable or create CDN, create load balancers and DNS Zones.
Once the instance is created, you need to connect to the server using the browser-based console. You can click on the vertical ellipses menu and select the connect option or the small console icon next to it. This will open the browser-based console where you need to type in the following command to get the application password:
cat $HOME/bitnami_application_password
This is what it looks like:
The highlighted option (I highlighted it) is the application password. You need to copy and save the password (I mean, write it down, because you cannot copy from the console). You will need it in the following steps.
Now, you need to copy the IP address of the instance to login into your application. This is where you get the IP address:
Once you get the IP address, open your browser and type in the following URL: http://IP-address/wp-login.php. In this particular case, the URL will be http://52.90.12.128/wp-login.php.
Once you type in the URL, hit the enter button on your keyboard and you will get the login page where you have to provide the username and password. The username will be ‘user’ and the password will be the one that you retrieve from the console.
After you log in, you will reach the WordPress dashboard. This is what you will see:
By default, there will be four plugins installed. Those are:
- All-in-One WP Migration
- AMP
- Google Analytics by MonsterInsights
- Jetpack
That’s it! You have installed WordPress on AWS. You can now carry out the rest of the steps that include creating a static IP, creating CDN, etc.
Let’s look into all of those one by one…
Creating Static IP
Go back to the Lightsail homepage and select the instance’s Networking tab and click on the Create Static IP button that you see. The next page you see will give you the option of selecting the WordPress instance.
Note:
- You have to provide a unique name to your static IP. It is mandatory.
- You will also have to attach the static IP to your WordPress instance to make it free. If you don’t do that, you have to pay for it.
Once you select the WordPress instance from the dropdown, this is what you will see:
After you have selected the WordPress instance, you need to click on the Create button. That’s it! It will take a few seconds to create the static IP. It will be attached to the instance and it will replace the dynamic IP that was initially provided.
You can go back to the Lightsail home and check the instance; you will notice the new static IP address showing up on it:
Create DNS Zones
The WordPress instance that you installed doesn’t yet have a domain attached to it. You have to do that. Head over to the Networking tab and click on the button that reads ‘Create DNS zone.’
Clicking on the option will take you to the next page where you have to add the domain name that you have registered. If you haven’t already registered a domain, you can register one from Amazon Route53. You can see the link to Amazon Route53 on the page.
Once you have added a domain (or registered one and then added the domain), you need to click on the Create DNS Zone button. This is what you are going to see:
After you click on the Create DNS zone button, you will get a list of nameservers that you need to add to the domain from the domain management interface of your domain registrar. This is what you will get:
Once you configure the nameservers at your domain management interface, your domain will be pointed to the WordPress installation instance on AWS.
Creating Distribution (CDN)
While this may sound terrible, it is not! Amazon Web Service will offer you to add pre-configured CDN. The CDN is known as Amazon Cloudfront. To do that, you need to go ahead and click on Lightsail Home and then select the Networking tab for the instance.
On the Networking tab, you will have to click on the Create distribution button:
Once you click on the button, you have to select the origin. Origin is nothing other than you instance. This is what you will notice:
Choose your instance from the dropdown. When you do that, you will see a pop up which will ask if you want to apply some pre-configured settings or not.
I don’t know about other applications since I am more concerned about WordPress as I work with it day in and day out. My suggestion will be to go ahead and apply the preset because of two reasons:
- Setting up cache and CDN requires quite a bit of technical knowledge. If you don’t have that knowledge, it is better you don’t try it the manual way.
- Cache presets are all offered by Amazon and they will provide the one that works best.
Once, you select the preset, you will see this screen:
If you want, you can manually edit the setting by clicking on the Show all settings links. Once you have applied the presets, you can move ahead and choose the plan, which is essentially the CDN plan. For the first year, you will get CDN for free if you choose the minimum plan of 50 GB per month of bandwidth. This is more than enough for a new site. If more bandwidth is used, there will be an overcharge at the rate of 0.09 USD per GB. You also need to provide a name for your distribution. This is what you will see:
Once you are satisfied with everything, you can click on the Create distribution plan and the CDN will be setup for your domain (and website).
Once the distribution is created, you need to make certain changes to the WordPress instance and distribution. A clear link with a detailed step-by-step guide is provided on the page you see. All you need to do is follow the guide and perform all actions.
That’s all!
Creating Load Balancer
This is the last thing you need to do. You can even skip this. If you want a load balancer, it will cost you an additional 18 USD a month. That’s quite expensive, but I will suggest you go for it. A load balancer will distribute your traffic over multiple instances from different locations.
To create a load balancer, you need to head over to Lightsail home and select the Networking tab. There you need to click on the button that reads ‘Create load balancer.’
Once you click on the button, you will land on a new page where you have to start by selecting a location or a region. It can be a completely different location from the one you selected for creating the instance. I will suggest that you select a region from where you expect to get the second-highest traffic.
The page will also show you the protocol that will be used (HTTP or HTTPS). If you haven’t enabled HTTPS on your domain, you can do it later. That’s not an issue. Since the example I am working on did not have an SSL certificate installed, the initial configuration is shown to be HTTP.
This is what you will see on that page:
Next, you need to create an identifier name for the load balancer you are creating. This is a mandatory step that you need to complete:
You can either accept the name that is used by default or you can use a custom name. Once you have provided the necessary information, you need to go ahead and click on the ‘Create load balancer button.’
Once you click on the button, it will take some time to create the load balancer. Wait until the process is completed.
After the load balancer is created, you need to create a separate instance in the region you selected you load balancer to be. So, you have to repeat the instance creation process that you learned earlier and select the region to be the one you chose for load balancer.
Once you create another instance, you have to go to the Networking tab and select the load balancer. One the load balancer option you need to click on the vertical ellipsis menu and click on the Manage option.
After you click on the Manage option, you will get the option of attaching an instance to it.
I already created a separate instance called WordPress-2 with Sydney as the selected region. Once I select the instance from the drop down, it will be attached to the load balancer (after you click the Attach link).
Once you do that, there will be a few more configurations to complete. You have to learn how to separate your database and your WordPress files and put them in a centralized location (which can be done using a WordPress plugin to put all your images in Amazon S3).
Explaining the entire thing here is a little tedious and out of the scope of this review. Amazon has already created several tutorials that you can use to configure load balancer properly. Load balancer help reduce the overall load on your server, thereby allowing optimal performance.
I told you earlier – there will be some steep learning curve. It is the load balancer segment where things get a little difficult.
However, it is not really necessary to create a load balancer. You can live without that and minimize your expenses.
Overall, Amazon Web Services is not really that difficult. It will take some time to understand how things work. For developers, it is a cakewalk, but for rookies like you and I, things can be a bit difficult (but not impossible).
Things to Note
With little persistence you may be able to use AWS even if you are not a developer. If you are thinking of running a simple WordPress site, that is entirely possible. However, if you are taking the easier way of using Amazon Lightsail, there will be a few things you should know:
- The default web server you will get is Apache. If you want Nginx, you need to know how to install it.
- You will not get LiteSpeed web server with Amazon Lightsail. That is available if you are launching instances from the core AWS platform.
- Installing SSL certificate will be a tricky thing. Yes, there are tutorial available, but you need to go through them properly to configure everything the right way.
- Using load balancers will increase your monthly expenses by manifolds. For instance, you have to create a second instance that will cost you money in addition to the initial instance. On top of that, the load balancer will come with a separate cost.
- With AWS, you will need to know how to monitor your server performance. If you cannot do that, Amazon will offer something from GoDaddy that you need to purchase separately.
Pros and Cons of Amazon Web Services
AWS is a service. It is no brainer that there will be strengths and weaknesses. Here is a quick list of pros and cons of AWS:
The Pros
- It allows room for extremely scalability. The only constraint you will have is the cost that comes with it. If you budget permits, AWS is the best.
- Flexibility is another strength of AWS. It will allow you to scale up and down at whims. You can create just about anything you want.
- With AWS, you get everything in one place that you can imagine for creating a cloud application.
- It has a massive list of third-party integrations that you will not find with any other cloud platform.
- AWS offers maximum redundancy by offering severs globally. This ensures that you can get 100% uptime. However, no one can guarantee that AWS will not see downtimes. There are past instances where AWS was down, leading to massive losses.
- With AWS, you will get maximum security that you can imagine for your cloud application.
- AWS offers enterprise-grade hardware that offers best performance.
- Do not forget that AWS is has pay-as-you-go pricing. This means that you pay only for what you use.
The Cons
- AWS has a steep learning curve, and it can quickly get extremely complicated for those with little to no knowledge. The whole service is extremely complicated and it is basically meant for developers or companies who have the resources to hire people who can handle such complexity.
- There is no hand-holding as you would find in the case of a traditional hosting company (assuming that you want to build a website). All you get are a set of tutorials. The customer service is very limited. You don’t get live chat. Just forget about it. However, you do get 24×7 customer support via a ticket system.
- The pricing is complicated. Prices can escalate quickly depending on what you are building and what you are using. Of course, with Lightsail, you will know in advance how much you need to pay. That’s not the case with other AWS services.
- Once you close your AWS account, you cannot use the same email ID to open a new account. You have to use a different email ID.
Conclusion (and Verdict)
Amazon Web Services is the largest IaaS to exist on this planet. Yes, it can handle anything and everything that you can achieve with cloud computing. It allows room for immense scalability that you will generally not find with other hosting providers. The 18 geographic regions and 54 availability zone give maximum redundancy.
With all these benefits, you might be inclined to think that AWS is the right choice for you. Unfortunately, that’s not always true. AWS is so complex that if you are trying to build something as simple as a website, you can run into confusions and bottlenecks. It is best suited for developers and enterprises that can hire developers.
Yes, the Lightsail service of AWS tries to make things less complicated, but there are still a few sharp turns where you may not feel comfortable, and end up needing some professional help. If you can get past all these issues, Amazon Web Services is definitely a cloud provider that you can rely on for hosting cloud applications. The computing power it can offer is unmatched.
So, I do recommend Amazon Web Services if you don’t mind learning, or if you already have the knowledge necessary for handling the complexity that comes with AWS.