Cloud computing

  • Definition Cloud computing is the on-demand delivery of IT resources over the internet with pay-as-you-go pricing.
  • Modern computing is based on the client-server model. A client can be a web browser or desktop application that a person interacts with to make requests to computer servers.

    A server can be services such as Amazon Elastic Compute Cloud (Amazon EC2), a type of virtual server.

  • Benefits
    • Trade upfront expense for variable expense
    • Stop spending money to run and maintain data centers
    • Stop guessing capacity
    • Benefit from massive economies of scale
    • Increase speed and agility
    • Go global in minutes
  • Deployment models:
    • Infrastructure as a service (IaaS) Infrastructure as a service (laaS) contains the basic building blocks for cloud IT. It typically provides access to networking features, computers (virtual or on dedicated hardware), and data storage space. Infrastructure as a service provides the highest level of flexibility and management control over your IT resources.

      Many AWS services are considered laaS, including Amazon EC2, Amazon Simple Storage Service(Amazon S3), Amazon Relational Database Service (Amazon RDS), and Amazon Route 53.

    • Platform as a Service (PaaS) Platform as a service (PaaS) removes the need for organizations to manage the underlying infrastructure (usually hardware and operating systems). They can focus on the deployment and management of applications. These tools give developers the ability to be more efficient because they don’t need to worry about resource procurement, capacity planning, software maintenance, and patching.

      An example of platform as a service is AWS Elastic Beanstalk. This service is used for quickly deploying and scaling web applications.

    • Software as a service (SaaS) Software as a service (SaaS) is a completed software product that the service provider runs and manages. With a SaaS offering, you do not have to think about how the service is maintained or how the underlying infrastructure is managed. You only must think about how you will use that particular piece of software.

      Examples of software as a service are video meeting sites, email sites, file sharing sites, and messaging apps.

  • Deployment strategies
    • Cloud In a cloud-based deployment model, you can migrate existing applications to the cloud, or you can design and build new applications in the cloud. You can build those applications on low-level infrastructure that requires your IT staff to manage them. Alternatively, you can build them by using higher-level services that reduce the management, architecting, and scaling requirements of the core infrastructure.

      For example, a company might create an application that consists of virtual servers, databases, and networking components that are fully based in the cloud.

    • Hybrid In a hybrid deployment, cloud-based resources are connected to on-premises infrastructure. You can integrate cloud-based resources with legacy IT applications. You might want to use this approach in a number of situations. For example, you have legacy applications that are better maintained on premises, or government regulations require your business to keep certain records on premises.

      For example, suppose that a company wants to use cloud services that can automate batch data processing and analytics. However, the company has several legacy applications that are more suitable on premises and will not be migrated to the cloud. With a hybrid deployment, the company would be able to keep the legacy applications on premises while benefiting from the data and analytics services that run in the cloud.

    • One-premises On-premises deployment is also known as a private cloud deployment. In this model, resources are deployed on premises by using virtualization and resource management tools. Increase resource utilization by using application management and virtualization technologies.

      For example, you might have applications that run on technology that is fully kept in your on- premises data center. Though this model is much like legacy IT infrastructure, its incorporation of application management and virtualization technologies helps to increase resource utilization.

AWS introduction

Overview

overview

Fig. AWS overview

AWS global infrastructure

  • The main components of the AWS global infrastructure are regions, availability zones, and edge locations.
  • Plan for failure
    • Storage When a file is stored in Amazon S3, the file is redundantly copied into every Availability Zone in that Region. If one Availability Zone goes down, you still have two copies of that file available for you to use.
    • Compute It is a best practice to spread out your computing resources across multiple Availability Zones to guarantee high availability. So, if one Availability Zone goes down, your architecture is still up and running.
    • Database You can configure your database for Multi-AZ deployment. If your Availability Zone with your primary database fails, one of the standby databases in a healthy Availability Zone automatically becomes your new primary database. Therefore, your architecture is still functioning.
  • Benefits
    • Performance
    • Availability
    • Security
    • Reliability
    • Scalability
    • Low cost
  • Shared responsibility

Shared responsibility

Fig. Shared responsibility

AWS well-architected framework

AWS Management console

Cost and billing

  • The Total Cost of Ownership (TCO) is a financial metric that is used to estimate and compare direct and indirect costs of a product or a service. It typically includes the actual costs of the following:
    • Procurement
    • Management
    • Maintenance
    • Decommissioning of hardware resources
  • AWS pricing calculator
  • The regions that you choose impact that the services that are available to you, the cost of services and the latency to users.
  • US East (N. Virginia) is the primary region of AWS and provides access to all AWS services.
  • AWS regions consist of one or more isolated locations known as availability zons, which comprise serval data centers.
  • AWS payment models
    • Pay as you go
    • Save when you commit
    • Pay less by using more
  • AWS free tier
    • Always free
    • 12 months free
    • Trials
  • Use AWS cost explorer to view and analyze your AWS costs and usage.
  • AWS global infrastructure
  • Check Amazon VPC for resources by region.
  • AWS billing dashboard to pay bill, monitor usage, analyze and control costs.

AWS core services

Microservices architecture

  • Loosely coupled, high application integrity
  • Microservices

    Fig. Microservices architecture

    Main service types

  • Managed services A managed service is a way to describe the services that require you to manage infrastructure management tasks like patching, backup, and repair. These services grant you virtual access to the underlying operating system and servers. With managed services, you are responsible for scaling and building for high availability.
  • Fully managed services A fully managed service is a way to describe the services that automate infrastructure management tasks that AWS handles, like patching, backup, and repair. These services do not grant you any virtual access to the underlying operating system or servers. With a fully managed service, you are still responsible for scaling and building for high availability.
  • Serverless services Serverless is a way to describe the services, practices, and strategies that you can use to build more agile applications. In this way, you can innovate and respond to change faster. With serverless services, AWS handles infrastructure management tasks like capacity provisioning and patching so that you can focus on building applications that serve your customers. Serverless services come with automatic scaling, built-in high availability, and a pay-for-value billing model.

    Core services architecture

architecture

Fig.Core Services Architecture

  • Amazon virtual private cloud - VPC
    • Amazon Virtual Private Cloud (Amazon VPC) is a service that you use to launch AWS resources in a logically isolated virtual network that you define. As a foundational AWS service, Amazon VPC makes it easy to customize your VPC’s network configuration. You can create a public-facing subnet for your web servers that have access to the internet. You can also use Amazon VPC to place your backend systems, such as databases or application servers, in a private-facing subnet with no internet access. With Amazon VPC, you can use multiple layers of security to help control access to Amazon EC2 instances in each subnet. These layers include security groups and network access control lists (network ACLs).
    • The diagram shows how you can use a VPC to build a solution that has both a public subnet and a private subnet. The public subnet has an EC2 instance that hosts a web application that has access to the internet. The private subnet has an RDS instance that is protected from direct access to the internet.

    vpc

    Fig.VPC

  • AWS identity and access management (IAM)
    • IAM is a centralized security management system that is included in every AWS account to control identity access to AWS services. By attaching IAM permission policies to identities you can manage which services each identity can access and the kind of actions the identity can perform.

    Identities in IAM are users, groups and roles.

  • Amazon DynamoDB
    • Amazon DynamoDB is a serverless non-relational database that can store and retrieve any amount of data and serve any level of request traffic. You can scale your database tables’ throughput capacity up or down without downtime. You can use the AWS Management Console to monitor resource utilization and performance metrics.
  • Amazon elastic compute cloud - EC2
    • Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides secure, resizable compute capacity in the cloud. It is designed to make web-scale cloud computing easier for developers. You can use the simple web interface of Amazon EC2 to obtain and configure capacity with minimal friction. It provides you with complete control of your computing resources, and you can run it on the proven computing environment of Amazon.
  • AWS Lambda
    • AWS Lambda is a serverless compute service that you can use to run function code without provisioning or managing servers. You can use Lambda to run function code for virtually any type of application or backend service. You upload your code, and Lambda takes care of everything that is required to run and scale your code with high availability.
    • AWS Lambda removes all administration for application or backend services that can be processed in snippets of code. You upload your code as a .zip file or container image. Then, Lambda automatically and precisely allocates compute power to run your code based on the incoming request or event, for any scale of traffic. You can set up your code to automatically trigger from over 200 services and software as a service (SaaS) applications or call it directly from any web or mobile app.
  • Amazon Simple Notification Service (SNS)
    • Amazon Simple Notification Service (Amazon SNS) is a web service that makes it easy to set up, operate, and send notifications from the cloud. It provides developers with a highly scalable, flexible, and cost-effective capability to publish messages from an application and immediately deliver them to subscribers. These subscribers can be notification recipients or other applications.
  • Amazon CloudWatch
    • Amazon CloudWatch is a monitoring and observation service that is built for DevOps engineers, developers, security engineers, and IT managers. CloudWatch provides you with data and actionable insights to monitor your applications, respond to system-wide performance changes, and optimize resource utilization. You get a unified view of operational health.
  • Amazon Relational Database Service (RDS)
    • Amazon Relational Database Service (Amazon RDS) is a distributed relational database managed service. It is cloud- based and designed to simplify the setup, operation, and scaling of relational databases. Administrative processes like patching, backing up databases, and enabling point-in-time recovery are managed automatically.
  • Amazon Simple Storage Service - S3
    • Amazon S3 is object storage that is built to store and retrieve any amount of data from anywhere at any time. It’s a simple storage service that offers industry-leading durability, availability, performance, security, and virtually unlimited scalability at low costs.