AWS Introduction

Jakob Jenkov
Last update: 2022-05-05

AWS is short for Amazon Web Services and is Amazon's cloud offering. AWS offers a lot of infrastructure as services, such as virtual machines, networks, databases, file storage, machine learning, artificial intelligence, Internet of things, user management, and much more. You can find AWS at:

aws.amazon.com

AWS has hundreds of services already, and new services are released continuously, so it can be hard to know which services to learn first. That is why I have started making these AWS notes. Here, I will try to cut through to the core services you should learn first, so you can get a faster and less confusing start on your AWS journey.

IaaS, PaaS and SaaS

Cloud offerings typically fall within one of the categories IaaS, Paas or SaaS.

IaaS is short for Infrastructure as a Service. This typically refers to cloud services that enable you to easily setup and use infrastructure services such as Virtual Private Cloud (VPC), networks, firewalls, Virtual Private Networks (VPN), virtual machines (VMs) etc.

PaaS is short for Platform as a Service. This typically refers to cloud services that make up an application platform. PaaS services are typically higher up in the tech stack, such as application servers and databases.

SaaS is short for Software as a Service. This typically refers to hosted and managed applications such as ElasticSearch, Jira, Confluence, Wordpress etc.

AWS has cloud offerings in all of these categories.

Accessing AWS

In order to use AWS you must have access to an AWS account. You can either create your own AWS account, or get access to an existing AWS account.

If you choose to create your own AWS account, you can do so via the AWS website.

When you have created an AWS account you can interact with AWS in one of the ways described later in this AWS introduction.

Alternatively, you can be given access to an existing AWS account - for instance the AWS account of your employer or customer. This is a very common way to get access to AWS too.

AWS Free Tier

AWS Free Tier enables AWS users to use a subset of AWS services for free up until some limit. The AWS Free Tier is often enough to test out if a specific service works for you or not. You can find more information about AWS Free Tier at:

aws.amazon.com/free/

Interacting With AWS Directly

Once you have created an account, there are several ways you can interact directly with the AWS cloud:

  • AWS Console (the web interface)
  • AWS CLI (command line interface)
  • AWS SDK (software development kit)

AWS Console

The AWS Console is the AWS web interface which you can login into from the AWS website. In here you can navigate around the different services, create, update and delete infrastructure resources, interact with resources such as uploading files, or query a database, and access a variety of visual tools and dashboards, such as a log viewer and a cost explorer.

You can find the AWS Console via the AWS website here:

aws.amazon.com

AWS CLI

The AWS CLI is a command line interface you can install on your local PC. Via the AWS CLI you can create, update and delete infrastructure, interact to some extent with resources such as uploading a file etc. Since the AWS CLI is a command line interface (textual) interface, interaction with resources that tend to have a primarily visual interface might be less optimal.

You can find the AWS CLI here:

aws.amazon.com/cli/

AWS SDK

The AWS SDK is a set of toolkits you can use to interact with AWS programmatically via one of the several programming languages that AWS offers SDK's for.

The AWS SDK is useful when you need to interact directly with a service at a functional level, such as querying a DynamoDB database, call a Lambda function etc. from inside a running application of yours.

You can find the AWS SDK here:

AWS SDK and Tools

Interacting With AWS Indirectly

You can also interact indirectly with AWS - via tools such as:

  • AWS CloudFormation
  • AWS Cloud Development Kit (CDK)
  • AWS CodePipeline etc.
  • Terraform
  • Pulumi

AWS CloudFormation is from AWS themselves, whereas Terraform and Pulumi are offered by third party vendors. These tools enable you to write infrastructure recipes (scripts) which can be executed to create one or more infrastructure resources (such as virtual machines, file systems, databases etc.). These mechanism of specifying your infrastructure in a script is also known as Infrastructure as Code (IaC).

When working with the IaC tools you first write the infrastructure specification script, and then pass it to the tool - which then executes the script and creates the infrastructure resources specified in the script.

AWS CloudFormation

AWS CloudFormation is AWS' Infrastructure as Code tool. You use CloudFormation by writing CloudFormation templates in YAML or JSON, upload that CloudFormation template to AWS and then tell AWS to execute the CloudFormation template - meaning create the resources described in the CloudFormation template.

AWS CloudFormation templates can be sent to AWS for execution via the AWS Console, the AWS CLI or the AWS SDK. You can find AWS CloudFormation here:

aws.amazon.com/cloudformation/

AWS Cloud Development Kit - CDK

The AWS Cloud Development Kit (CDK) is a toolkit that can generate CloudFormation templates from e.g. Python or Typescript code. Sometimes, an imperative approach (e.g. Python, Typescript etc.) can be easier than a purely declarative approach (CloudFormation templates in JSON or YAML).

Among other things, the CDK contains constructs that are predefined by AWS to make it easier to create templates for more standard types of infrastructure.

You can find more information about AWS Cloud Development Kit - CDK here:

aws.amazon.com/cdk/

AWS CodePipeline

AWS CodePipeline and related AWS services are a set of DevOps services that make it possible to deploy AWS resources via a CI/CD pipeline. You commit and push code (e.g. AWS CloudFormation templates) to an AWS CodeCommit Git repository - which then triggers the AWS CodePipeline CI/CD pipeline - which then deploys the specified AWS resources - such as deploying Lambdas, creating VPCs or spinning up Virtual Machines (EC2 instances).

You can find more information about AWS CodePipeline here:

aws.amazon.com/codepipeline/

Where to Start With AWS

If you are new to AWS, learning

AWS Core Technologies

I have made a list of what I consider to be the core AWS services here:

AWS Core Technologies

These are probably the services you should learn first on your AWS journey.

My Notes on AWS

My AWS notes are accessible via this page (and pages linked from here - also check out left navigation menu), but so far they are mostly intended to give you an overview of the core services - not as a full guide to all things AWS. My AWS notes are published on this website (see navigation menu in the left side of this page (not visible on mobile)).

Learning More About AWS

There are many ways to learn more about AWS. You can learn a lot via the AWS website (aws.amazon.com). Here you can read more about what services AWS offers (there are many!), and how they work.

You can also learn more about AWS via third party learning services such as:

You might also be able to find books at Amazon, Leanpub, Packt and other publishers.

Jakob Jenkov

Featured Videos



Core Software Performance Optimization Principles

Thread Congestion in Java - Video Tutorial













Close TOC

All Trails

Trail TOC

Page TOC

Previous

Next