in Plain English

What is Cloud Computing?

Cloud computing is the on-demand delivery of compute power, database storage, applications, and other IT resources through a cloud services platform via the internet with pay-as-you-go pricing.

Advantages and Benefits of Cloud Computing

  • Trade capital expense for variable expense
  • Benefit from massive economies of scale
  • Stop guessing capacity
  • Increase speed and agility
  • Stop spending money on running and maintaining data centers
  • Go global in minutes

Types of Cloud Computing

  • Infrastructure as a Service (IaaS)
  • Platform as a Service (PaaS)
  • Software as a Service (SaaS)

Run an App Services

No matter what you do with AWS you'll probably end up using these services as everything else interacts with them.

EC2

Should have been called: Amazon Virtual Servers

Use this to: Host the bits of things you think of as a computer.

IAM

Should have been called: Users, Keys and Certs

Use this to: Set up additional users, set up new AWS Keys and policies.

S3

Should have been called: Amazon Unlimited FTP Server

Use this to: Store images and other assets for websites. Keep backups and share files between services. Host static websites. Also, many of the other AWS services write and read from S3.

VPC

Should have been called: Amazon Virtual Colocated Rack

Use this to: Overcome objections that "all our stuff is on the internet!" by adding an additional layer of security. Makes it appear as if all of your AWS services are on the same little network instead of being small pieces in a much bigger network.

Lambda

Should have been called: AWS App Scripts

Use this to: Run little self contained snippets of JS, Java or Python to do discrete tasks. Sort of a combination of a queue and execution in one. Used for storing and then executing changes to your AWS setup or responding to events in S3 or DynamoDB.

Web Developer Services

If you're setting up a web app, these are mostly what you'd end up using. These are similar to what you'd find in Heroku's Addon Marketplace.

API Gateway

Should have been called: API Proxy

Use this to: Proxy your apps API through this so you can throttle bad client traffic, test new versions, and present methods more cleanly.

RDS

Should have been called: Amazon SQL

Use this to: Be your app's Mysql, Postgres, and Oracle database.

Route53

Should have been called: Amazon DNS + Domains

Use this to: Buy a new domain and set up the DNS records for that domain.

SES

Should have been called: Amazon Transactional Email

Use this to: Send one-off emails like password resets, notifications, etc. You could use it to send a newsletter if you wrote all the code, but that's not a great idea.

Cloudfront

Should have been called: Amazon CDN

Use this to: Make your websites load faster by spreading out static file delivery to be closer to where your users are.

CloudSearch

Should have been called: Amazon Fulltext Search

Use this to: Pull in data on S3 or in RDS and then search it for every instance of 'Jimmy.'

DynamoDB

Should have been called: Amazon NoSQL

Use this to: Be your app's massively scalable key valueish store.

Elasticache

Should have been called: Amazon Memcached

Use this to: Be your app's Memcached or Redis.

Elastic Transcoder

Should have been called: Amazon Beginning Cut Pro

Use this to: Deal with video weirdness (change formats, compress, etc.).

SQS

Should have been called: Amazon Queue

Use this to: Store data for future processing in a queue. The lingo for this is storing "messages" but it doesn't have anything to do with email or SMS. SQS doesn't have any logic, it's just a place to put things and take things out.

WAF

Should have been called: AWS Firewall

Use this to: Block bad requests to Cloudfront protected sites (aka stop people trying 10,000 passwords against /wp-admin)

Mobile App Developer Services

These are the services that only work for mobile developers.

Cognito

Should have been called: Amazon OAuth as a Service

Use this to: Give end users - (non AWS) - the ability to log in with Google, Facebook, etc.

Device Farm

Should have been called: Amazon Drawer of Old Android Devices

Use this to: Test your app on a bunch of different IOS and Android devices simultaneously.

Mobile Analytics

Should have been called: Spot on Name, Amazon Product Managers take note

Use this to: Track what people are doing inside of your app.

SNS

Should have been called: Amazon Messenger

Use this to: Send mobile notifications, emails and/or SMS messages

Ops and Code Deployment Services

These are for automating how you manage and deploy your code onto other services.

CodeCommit

Should have been called: Amazon GitHub

Use this to: Version control your code - hosted Git.

Code Deploy

Should have been called: Not bad

Use this to: Get your code from your CodeCommit repo (or Github) onto a bunch of EC2 instances in a sane way.

CodePipeline

Should have been called: Amazon Continuous Integration

Use this to: Run automated tests on your code and then do stuff with it depending on if it passes those tests.

Elastic Container Service

Should have been called: Amazon Docker as a Service

Use this to: Put a Dockerfile into an EC2 instance so you can run a website.

Elastic Beanstalk

Should have been called: Amazon Platform as a Service

Use this to: Move your app hosted on Heroku to AWS when it gets too expensive.

Enterprise / Corporate Services

Services for business and networks.

AppStream

Should have been called: Amazon Citrix

Use this to: Put a copy of a Windows application on a Windows machine that people get remote access to.

Direct Connect

Should have been called: Pretty spot on actually

Use this to: Pay your Telco + AWS to get a dedicated leased line from your data center or network to AWS. Cheaper than Internet out for Data.

Directory Service

Should have been called: Pretty spot on actually

Use this to: Tie together other apps that need a Microsoft Active Directory to control them.

WorkDocs

Should have been called: Amazon Unstructured Files

Use this to: Share Word Docs with your colleagues.

WorkMail

Should have been called: Amazon Company Email

Use this to: Give everyone in your company the same email system and calendar.

Workspaces

Should have been called: Amazon Remote Computer

Use this to: Gives you a standard windows desktop that you're remotely controlling.

Service Catalog

Should have been called: Amazon Setup Already

Use this to: Give other AWS users in your group access to preset apps you've built so they don't have to read guides like this.

Storage Gateway

Should have been called: S3 pretending it's part of your corporate network

Use this to: Stop buying more storage to keep Word Docs on. Make automating getting files into S3 from your corporate network easier.

Big Data Services

Services to ingest, manipulate and massage data to do your will.

Data Pipeline

Should have been called: Amazon ETL

Use this to: Extract, Transform and Load data from elsewhere in AWS. Schedule when it happens and get alerts when they fail.

Elastic Map Reduce

Should have been called: Amazon Hadooper

Use this to: Iterate over massive text files of raw data that you're keeping in S3.

Glacier

Should have been called: Really slow Amazon S3

Use this to: Make backups of your backups that you keep on S3. Also, beware the cost of getting data back out in a hurry. For long term archiving.

Kinesis

Should have been called: Amazon High Throughput

Use this to: Ingest lots of data very quickly (for things like analytics or people retweeting Kanye) that you then later use other AWS services to analyze.

RedShift

Should have been called: Amazon Data Warehouse

Use this to: Store a whole bunch of analytics data, do some processing, and dump it out.

Machine Learning

Should have been called: Skynet

Use this to: Predict future behavior from existing data for problems like fraud detection or "people that bought x also bought y."

SWF

Should have been called: Amazon EC2 Queue

Use this to: Build a service of "deciders" and "workers" on top of EC2 to accomplish a set task. Unlike SQS - logic is set up inside the service to determine how and what should happen.

Snowball

Should have been called: AWS Big Old Portable Storage

Use this to: Get a bunch of hard drives you can attach to your network to make getting large amounts (Terabytes of Data) into and out of AWS

AWS Management Services

AWS can get so difficult to manage that they invented a bunch of services to sell you to make it easier to manage.

CloudFormation

Should have been called: Amazon Services Setup

Use this to: Set up a bunch of connected AWS services in one go.

CloudTrail

Should have been called: Amazon Logging

Use this to: Log who is doing what in your AWS stack (API calls).

CloudWatch

Should have been called: Amazon Status Pager

Use this to: Get alerts about AWS services messing up or disconnecting.

Config

Should have been called: Amazon Configuration Management

Use this to: Keep from going insane if you have a large AWS setup and changes are happening that you want to track.

OpsWorks

Should have been called: Amazon Chef

Use this to: Handle running your application with things like auto-scaling.

Trusted Advisor

Should have been called: Amazon Pennypincher

Use this to: Find out where you're paying too much in your AWS setup (unused EC2 instances, etc.).

Inspector

Should have been called: Amazon Auditor

Use this to: Scans your AWS setup to determine if you've setup it up in an insecure way

AWS Reference Architectures

End

References

https://aws.amazon.com/what-is-cloud-computing/
https://aws.amazon.com/types-of-cloud-computing/
https://www.expeditedssl.com/aws-in-plain-english
http://media.amazonwebservices.com/architecturecenter/AWS_ac_ra_web_01.pdf
http://media.amazonwebservices.com/architecturecenter/AWS_ac_ra_loganalysis_11.pdf
https://aws.amazon.com/new/reinvent/