Personal Programming Notes

To err is human; to debug, divine.

AWS: Overview of Services

Amazon Web Services (AWS) is a collection of web services that deliver computing resources (hardware and software) to end-users over the Internet. Not all AWS are equal but for AWS beginners, we usually don’t know which are more important and which are secondary, supporting services. Personally, I am initially overwhelmed by the number of services offered as well as large amount of documentation associated with each service.

This post documents my understanding on some key AWS services and concepts. In this post, AWS concepts and services can be divided into layers. Those layers, from bottom up, are:

  • AWS Infrastructure: Physical data centers and physical network connections.
  • Infrastructure Services (IaaS).
  • Platform Services (PaaS).

AWS Global Infrastructure

AWS are available in many locations world-wide. These locations are divided into regions and Availability Zones. As of January 2016, there are 11 regions, each region contains two or more Availability Zones. Your resources, such as EC2 instances, reside in the region of your choice. AWS regions are isolated from each other and you usually cannot access resources in another region. Furthermore, some newer services may be available in some regions while not in others.

Each Availability Zone (AZ) is basically a separate physical data center, and provides low latency connectivity to all other AZs in the same region. Although you cannot access resources in another region, but you can seamlessly manage resources in different AZs within the same region. It is recommended that you provision your resources across multiple AZs to achieve redundancy. When a single AZ has a problem, your resources will be still available in other AZs. For example, S3 stores your data in multiple AZs within your region of choice.

Edge locations serve requests for CloudFront and Route 53 services. CloudFront is a content delivery network (CDN), while Route 53 is a DNS service. Requests going to either one of these services will be automatically routed to the nearest edge location (out of 53 available edge locations, as of Jan 2016). This allows for low latency no matter where the end user is located.

Infrastructure Services

AWS offerings are divided into two large groups: Infrastructure and Platform, which are further divided into different categories. In addition to plain explanation to each service, I added its typical non-cloud, closest equivalent applications or technologies in “Use it like” column next to “AWS name” column. Note that they are just analogies, purely for illustration purposes. The official service names are in bold (e.g., EC2 and S3), while their respective full names (e.g., Elastic Compute Cloud and Simple Storage Service, respectively) are in parentheses.

The grouping of Amazon Web Services as below is purely for review purpose (and remembering their numerous acronyms and names) since these services rarely work alone or are limited to a small group of services. For example, EC2 instances are usually deployed in some Auto Scaling Groups, all of these groups are in some VPC, accepting traffic from some ELBs. In a more sophisticated example, you can have some web application running on EC2 instances which store application data in Amazon DynamoDB which, in turn, store its index in some Amazon S3 buckets. This Amazon DynamoDB have some database “triggers” implemented with AWS Lambda. These services can be monitored for performance using CloudWatch and access-controlled by IAM. These examples show that how these AWS offerings can be inter-dependent and inter-connected in practice.

Compute

AWS name Use it like Notes
Amazon EC2
(Elastic Compute Cloud)
Application server Remote, virtual server instances.
What is EC2
Instance types
Tags
Key Pairs
EC2 and VPC
AMI
Amazon ELB
(Elastic Load Balancing)
Incoming traffic load balancing.
ELB
ELB Terms and Concepts
AWS Lambda Like a cluster of one node.
Amazon EC2
Container Service
Deployment Service
Auto Scaling Scaling
Auto Scaling Group


Networking

AWS name Use it like Notes
VPC
(Virtual Private Cloud)
VLAN Virtual networking environment.
Interaction with EC2 instances as if you are in the same existing network.
Amazon Route 53 DNS server DNS service.
Use Route 53 for cross-region failover configuration.
AWS Direct Connect
Amazon CloudFront CDN Content delivery service.
Working like a cache for frequently accessed web pages or images to reduce latency.


Storage

AWS name Use it like Notes
Amazon S3
(Simple Storage Service)
FTP server. Object store. Not a file system like EBS.
More on S3 vs. EBS.
Amazon EBS
(Elastic Block Storage)
Hard drive to EC2. Block storage. You can choose file system to format.
You need a EC2 instance attach to it.
Glacier Tape backup. Cold storage for archives, i.e., infrequently accessed files.
It takes much longer to access Glacier files than S3.
Elastic File System File system. Currently in Preview.
EBS cannot be connected to multiple EC2 instances.
One Elastic File System instance can be connected to multiple EC2 instances.
More on EFS vs. EBS vs. S3.


Administration & Security

AWS name Use it like Notes
AWS IAM Manage users, keys, and certificates.
You can set up additional users and new AWS keys, modify policies.
Follow Best Practices
CloudWatch Monitoring metrics and performance.
CloudTrail Logging calls to services.


Applications

AWS name Use it like Notes
WorkSpaces VirtualBox
Remote Desktop
Desktop as a Service.
Cloud-based desktop service with installed common applications.
WorkDocs


Platform Services

Databases

AWS name Use it like Notes
RDS
(Relational Database Service)
MySQL, PostgreSQL, etc.
Relational databases.
Managed relational databases in the cloud.
Amazon Aurora, Oracle, Microsoft SQL Server, PostgreSQL, MySQL and MariaDB.
Aurora Managed MySQL. MySQL users can import their data.
ElastiCache Memcached. Redis. For information retrieval from memory-based cache nodes instead of slower disk-based databases.
It supports Memcached and Redis caching engine.
DynamoDB MongoDB Managed NoSQL database service.
Redshift OLAP system Data warehouse service.


Analytics

AWS name Use it like Notes
Kinesis Apache Kafka, Storm. Event stream processing platform.
EMR
(Elastic MapReduce)
MapReduce. HBase. Big Data processing.
Spark is also available.
Data Pipeline


App Services

AWS name Use it like Notes
Cloud Search
SES
SWF
Elastic Transcoder


Deployment & Management

AWS name Use it like Notes
Code Commit Git Source control service.
Code Deploy Code deployment service.
CloudFormation Chef (in JSON) Infrastructure as Code.
Provisioning using source-controlled codes.
Elastic Beanstalk CloudFormation simplified for WebApps. Higher-level of CloudFormation for web applications.
Example usage: Blue-Green deployment (easier than CloudFormation).
OpsWork Chef Higher-level of CloudFormation.
Configuration Management.


Mobile Services

AWS name Use it like Notes
SNS Notifications.
Cognito Mobile authentication and data syncing.
Mobile Analytics Measure and analyze mobile application usage data.

Other information

Globally accessible services:

  • IAM
  • Route 53
  • Cloud Front
  • Web App Firewall

Regionally accessible services:

  • S3