Introduction to AWS
What is AWS?
Amazon defines Amazon Web Services (AWS) as "a secure cloud services platform, offering compute power, database storage, content delivery and other functionality to help businesses scale and grow".
What is cloud computing?
On demand delivery of IT resources and applications via the Internet
Resources on cloud
With the traditional model, you need to procure sufficient hardware, bandwidth, and human resources to run the IT infrastructure. Your infrastructure is fixed and financed.
On the cloud, you can choose and initiate your resources within minutes. You can spin up and destroy environments based on your needs. In a way, resources can be considered to be temporary and disposable. You don't need fixed or financed IT infrastructure. You only pay for what you use on the cloud. In short cloud resources on cloud are agile and efficient.
What do you mean by agile and efficient?
Agility refers to speed and ability/culture to experiment and innovate. With AWS, you can setup your resources across the globe within minutes. You can add or remove resources instantly. You can easily create and destroy different environments, thereby, easily testing different configurations. You can also take advantage of AWS cloudFormation which enable templated environments. Experimenting on AWS is low cost and low risk.
Elasticity and Scaleability
Elasticity means that you can easily expand and contract resources based on your usage requirements. Scaleability means the ability to easily scale your project/product up or down. Autoscaling scales your infrastructure based on your needs. Elastic Load Balancing (ELB) automatically re-routes traffic across your dynamically changing infrastructure. Scaleability mostly concerns computing power and storage needs. Cloud offers unlimited bandwidth and ELB servers to route traffic in the most efficient manner.
In a traditional model, you need to predict your infrastructure needs in advance. This means that you will most likely over-allocate resources where most of the capacity sits idle. In the cloud, thanks to elasticity and scaleability, you don't need to forecast storage, computing power, or bandwidth requirements. You only pay for what you use.
Understanding AWS Global Infrastructure
Amazon divides its infrastructure into regions. A region contains 2 more availability zones (AZ). An AZ is collection on data centers. Each AZ is independent and isolated from failures of other AZs. Thus if one AZ fails, all others AZs are not affected by that failure. Failure could be due to power outage, hacker attack, natural or man-made disasters. If an AZ fails, your services are not interrupted because other AZs take the load. It should be noted that Region to Region replication is not automatic. You have to decide to do this replication. Note that there is cost associated with this choice.
An edge location is where end users access services located at AWS. They are located in most of the major cities around the world and are specifically used by CloudFront (CDN) to distribute content to end user to reduce latency. It is like frontend for the service we access which are located in AWS cloud.
Virtual Private Cloud (VPC)
You can create a virtual private network (VPN) inside the AWS cloud. You have complete control over the configuration of your VPC including its security. Furthermore, many AWS services deploy into VPC such as EC2, EMR, RDS, and many others.
AWS offers many laters of security for its infrastructure. Furthermore, it allows you to manage access and security for the infrastructure you are using. The choice differ based on the services you use. AWS allows supports role based security with security groups.