Book Image

Learning AWS - Second Edition

By : Aurobindo Sarkar, Amit Shah
Book Image

Learning AWS - Second Edition

By: Aurobindo Sarkar, Amit Shah

Overview of this book

Amazon Web Services (AWS) is the most popular and widely-used cloud platform. Administering and deploying application on AWS makes the applications resilient and robust. The main focus of the book is to cover the basic concepts of cloud-based development followed by running solutions in AWS Cloud, which will help the solutions run at scale. This book not only guides you through the trade-offs and ideas behind efficient cloud applications, but is a comprehensive guide to getting the most out of AWS. In the first section, you will begin by looking at the key concepts of AWS, setting up your AWS account, and operating it. This guide also covers cloud service models, which will help you build highly scalable and secure applications on the AWS platform. We will then dive deep into concepts of cloud computing with S3 storage, RDS and EC2. Next, this book will walk you through VPC, building real-time serverless environments, and deploying serverless APIs with microservices. Finally, this book will teach you to monitor your applications, automate your infrastructure, and deploy with CloudFormation. By the end of this book, you will be well-versed with the various services that AWS provides and will be able to leverage AWS infrastructure to accelerate the development process.
Table of Contents (12 chapters)

Defining cloud computing

Wikipedia defines cloud computing as:

"…internet-based computing in which large groups of remote servers are networked to allow the centralized data storage, and online access to computer services or resources."

The National Institute of Standards and Technology (NIST) gives the following definition of cloud computing:

"…a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction."

There are several other broadly accepted definitions of cloud computing. Some explicitly emphasize configurability of the resources, while others include the need for rapid on-demand provisioning of resources, still others drop the requirement of access via the internet. We define cloud computing as a model that enables the features listed as follows:

  • Users should be able to provision and release resources on-demand
  • The resources can be scaled up or scaled down, automatically, depending on the load
  • The provisioned resources should be accessible over a network
  • Cloud service providers should enable a pay-as-you-go model where customers are charged, based on the type and quantum of resources they consume

Some of the implications of choosing to use the cloud for your computing needs are:

  • The illusion of infinite processing and storage resources available on demand reduce the need for detailed advance planning and procurement processes.
  • The model promotes the use of resources as per customer needs, for example, starting small, and then increasing resources based on an increase in need.
  • Provisioning development and test environments on a smaller scale, and enabling them only during working hours to reduce the cost of development.
  • The staging environment can be provisioned for a short duration to be a replica of the production environment. This enables testing using production configuration (and scale) and for improved production defect resolution.
  • The ability to auto scale in order to better manage spikes in demand and variations due to business cycles or time-of-day reasons, and so on.
  • It encourages experimentation by trying out new ideas and software by quickly provisioning resources rather than requisition for resources through time consuming and cumbersome processes.

These and other implications of using cloud services to design scalable, highly available and secure applications are discussed in depth in the subsequent chapters.