Realtime Editor with Markdown Shortcuts!

Document image

What is AWS? This was a question I didn’t fully have an answer to, until now. Back when I was first trying to understand what Amazon Web Services was, just like anyone else would, I searched on Google.

Amazon Web Services (AWS) is a secure cloud services platform, offering compute power, database storage, content delivery and other functionality to help businesses scale and grow.

AWS = Lego Blocks

Document image

Think of Lego blocks. Very simple in appearance and functionality on their own. However, put them together in the right way, with the right pieces, you can create something highly complex and amazing.

Document image

This is what AWS allows. AWS is a compilation of many different Lego pieces that all have their own simple functions. Although on their own they may lack much functionality; combined together with other services, they can construct a highly complex, practical application. Through AWS, Amazon has solely provided users with a huge Lego toolbox where you can pick and choose which services you would like to use and for how long. It is completely up to the user how they’ll construct their Lego masterpiece.

One of the biggest reasons why AWS has become so popular, is because of the complete freedom it allows consumers. Not only are you able to mix and match its services, Amazon offers three different methods to manage and utilise AWS: through the CLI, the AWS console (GUI), or SDKs. To top it all off, the highly competitive pricing makes AWS an offer hard to refuse.

Opening the AWS Lego Toolbox

In this section I will display some key Amazon Web Services as well as some others I used in a recent project.

Simple Storage Service (S3)

As the name suggests, AWS S3 is a storage service. It provides automatic scaling — meaning you don’t have to worry about running out of storage — and it is extremely reliable… like 99.999999999% reliable. Through the concept of “buckets”, S3 can be used to store log files, photos for your application, and even to serve static websites that don’t require server side technologies.

Elastic Cloud Computing (EC2)

EC2 allows you put virtual servers in the cloud. If you don’t know anything about cloud computing, this means that AWS is removing the need to purchase actual hardware to have servers. Just like S3, there is automatic scaling — meaning depending on the demand, the amount of servers can be automatically increased. Paired together with AWS S3 and AWS Relational Database (RDS), you are able to create a full back-end, front-end, and database, all based in the cloud.

Identity and Access Management (IAM)

Whenever you need to programmatically access AWS services you will need to have two different access keys: an access key ID, and a secret access key. However, for the sake of security, you would not want these keys to be able to access all of your account. This is where IAM can come into play. Through IAM, you can create AWS users and groups, use permissions to allow and deny their access to AWS resources, and delete users and groups when access is no longer required. Thus, IAM highly improves security and gives you the ability to allow outside accounts to access your account’s specific services.

Lambda

In essence, Lambda allows you to have a “serverless” application. This does not mean you do not have a server at all; instead, it means it removes the need to provision and manage servers (whether they be physical or virtual). Explained simply, Lambda runs code that you specify, based on a trigger that you also specify. These triggers can be HTTP requests with API Gateway, changes in a specific S3 bucket, updates in your database, and so on. Lambda provides infinite flexibility and a highly affordable serverless option for applications.

API Gateway

API Gateway is a simple service that allows you to build, deploy and manage APIs. Through a matter of a few minutes in the AWS console you are able to have a fully functioning RESTful API to a distinct URL endpoint. API Gateway is able to simultaneously handle all your API calls, while providing traffic management, authorization and access control, and monitoring.

Polly

Through Artificial Intelligence, AWS Polly is able to turn text into lifelike speech. It works with dozens of different languages — for example, Chinese, Russian, Turkish, Spanish, and Korean — with usually several voices for each language.

Connect

AWS Connect provides you the capability to have a simple, cloud-based call center. Through the AWS console, you can construct different “Contact Flows” (where you create distinct user experiences for outbound or inbound calls), manage different calling ‘agents’, and track performance metrics.

My Experience with AWS

In my most recent project, I combined together Connect (with Polly built in), Lambda, API Gateway, and S3 to create a fully functioning robocall system with a basic front-end. A user is able to access my static website that is hosted through S3, input the phone number they would like to call and the text they would like to change to speech. Once submitted, a request is sent to API Gateway, which then triggers a special Lambda function which calls the number that was inputted, with the text that was also inputted.

In my experience, using AWS was extremely simple, and provided a vast range of capabilities. Even though my account is in the free-tier I was able to confidently and easily use all of the AWS services without fear I was going to spend any money. AWS has provided users many different resources to learn all their services, and through a 1 year free trial, you are able to test every single one of their services. I would highly recommend anyone to at least try learning. In this blog, I only showcased seven Amazon Web Services, however, AWS has over 90 different services in over 20 different categories.

Ideas backlog Profile photoMichael Scott