AWS architecture and components

Design for failure and nothing will fail

AWS EC2 can be hosted in different locations worldwide. These multiple locations are created as regions. Amazon EC2 offers you the flexibility and ability to use resources, such as instances and databases, in multiple regions or geographical locations. However, resources won’t be replicated specifically across multiple regions until and unless you do it externally.

Each AWS region is intended to be completely insulated from other AWS regions by geographical location. So this will achieve the - high availability - stability with fault-tolerance

it is good to deploy your apps as close as possible to your end users. For example, if the majority of your users are from the UK, it would be best to go with the EU (Ireland) region because it is the nearest one. Other points you need to consider when choosing the regions are legal clauses and costs.

Region & Number of Availability Zones

  • AWS GovCloud (2)
  • US West: Oregon (3), Northern California (3)
  • US East: Northern Virginia (5), Ohio (3)
  • Canada:Central (2)
  • South America: São Paulo (3)
  • Europe: Ireland (3), Frankfurt (2), London (2)
  • Asia Pacific :Singapore (2), Sydney (3), Tokyo (3), Seoul (2), Mumbai (2)
  • China: Beijing (2)

New Region (coming soon) - Paris - Ningxia

AWS Regions

AWS currently has about 10 regions, each containing multiple data centers within themselves

In simple terms, the resources that are geographically close to your organization are served much faster! For example, an organization running predominantly from USA can leverage the USA’s regions to host their resources and gain access to them must faster.

AWS does not replicate resources across regions automatically. It is up to the end user to set up the replication process.

AWS Availablity Zones

Each region is split up into one or more Availability Zones (AZs) and pronounced as A-Zees. An A Z is an isolated location inside a region. AZs within a particular region connect to other AZs via low-latency links.

Every AZ will be running on its own infrastructure environment, with self-governing cooling, network with security, and power. AZs are not affected by common failures such as generators or cooling equipment failure. The great advantage of AZs is that they are physically separated so that disasters such as fire, floods, and tornadoes won’t affect more than one AZ.

For More and Updated information check this link - http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html

A-Zees are one or more physical data centers that host AWS services on them. Just as with regions, even AZs have corresponding codes to identify them, generally they are regional names followed by a numerical value. For example, if you select and use us-east-1, which is the North Virginia region, then it would have AZs listed as us-east-1b, us-east-1c, us-east-1d, and so on:

Region Name Code
North America US East (N. Virginia) us-east-1
  US West (N. California) us-west-1
  US West (Oregon) us-west-2
South America Sao Paulo sa-east-1
Europe EU (Frankfurt) eu-central-1
  EU (Ireland) eu-west-1
  EU (London) eu-west-2
Asia Asia Pacific (Tokyo) ap-northeast-1
  Asia Pacific (Singapore) ap-southeast-1
  Asia Pacific (Sydney) ap-southeast-2
  Asia Pacific (Beijing) cn-north-1
  Asia Pacific (Mumbai) ap-south-1
  Asia Pacific (Seoul) ap-northeast-2

Note

  • AZs are very important from a design and deployment point of view. Being data centers, they are more than capable of failure and downtime, so it is always good practice to distribute your resources across multiple AZs and design your applications such that they can remain available even if one AZ goes completely offline.
  • We have to design and distribute your applications so that they do not suffer any potential outages or failures.
  • Design for failure and nothing will fail!

Create AWS account

https://aws.amazon.com/console/

AWS Services by categories

Compute

  • Elastic Compute Cloud (EC2): When it comes to brute computation power and scalability, there must be very few cloud providers out there in the market that can match AWS’s EC2 service. EC2 or Elastic Compute Cloud is a web service that provides flexible, resizable, and secure compute capacity on an on-demand basis. AWS started off with EC2 as one of its core services way back in 2006 and has not stopped bringing changes and expanding the platform ever since. The compute infrastructure runs on a virtualized platform that predominantly consists of the open sourced Xen virtualization engine. We will be exploring EC2 and its subsequent services in detail in the coming chapters.
  • EC2 Container Service: A recently launched service, the EC2 Container Service, allows you to easily run and manage docker containers across a cluster of specially created EC2 instances.
  • Amazon Virtual Private Cloud (VPC): VPC enables you to create secure, fully customizable, and isolated private clouds within AWS’s premises. They provide additional security and control than your standard EC2 along with connectivity options to on premise data centers.

Storage

  • Simple Storage Service (S3): S3 is a highly reliable, fault tolerant, and fully redundant data storage infrastructure provided by AWS. It was one of the first services offered by AWS way back in 2006, and it has not stopped growing since. As of April 2013, an approximate 2 trillion objects have been uploaded to S3, and these numbers are growing exponentially each year.
  • Elastic Block Storage (EBS): EBS is a raw block device that can be attached to your compute EC2 instances to provide them with persistent storage capabilities.
  • Amazon Glacier: It is a similar service offering to S3. Amazon Glacier offers long-term data storage, archival, and backup services to its customers.
  • Amazon Elastic File System: Yet another very recent service offering introduced by AWS, Elastic File System (EFS) provides scalable and high-performance storage to EC2 compute instances in the form of an NFS filesystem.

Databases

  • Amazon Relational Database Service (RDS): RDS provides a scalable, high-performance relational database system such as MySQL, SQL Server, PostgreSQL, and Oracle in the cloud. RDS is a completely managed solution provided by AWS where all the database heavy lifting work is taken care of by AWS.
  • Amazon DynamoDB: DynamoDB is a highly scalable NoSQL database as a service offering provided by AWS.
  • Amazon Redshift: Amazon Redshift is a data warehouse service that is designed to handle and scale to petabytes of data. It is primarily used by organizations to perform real-time analytics and data mining.

Networking

This includes the following services:

  • Elastic Load Balancer (ELB): ELB is a dynamic load balancing service provided by AWS used to distribute traffic among EC2 instances. You will be learning about ELB a bit more in detail in subsequent chapters.
  • Amazon Route 53: Route 53 is a highly scalable and available DNS web service provided by AWS. Rather than configuring DNS names and settings for your domain provider, you can leverage Route 53 to do the heavy lifting work for you.

Distributed computing and analytics

  • Amazon Elastic MapReduce (EMR): As the name suggests, this service provides users with a highly scalable and easy way to distribute and process large amounts of data using Apache’s Hadoop. You can integrate the functionalities of EMR with Amazon S3 to store your large data or with Amazon DynamoDB as well.
  • Amazon Redshift: This is a massive data warehouse that users can use to store, analyze, and query petabytes of data.

Content distribution and delivery

  • Amazon CloudFront is basically a content delivery web service that can be used to distribute various types of content, such as media, files, and so on, with high data transfer speeds to end users globally. You can use CloudFront in conjunction with other AWS services such as EC2 and ELB as well.

Workflow and messaging

  • Amazon Simple Notification Service (SNS): SNS is a simple, fully managed push messaging service provided by AWS. You can use it to push your messages to mobile devices (SMS service) and even to other AWS services as API calls to trigger or notify certain activities.
  • Amazon Simple Email Service (SES): As the name suggests, SES is used to send bulk e-mails to various recipients. These e-mails can be anything, from simple notifications to transactions messages, and so on. Think of it as a really large mail server that can scale as per your requirements and is completely managed by AWS! Awesome, isn’t it! Monitoring
  • Amazon CloudWatch is a monitoring tool provided by AWS that you can use to monitor any and all aspects of your AWS environment, from EC2 instances to your RDS services to the load on your ELBs, and so on. You can even create your own metrics, set thresholds, create alarms, and a whole lot of other activities as well.

Identity and access management

AWS provides a rich set of tools and services to secure and control your infrastructure on the cloud. The most important and commonly used service for this is identity and access management (IAM). Using IAM, you can, as an organizational administrator, create and manage users, assign them specific roles and permissions, and manage active directory federations as well. We will be using a lot of IAM in the next chapter, which covers this topic in greater depth.