Foundations of Cloud Computing
Understanding Cloud Computing
It is a real place, your data is stored somewhere. It is really servers across the world that handle your requests. Whenever you access an online resource, there are servers that serve the data to your computer.
What is cloud computing?
Formal definition: Cloud computing is the on-demand delivery of compute power, database, storage, applications and other IT resources through a cloud services platform via the internet with pay-as-you-go pricing.
A cloud services platform such as AWS owns and maintains the network-connected hardware required for these application services, while you provision and use what you need via a web application.
Intuition: It is the delivery of IT services over the Internet. There are a variety of high-level services that AWS provides:
Compute servicse (EC2, Lambda)
Networking services (VPC, DirectConnect)
Storage (S3, EBS)
Analytics (Athena, Redshift)
Development (Cloud9 and CodeCommit)
Security (IAM, Macie)
Database (RDS, DynamoDB)
And several more!
What is a virtual machine?
Virtualization is at the heart of cloud computing. It divides hardware resources on one single physical server into smaller units.
Your usage is placed on a meter. You pay only when you access it, and only for what you use. You have On-Demand, and Pay as you go pricing plans.
Make sure you remember the categories for each service.
Six Advantages of Cloud Computing
Trade Fixed Expense for Variable Expense
Benefit from Massive Economies of Scale
Stop guessing capacity on your infrastructure needs
Increase speed and agility of scaling
Stop spending money and maintaining data centers
Go global in minutes
Technical terms of benefits of cloud computing
High Availability: Operates continuously without failure to avoid loss of service by reducing or managing failures
Elasticity: Elasticity of capacity based on demand.
Agility: Increased agility, helping to innovate faster and get faster speed to market.
Durability: Long-term data protection, without corruption.
Cloud computing models
Three different service models:
Infrastructure as a Service (IaaS): A fundamental building block that cna be rented. Eg. A web hosting server, or an EC2 instance
Software as a Service (SaaS): Using a complete application on demand that someone offers to users. Eg. Your email provider
Platform as a Service (PaaS): Develop software using web-bsaed tools without worrying about underlying architecture. Eg. Tools to build a storefront website like Shopify
Cloud deployment models
There are three cloud deployment models:
Private Cloud (On-premises): Internal data center where everything runs on existing servers. No advantages accrued of cloud computing, but resources aren't shared.
Public Cloud: This is AWS, you don't have a physical hardware server and provides all advantages of cloud computing.
Hybrid Cloud: Combination of both private and public. Companies keep highly sensitive data in their own servers but apps that read the data talk to each other using DirectConnect
Cloud Global Infrastructure: Regions
Region is a physical location. Regions are contained within geographic locations, such as US East.
Geographic locations: US East, US West, Europe, Asia-Pacific, South America, Africa
Regions have several characteristics:
Each region is fully independent and isolated. If one is impacted, others will not be
Regions are resource and service-specific. Resources aren't automatically replicated
Availability Zone is a zone of one or more physically separated data centers, each with redundant power, networking and connectivity in separate facilities.
Ohio region has three availability zones: US-East-2A, US-East-2B, US-East-2C for example. Each availability zone has multiple data centers.
Characteristics of Availability Zones:
Physically separated, use different power grids
Connected to other AZ in the region through low-latency links
Fault tolerant
Allows for high availability
Edge Locations cache content for fast delivery to your users, made possible through cloudfront. They reduce latency and increase speed of your applications. Latency is the time that passes between a user request and the resulting response. High latency is not a good thing. There are more edge locations than regions or availability zones.
Interacting with AWS
There are several ways to interact with your AWS account and access AWS services.
AWS Management Console is the most popular way and allows you to access your account from the web browser. Useful for people who are new to the cloud, or non-technical users. It is also used by technical users sometimes, as it makes it easy to find and access AWS services.
Root User is the one user to rule them all. The email that you initially use to create your AWS account is the root user. It is the only user that can permanently delete the AWS account. It is best not to use the root user for day-to-day tasks, and to use MFA to secure the root user.
You can use IAM (Identity and Access Management) to manage users, add MFA, and add users to your account.
When you set up your AWS account, you get a default VPC (Isolated Cloud Resources) provisioned. It includes a VPC, 6 subnets, a route table and an internet gateway. They are provisioned by default. When provisioning EC2 services or other services that require a VPC, they will tend to default to this VPC unless you create a separate one.
When you're in a specific resource, you can only see the resources in that region. If you wanted to see resources for other regions, you'd have to navigate to that region.
AWS Command Line Interface or AWS CLI is the second way to interact with your AWS account. Sometimes new features are available in CLI before the console. CLI gives you programmatic access, so you can develop code that interacts with AWS resources through an application or tool.
Three ways to access AWS resources programmatically:
CLI
Application Code (through SDKs)
SDKs allow you to access AWS services from popular programming languages
Last updated