Amazon Web Services (AWS)
In this section, we will take a look at Amazon Web Services (AWS) platform and the various features provided by it.
Following are a few products and services offered by Amazon Web Services, and this should give an idea of the capabilities provided by the AWS platform.
Infrastructure As a Service:
The IAAS components include compute capacity, storage, and network components.
1. EC2 instance:
EC2 instances provide compute capacity with different combinations of CPU and Memory and obviously varying price tags, which could be selected based on requirements. When we create an EC2 instance, AWS will reserve the specified amount of CPU and memory for us. An EC2 instance is analogous to a virtual machine. An EC2 instance can be created from a predefined image which is known as 'Amazon Machine Image' (AMI). Note that an EC2 instance is ephemeral, meaning, the content of the EC2 instance is volatile and could be lost at any time. EC2 instance does not guarantee persistence. However, AWS provides an SLA such that, if we provision N number of EC2 instances, then AWS will guarantee that number with a high availability (refer to AWS docs for how much nines they offer).
2. Elastic Block storage (EBS):
EBS or Elastic Block storage is a storage component for for EC2 instances and it could be attached to any EC2 instance. It will act like a volume storage and will provide persistence to the EC2 instance.
3. Elastic Load Balancing (ELB):
ELB is a scalable Load balancer solution which provides load balancer capabilities, but in addition, can scale horizontally based on traffic. This is one of the unique offerings and can guarantee high performance in high volume applications. A traditional load balancer cannot scale horizontally and we would need to estimate and install a fixed number of active load balancers. However, if the traffic grows or shrinks, we cannot add or remove load balancers on the fly in a traditional model. An ELB, can add or remove load balancers on the fly and will give us cost edge (since when traffic is low, the ELB would scale down) and also provide better performance.
4. Amazon VPC:
A virtual private cloud, which provides an isolated network with subnets, which could be either internet facing or private subnets. (VPCs in general, were covered in earlier sections).
5. Route 53:
Route 53 is a DNS as a service where domain names could be configured. It is similar to a traditional DNS server, but this an offering on the cloud from Amazon.
6. EC2 Container Service:
ECS is a Docker based Container Orchestration service. (Container Orchestration in general, were covered in earlier sections).
Database As a Service:
AWS provides quite a wide variety of databases as a service, including RDBMS and NoSql databases like DynamoDB, Elastic Cache. AWS also provides a marketplace, wherein third party vendors can provide database as a service offering. For example, MongoDB is provided as a service by MongoLab. The SLA of that database availability , maintenance etc. are specified by this vendor.
Relational Database Service (RDS):
Some of the popular RDBMS, like Oracle, MySql, PostGres etc. are provided as a service through RDS. An RDS instance could also be provisioned within a specific VPC (in which case, the data resides within the VPC).
Middleware As a Service:
AWS provides quite a lot middleware service like Authentication services (IAM), messaging queues (SQS), email services (SES).
Monitoring and Deployment:
AWS provides services to monitor applications/infrastructure like 'Cloud Watch' and also frameworks like 'Elastic Bean Stalk' which is a platform as a service which helps in quick deployment of applications.