Foundations of Cloud Computing and AWS for Cloud and DevOps Engineers

Foundations of Cloud Computing and AWS for Cloud and DevOps Engineers

Learning path for the AWS Cloud Practitioner exam

📝Introduction

In this post, we will cover the basic Foundations of Cloud Computing and AWS.

📝What is Cloud Computing?

It is a delivery of computing services over the Internet.

These are the elements of Cloud Computing:

  • Compute (i.e. EC2, Lambda)

  • Networking (i.e. VPC, Direct Connect)

  • Storage (i.e. S3, EBS)

  • Analytics (i.e. Athena, Redshift)

  • Development (i.e. Cloud9, CodeCommit)

  • Security (i.e. IAM, Macie)

  • Databases (i.e. RDS, DynamoDB)

📝Usage of Cloud Computing

Pay only when you access the resources and only for what you use.

Types of usage:

  • On-Demand -> No Long-term commitments or Upfront payments

  • Pay-As-You-Go -> Pay by the hour or second for only what you use

📝6 Advantages of Cloud Computing

  • Go Global in minutes -> To deploy applications around the world at the click of a button

  • Stop spending money running and maintaining DCs -> To be focused on building applications instead of Managing HW

  • Benefit from massive Economies of Scale -> To get volume discounts with the use of lower pay-as-you-go prices

  • Increase Speed and Agility -> Innovate more quickly and deliver applications faster

  • Stop Guessing Capacity -> Capacity matched exactly to the demand

  • Trade Capital expose for variables expense -> Pay for what you use instead of making huge Upfront investments

📝Benefits of Cloud Computing

  • High Availability(HA) -> Designed to operate continuously without failure for a long time / Avoid loss of service by reducing or managing failures

  • Elasticity -> Do not have to plan ahead of time how much capacity you need / Provision only what you need and then grow and shrink based on demand

  • Agility -> Increased agility / Innovate faster

  • Durability -> Long-term data protection / Data will remain intact without corruption

📝Capex vs. Opex

  • Capex -> Capital Expenditures are Upfront purchases toward fixed assets

  • Opex -> Operating Expenses are funds used to run day-to-day Operations

📝Cloud Computing Models

There are 3 common models:

  • IaaS (Infrastructure as a Service) -> Cloud provider manages IT infrastructures such as storage, server and networking resources, and delivers them to subscriber organizations via virtual machines accessible through the internet (i.e. AWS EC2, GCP Compute Engine and Azure VMs).

    • IaaS architecture -> Cloud provider hosts the infrastructure components that are traditionally present in an on-premises data centre. This includes servers, storage and networking hardware, as well as the virtualization or hypervisor layer.

      IaaS providers also supply a range of services to accompany those infrastructure components. These can include the following:

      • detailed billing;

      • monitoring;

      • log access;

      • security;

      • load balancing;

      • clustering; and

      • storage resiliency, such as backup, replication and recovery.

These services are increasingly policy-driven, enabling IaaS users to implement greater levels of automation and orchestration for important infrastructure tasks.

  • PaaS (Platform as a Service) -> Third-party provider delivers hardware and software tools to users over the internet. Usually, these tools are needed for application development. A PaaS provider hosts the hardware and software on its own infrastructure. As a result, PaaS frees developers from having to install in-house hardware and software to develop or run a new application (i.e. AWS Lambda, Google App Engine, Azure CDN).

    • PaaS architecture -> Does not replace a company's entire IT infrastructure for software development. It is provided through a cloud service provider's hosted infrastructure. Users most frequently access the offerings through a web browser. PaaS can be delivered through public, private and hybrid clouds to deliver services such as application hosting and Java development.

      Other PaaS services include the following:

      • development team collaboration;

      • application design and development;

      • application testing and deployment;

      • web service integration;

      • information security; and

      • database integration.

Users will normally have to pay for PaaS on a per-user basis. However, some providers charge a flat monthly fee for access to the platform and its applications.

  • SaaS (Software as a Service) -> It is a software distribution model in which a cloud provider hosts the entire infrastructure and applications, and makes them available to end users over the internet (i.e. Amazon Chime, Office365, Gmail).

    • SaaS architecture -> SaaS applications and services typically use a multi-tenant approach, which means a single instance of the SaaS application will be running on the host servers, and that single instance will serve each subscribing customer or cloud tenant. The application will run on a single version and configuration across all customers, or tenants. Though different subscribing customers will run on the same cloud instance with common infrastructure and platform, the data from different customers will still be segregated.

      SaaS removes the need for organizations to install and run applications on their own computers or in their own data centres. This eliminates the expense of hardware acquisition, provisioning and maintenance, as well as software licensing, installation and support.

    • Other benefits of the SaaS model include:

      • Flexible payments -> Rather than purchasing software to install, or additional hardware to support it, customers subscribe to a SaaS offering. Transitioning costs to a recurring operating expense allows many businesses to exercise better and more predictable budgeting. Users can also terminate SaaS offerings at any time to stop those recurring costs.

      • Scalable usage -> Cloud services like SaaS offer high Vertical scalability, which gives customers the option to access more or fewer services or features on demand.

      • Automatic updates -> Rather than purchasing new software, customers can rely on a SaaS provider to automatically perform updates and patch management. This further reduces the burden on in-house IT staff.

      • Accessibility and persistence -> Since SaaS vendors deliver applications over the internet, users can access them from any internet-enabled device and location.

      • Customization -> SaaS applications are often customizable and can be integrated with other business applications, especially across applications from a common software

    • Private Clouds -> It is related to internal databases and local network

      • Also called "on-premises"

      • Exists in your internal data center

      • Does not offer the advantages of cloud computing

    • Public Clouds ->It is related to having all infrastructure and applications on the internet

      • Offered by Cloud Providers (CSPs)

      • You are not responsible for the physical hardware

      • Provides all the advantages of cloud computing

    • Hybrid Clouds -> A hybrid cloud is a combination of public and private clouds (i.e. AWS Direct Connect)

      • Sample architecture for a hybrid solution

      • Highly sensitive data stored locally

      • Web application runs on AWS infrastructure

      • AWS provides tools so they talk to each other

📝Leveraging the AWS Global Infrastructure

  • Region -> A Region is a physical location. AWS logically groups its Regions into geographic locations.

    • Region Characteristics

      • Fully Independent and Isolated. If one Region is impacted, the others will not be.

      • Resource and Service Specific. Regions are isolated, and resources are not automatically replicated across them.

      • A Region is global and has 2 or more AZs.

        Regions are geographically isolated locations around the globe.

    • Availability Zones -> Availability Zones (AZs) consist of one or more physically separated data centres, each with redundant power, networking, and connectivity, housed in separate facilities.

      • Characteristics of AZs

        • AZs are connected among themselves in a single Region

          • Physically separated

          • Connected through low-latency links

          • Fault-tolerant

          • Allows for high availability

        • Multi-AZ deployments provide high availability. Systems that are highly available are dependable enough to operate continuously without failure.

        • An AZ has multiple data centres. You can think of an AZ as a collection of data centres.

    • Edge Locations -> They are cache content for fast delivery to your users.

      • Edge locations ensure low latency by placing content closer to users. There are more edge locations than Regions and AZs.

📝Exploring Your Amazon Web Services (AWS) Account

  • AWS Management Console -> To allow you to access your AWS account and manage applications running in your account from a web browser.

    • The console makes it easy to search for and find services.

    • The root user should be protected with MFA

    • There are certain things that only the root user can do.

  • AWS Command Line Interface (CLI) -> To allow you to access your AWS account through a terminal or command window.

    • Sometimes new features are available via the CLI before the console.

    • The CLI is mainly used by developers.

    • Understand what Is stored on your local machine to access AWS via the CLI.

  • Programmatic Access -> Programmatic access provides access to your AWS resources through an application or a tool like the CLI.

    • Using CLI to manage AWS services from a terminal session on your laptop.

    • AWS services can be accessed from application code using SDKs and programmatic calls.

    • SDKs allow you to access AWS services from popular programming languages like Java, Python, C#, and many more.

Thank you for reading. I hope you were able to understand and learn something helpful from my blog.

Please follow me on Hashnode and on LinkedIn franciscojblsouza