Cloud Computing #Day5
Tags: aws, cloud, computing
Published: 2022-08-14 11:10:14

In this module I will throw light on the <strong>AWS Global Infastructure</strong>, that is built by availibity zones or regions followed by the edge locations that serve as cached copies for faster delivery.

## Availibility Zones

An Availability Zone is a single data center or a group of data centers within a Region. Availability Zones are located tens of miles apart from each other. This is close enough to have <strong>low latency (the time between when content requested and received)</strong> between Availability Zones. However, if a disaster occurs in one part of the Region, they are distant enough to reduce the chance that multiple Availability Zones are affected. This particular advantage serves as the main purpose of the defined infastructure.

![image](https://user-images.githubusercontent.com/88903134/184368795-b8da8775-0c55-4a81-9c1d-be79992a6544.png)


The above diagram clearly explains the infastructure of availibility zones (like us-west-1a) within regions (say, N.California) and how they are related within a small distance to maintain low latency.


> <strong>Planning for failure and deploying applications across multiple Availability Zones is an important part of building a resilient and highly available architecture.</strong>


### Amazon CloudFront and Edge locations

An edge location is a site that <strong>Amazon CloudFront</strong> uses to store cached copies of your content closer to your customers for <strong>faster delivery.</strong> Hence along with the discussion of these caching locations comes Amazon CloudFront, a web service that speeds up distribution of static and dynamic web content, such as .html, .css, .js, and image files, to the users. When a user requests content that you're serving with CloudFront, the request is routed to the edge location that <strong>provides the lowest latency</strong> (time delay), so that content is delivered with the best possible performance.

I won't dive deep into the CloudFront business instead I will attach a diagram related to it.

![image](https://user-images.githubusercontent.com/88903134/184533099-d46c9caa-f2a9-4bcd-8661-2ae09f53ef31.png)



## Interacting with AWS Services

In AWS, <strong>everything is an API call</strong> (an API is an application programming interface). And what that means is, there are pre determined ways for you to interact with AWS services. And you can invoke or call these APIs to provision, configure, and manage your AWS resources. 
For example, you can launch an EC2 instance or you can create an AWS Lambda function. Each of those would be different requests and different API calls to AWS. You can use the <strong>AWS Management Console, the AWS Command Line Interface, the AWS Software Development Kits,</strong> or various other tools like AWS CloudFormation, to create requests to send to AWS APIs to create and manage AWS resources. 

#### The AWS Management Console 
- The AWS Management Console is a web-based interface for accessing and managing AWS services.
- You can quickly <strong>access recently used services</strong> and search for other services by name, keyword, or acronym.
- The console includes wizards and automated workflows that can simplify the process of completing tasks.


#### The AWS Command Line Interface
- To save time when making API requests, you can use the AWS Command Line Interface (AWS CLI).
- AWS CLI enables you to <strong>control multiple AWS services directly</strong> from the command line within one tool.
- By using AWS CLI, you can automate the actions that your services and applications perform through scripts. 

#### Software Development Kits (SDKs)
- SDKs make it easier for you to use AWS services through an API designed for your programming language or platform.
- SDKs enable you to <strong>use AWS services with your existing applications</strong> or create entirely new applications that will run on AWS.


### Amazon Elastic BeanStalk

AWS Elastic Beanstalk is a service that helps you provision Amazon EC2-based environments. With AWS Elastic Beanstalk, you provide code and configuration settings, and Elastic Beanstalk deploys the resources necessary to perform the following tasks:

- <strong>Adjust capacity</strong>
- <strong>Load balancing</strong>
- <strong>Automatic scaling</strong>
- <strong>Application health monitoring</strong>


### Using IAAS as AWS CloudFormation

AWS CloudFormation provisions your resources in a safe, repeatable manner, enabling you to frequently build your infrastructure and applications without having to perform manual actions. It determines the right operations to perform when managing your stack and rolls back changes automatically if it detects errors.



The next day will be describing how amazing the networking is carried out in AWS, the <strong>Subnets and Security groups</strong> oh its just awesome <strong>!!!</strong>



## Happy Coding ☕☕