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