The Amazon Web Services Platform

I've been working with Amazon Web Services as part of a new job, and I was surprised to see how many rich services Amazon is offering under the AWS banner now.  

 

I made a point of looking at every one of them (as of October 2017) and reading enough about it to get what it's for. The scope of these services is incredible, and I get what the "serverless" trend is about now.  You can build and deploy complete application back ends in AWS, start to finish. No surprise to many, I'm sure, but last time I looked at AWS it was mostly storage and VMs.

 

Here's my cheat sheet.

 

Code Hosting

EC2

VMs in the cloud.

EC2 Container Service

Docker containers in the cloud.

Lightsail

Cheap, simple VMs in the cloud. Backed by EC2. Check out this StackOverflow post for some details.

Elastic Beanstalk

App hosting. You supply the your application code (Java, PHP, .NET, Node, Tomcat, Ruby, etc), and they run it on a managed server.

Lambda

Function hosting. You write backend logic code in JS, C#, Java or Python, and it hooks up to an endpoint that you can call or trigger from other AWS activity. "Serverless".

Batch

Manages running large jobs in parallel Docker containers across many EC2 instances.


File Storage

S3

Simple file storage with an HTTP API. Pay for the amount of storage and transfer you use.

EFS

Provides filesystem semantics on top of S3.

Glacier

Slow, low-cost storage, for backups and archiving.

Storage Gateway

Software you run that acts as a local cache for your EFS data. Mount as iSCSI or as a share on your network.


Database

RDS

Hosted SQL databases (hosting MySQL, PostgreSQL, or a number of others).

DynamoDB

Amazon's own MongoDB style noSQL database.

ElastiCache

Hosted redis / memcached compatible in-memory caching.

Amazon Redshift

"a fast, fully managed, petabyte-scale data warehouse solution"

 

Artificial Intelligence

Lex

Speech recognition and natural language understanding. Build a smart Slack bot.

Polly

Text to speech.

Rekognition

Imagine analysis and object detection.

Machine Learning

Machine learning. Upload models, run them on data.

 

Messaging

Simple Queue Service

Message queueing service. Create queues, add messages to them, and have various things pull messages and act on them.

Simple Email Service

Send and receive email. SMTP gateway or API.

Simple Notification Service

Pub/Sub messaging, for delivering notifications to different parts of your application, and SMS notification service. (Those two don't seem that similar to me).

 

Developer Tools

CodeStar

Sort of a New Project wizard for creating projects that use Amazon services, in a large number of languages. Generates a Git repository and the provisions the services your project type needs.

CodeCommit

Amazon does GitHub.

CodeBuild

Amazon does continuous integration. 

CodeDeploy

Automated deployment of built applications to EC2 instances.

CodePipeline

Visual workflow tool for orchestrating builds and deployments.

X-Ray

Log and trace collection and analysis for distributed applications.

 

Migration

Database Migration Service

Move your MySQL data into Amazon's Aurora SQL database.

Server Migration Service

Move your physical PC into an EC2 VM.

Snowball

Move your local data into and out of Amazon by copying it to physical devices and shipping them around. 

 

That's the core stuff. I'm not going to list every other service, just the ones that I think might be of interest to app developers.

 

CloudFront

CDN. Make your content available quickly worldwide.

Route53

Amazon sells domains?

CloudWatch

Monitoring for your AWS services.

CloudFormation

Create templates for sets of services that you typically deploy together, with a visual editor for adding services and relationships.

CloudTrail

Audit trail for things that happen across your AWS services.

TrustedAdvisor

Watches your AWS services and makes security, cost and other recommendations.

Inspector

Automated security analysis of your services.

Certificate Manager

Free SSL certificates for your AWS-hosted services.

Cognito

User account management services for your apps. Good blog post here.

WAF

Web application firewall.

Kinesis

Collect, process and analyze streaming data.

GameLift

Online game server hosting, with game engine integration.

Mobile Hub

Helps you provision AWS services and integrate them into your mobile app. Not really a service itself.

Device Farm

Deploy your app to real physical devices for testing. "AWS Device Farm tests are run on real, non-rooted devices"

Pinpoint

Spam your users with push notifications. I'm sorry, I mean "Engage Your Audience with Messaging Campaigns". Also includes app usage analytics.

Step Functions

High-level service that lets you create workflows by stringing together Lambda functions.

SWF

Another workflow service, which on the surface seems pretty similar to Step Functions. 

AppStream

Stream desktop applications to a web browser.

Elastic Transcoder

Video format conversion.

API Gateway

Define your own external API to give to your developers as a front end for the services you've built in AWS.

 

There are also services under the AWS banner, like WorkDocs, WorkMail, WorkSpaces and Chime, that seem more like Office365 type user services than developer services.