CS6065
Cloud Computing and Applications
Cloud Infrastructure
Cloud Building Blocks
• Basic Building Blocks:
servers, storage, and network
• Racks and Rows:
servers, storage, network, power, and racks
2
Cloud Building Blocks
• Data center:
Servers, storage, network, power, racks
Cooling and supply chain
3
Microsoft Data Centers (around the globe)
• Distributed data centers:
Servers, storage, network, power, racks
Cooling, supply chain, leased lines, and
regulations
Source: [Link] 4
[Link]
Existing Cloud Infrastructures
• Public Clouds
Cloud computing infrastructure at Amazon,
Google, and Microsoft (as of mid 2012).
o Amazon is a pioneer in Infrastructure-as-a-Service (IaaS).
o Google's efforts are focused on Software-as-a-Service (SaaS)
and Platform-as-a-Service (PaaS).
o Microsoft is involved in PaaS.
• Private clouds
An alternative to public clouds
Open-source cloud computing platforms, used
for setting up private clouds, include:
o Eucalyptus
o OpenNebula
o Nimbus
o OpenStack
5
Amazon Web Services (AWS)
• IaaS services of AWS were launched in 2006
• Businesses in 200 countries were using AWS
in 2012
• Infrastructure consists of
compute servers
Storage servers
High speed interconnect
A set of services
• An application developer:
Installs applications on a platform of the choice
Manages resources allocated by Amazon
6
Amazon Web Services (AWS)
• AWS released:
• 24 services in 2008.
• 48 services in 2009.
• 61 services in 2010.
• 82 services in 2011.
• 159 services in 2012.
• 280 services in 2013.
• 449 new services and major features were released in 2014.
• AWS services reflect leading-edge technological
developments, e.g.
• Machine Learning Services
• Quantum simulation services
• IoT Services
• …
7
AWS regions and availability zones
• Amazon offers cloud services through a network of
data centers on several continents.
• In each region there are several availability zones
interconnected by high-speed networks.
• An availability zone is a data center consisting of
a large number of servers.
• Regions do not share resources and communicate
through the Internet.
8
AWS regions and availability zones
9
Amazon Services
Elastic Compute Cloud (EC2 )
A virtual computing environment that enables customers to use AWS
interfaces to launch instances with a variety of OS, user’s custom
applications, network's access permission management, and run
user’s image using as many systems as needed
Simple Storage Service (S3)
Amazon S3 provides object storage through web services interfaces
(REST, SOAP, and BitTorrent). S3 uses include web hosting, image
hosting, and storage for backup systems.
AWS CloudFormation
Simplifies provisioning and management on AWS. User can create
templates for the service or application architectures of the need.
Amazon ElastiCache
A web service used to deploy, operate, and scale an in-memory data
store or cache in the cloud, just like Redis (a fast, open source, in-
memory data store and cache).
10
Amazon Services
Amazon CloudFront
A web service that speeds up distribution of user’s static and dynamic web
content, e.g., .html, .css, .js, and image files. CloudFront delivers the
content through a worldwide network of data centers called edge
locations.
Amazon CloudWatch
CloudWatch is designed to monitor AWS cloud resources and hosted
applications. Used for performance monitoring.
Amazon Simple Queue Service (Amazon SQS)
SQS is a pay-per-use web service for storing messages in transit between
computers. Developers use SQS to build distributed applications with
decoupled components without having to deal with the overhead of
creating and maintaining message queues.
AWS Elastic Beanstalk
An orchestration service for deploying infrastructure which orchestrates
various AWS services, including EC2, S3, Simple Notification Service,
CloudWatch, autoscaling, and Elastic Load Balancers.
11
Amazon Services
Elastic Load Balancing (ELB)
A load-balancing service for AWS deployments. ELB automatically
distributes incoming traffic and scales resources to meet traffic demands.
AWS Management Console
A browser-based GUI for AWS. Customers use it to manage their cloud
computing, cloud storage and other resources running on Amazon Web
Services infrastructure.
Amazon Elastic Block Store (Amazon EBS)
EBS provides persistent block storage volumes for use with EC2 instances
in the AWS Cloud. Each EBS volume is automatically replicated within its
Availability Zone to protect you from component failure, offering high
availability and durability.
Auto Scaling
Supports elastic resource management.
Virtual Private Cloud
Allows direct migration of parallel applications.
12
AWS instances
An instance is a virtual server with a well specified
set of resources, including:
CPU cycles, main memory, secondary storage,
communication and I/O bandwidth.
• The user chooses:
Region & availability zone where the virtual server be
hosted.
An instance type from a limited menu of instance types.
• When launched, an instance is provided with a DNS
name; this name maps to a
private IP address
o For internal communication within the internal EC2
communication network.
public IP address
o For communication outside the internal Amazon
network, e.g., for communication with the user that
launched the instance. 13
AWS instances
• Network Address Translation (NAT) maps external IP
addresses to internal ones.
• Public IP address is assigned for the lifetime of an
instance.
• An instance can request an elastic IP address,
rather than a public IP address.
The elastic IP address is a static public IP address allocated
to an instance from the available pool of the availability
zone.
An elastic IP address is not released when the instance is
stopped or terminated and must be released when no
longer needed. 14
AWS instances
EC2
instance
Compute server
EC2 instance
Instance
EC2
Compute server instance
SQS
Cloud watch Compute server
Cloud front
NAT
Cloud interconnect
Elastic cache
Internet
Cloud formation
Elastic beanstalk
Elastic load balancer
AWS management
console S3 EBS SDB
S3 EBS SDB
Servers running AWS
services S3 SDB
S3
Simple DB
15
AWS storage servers
Steps to run an application
• Retrieve the user input from the front-end.
• Retrieve the disk image of a VM (Virtual
Machine) from a repository.
• Locate a system and requests the VMM
(Virtual Machine Monitor) running on that
system to setup a VM.
• Invoke the Dynamic Host Configuration
Protocol (DHCP) and the IP bridging software
to set up MAC and IP addresses for the VM.
16
User interactions with AWS
• Through the AWS Management Console
An easiest way to access all services
However, not all options may be available.
• AWS SDK libraries and toolkits are provided
for several programming languages
including Java, PHP, C#, and Objective-C.
• Raw REST requests.
17
A Typical Example Configuration
CloudWatch
EC2
Linux, Debian,
Fedora,OpenSolaris,
Open Suse, Red Hat, S3
Ubuntu, Windows, Suse
Linux
EBS
SQS -Simple Queue Service
EC2
Linux, Debian, Simple DB
Fedora,OpenSolaris,
Open Suse, Red Hat,
Ubuntu, Windows, Suse
Linux
Virtual Private Cloud
Autoscaling
AWS Management Console 18
EC2 – Elastic Cloud Computing
• EC2
Web service for launching instances of an application
under several operating systems, such as:
o Several Linux distributions.
o Microsoft Windows Server 2003 and 2008, 2008 R2,
2012, 2012 R2, 2016, and 2019.
o OpenSolaris.
o FreeBSD.
o NetBSD.
EC2 is based on the virtualization
o For more than 10 years AWS used the Xen hypervisor.
o In 2017, AWS replaced Xen with KVM.
• A user can
o Load an EC2 instance with a custom application environment.
o Manage network’s access permissions.
o Run the image using as many or as few systems as desired.
19
EC2 – Elastic Cloud Computing
• Import virtual machine (VM) images from the user
environment to an instance through VM import.
• EC2 instances boot from an AMI (Amazon Machine
Image) digitally signed and stored in S3.
• Users can access:
o Images provided by Amazon.
o Customize an image and store it in S3.
• An EC2 instance is characterized by the resources it
provides:
o VC (Virtual Computers) – virtual systems running the instance.
o CU (Compute Units) – measure computing power of each
system.
o Memory.
o I/O capabilities.
20
AWS Nitro System
• A platform for next generation EC2
instances.
• A combination of dedicated hardware and a
lightweight supervisor.
• Traditional hypervisors virtualize all system
resources including, CPU, storage, and
networking.
• Nitro System break apart these subsystems
and offload them to dedicated hardware and
software to reduce the provisioning costs 21
AWS Nitro System – EC2 Instances
• Offers several classes of EC2 instances:
1. General purpose—A balance of computing,
memory, and networking resource.
• A1—AWS Graviton with 64-bit ARM Neoverse cores and custom
silicon.
• T3, T3a—AWS Nitro System; burstable general-purpose
instance type.
• M6g—ARM-based AWS Graviton2.
2. Compute optimized—for CPU-bound applications; high-
performance processors.
• C6g—ARM-based AWS Graviton2.
• C5n—3.0-GHz Intel Xeon Platinum with AVX-512 instruction set.
3. Memory optimized—for large memory footprint
workloads.
• R6g—Arm-based AWS Graviton2.
• X1e—Intel Xeon E7-8880 v3; up to 3 904 GiB of DRAM memory.
• R5a—AMD EPYC 7000; all core turbo clock speed of 2.5-GHz
AWS Nitro System.
22
AWS Nitro System – EC2 Instances
4. Accelerated computing—uses accelerators, or co-
processors, to perform functions, such as floating-point
number calculations, graphics processing, or data pattern
matching, efficiently.
• P3—Intel Xeon E5-2686 v4 (Broadwell) or 2.5 GHz (base) Intel Xeon P-
8175M and up to 8 NVIDIA Tesla V100 GPUs, each pairing 5 120 CUDA
Cores and 640 Tensor Cores.
• P2—Intel Xeon E5-2686 v4 (Broadwell); NVIDIA K80 GPUs, each with 2
496 cores and 12 GB GPU memory.
• G4—Intel Xeon Scalable (Cascade Lake); NVIDIA T4 Tensor Core GPUs.
• G3—Intel Xeon E5-2686 v4 (Broadwell); NVIDIA Tesla M60 GPUs, each
with 2 048 cores and 8 GB video memory.
5. Storage optimized—for workloads that require high,
sequential read-and-write access to very large data sets
on local storage.
• I3—Intel Xeon E5-2686 v4 (Broadwell); non-volatile memory express
(NVMe) SSD-backed instance storage.
• I3en—3.1 GHz Intel Xeon Scalable (Skylake) processors with AVX-512
instruction set; up to 60 TB of NVMe SSD.
23
• H1—2.3 GHz Intel Xeon E5 2686 v4; up to 16 TB of HDD storage.
S3 – Simple Storage System
• Service designed to store large objects
an application can handle an unlimited number of objects
ranging in size from 1 byte to 5 TB.
• An object is stored in a bucket
Retrieved via a unique, developer-assigned key
A bucket can be stored in a Region selected by the user.
• Supports a minimal set of functions:
Write, read, and delete
Does not support primitives to rename, copy, or move an object
from one bucket to another.
• The object names are global.
• S3 maintains for each object:
the name,
modification time,
an access control list, and
up to 4 KB of user-defined metadata.
24
S3 – Simple Storage System
• Authentication mechanisms is used to keep the
data secure.
• Objects can be made public, and rights can be
granted to other users.
• S3 computes the MD5 of every object written
and returns it in a field called ETag.
• A user is expected to compute the MD5 of an
object stored or written and compare this with
the ETag;
if the two values do not match, then the object
was corrupted during transmission or storage. 25
Elastic Block Store (EBS)
• Provides persistent block level storage volumes for
use with EC2 instances;
Suitable for database applications, file systems, and applications
using raw data devices.
• A volume appears to an application as a raw,
unformatted and reliable physical disk;
In the range 1 GB -1 TB.
• An EC2 instance may mount multiple volumes, but
a volume cannot be shared among multiple
instances.
• EBS supports the creation of snapshots of the
volumes attached to an instance and then uses
them to restart the instance.
• The volumes are grouped together in Availability
Zones and are automatically replicated in each
zone. 26
SimpleDB
• Non-relational data store. Supports store and query
functions traditionally provided only by relational
databases.
• Supports high performance Web applications; users
can store and query data items via Web services
requests.
• Creates multiple geographically distributed copies
of each data item.
• It manages automatically:
The infrastructure provisioning.
Hardware and software maintenance.
Replication and indexing of data items.
Performance tuning.
27
SQS - Simple Queue Service
• Hosted message queues are accessed through
standard SOAP and Query interfaces.
• Supports automated workflows
EC2 instances can coordinate by sending and receiving SQS
messages.
• Applications using SQS can run independently and
asynchronously, and do not need to be developed
with the same technologies.
• A received message is “locked'' during processing;
if processing fails, the lock expires and the message
is available again.
• Queue sharing can be restricted by IP address and
time-of-day.
28
CloudWatch
• Used to collect and track metrics important for
Performance optimization
Efficient resource utilization
• Without installing any software a user can monitor
~12 pre-selected metrics by viewing graphs and
statistics of these metrics.
• When launching an Amazon Machine Image (AMI) the
user can start the CloudWatch and specify the type
of monitoring:
Basic Monitoring - free of charge; collects data at five-
minute intervals for up to 10 metrics.
Detailed Monitoring - subject to charge; collects data at
one minute interval.
Also used to monitor access latency to EBS volumes,
available storage space for RDS DB instances, No. of
messages in SQS, and other parameters of interest. 29
Virtual Private Cloud (VPC)
• VPC provides a bridge between the existing IT
infrastructure of an organization and the AWS cloud
• Existing infrastructure is connected via a Virtual
Private Network (VPN) to a set of isolated AWS
computing resources.
• VPC allows existing management capabilities, such
as security services, firewalls, and intrusion-
detection systems, to operate seamlessly within the
cloud.
30
AWS services introduced in 2012
• Route 53
low-latency DNS service used to manage user's DNS public
records.
• Elastic MapReduce (EMR)
supports processing of large amounts of data using a hosted
Hadoop running on EC2.
• Simple Workflow Service (SWF)
supports workflow management; allows scheduling, management
of dependencies, and coordination of multiple EC2 instances.
• ElastiCache
enables web applications to retrieve data from a managed in-
memory caching system rather than a much slower disk-based
database.
• DynamoDB
scalable and low-latency fully managed NoSQL database service.
31
AWS services introduced in 2012
• CloudFront
web service for content delivery.
• Elastic Load Balancer
automatically distributes the incoming requests across
multiple instances of the application.
• Elastic Beanstalk
handles automatically deployment, capacity provisioning,
load balancing, auto-scaling, and application monitoring
functions.
• CloudFormation
allows the creation of a stack describing the infrastructure
for an application.
32
CloudFormation
• CloudFormation service allows the creation of a stack
describing the infrastructure for an application.
• The user creates a template, a text file formatted as
in Javascript Object Notation (JSON), describing:
• The resources
• The configuration values, and
• The interconnection among the resources.
• The template can be parameterized to allow
customization at run time
• e.g., to specify the types of instances, database port
numbers, or RDS size.
33
Elastic Beanstalk
• Handles automatically the
deployment, capacity provisioning, load balancing, auto-scaling,
and monitoring functions.
• Interacts with other services, including
EC2, S3, SNS, Elastic Load Balance and AutoScaling.
• Management functions provided by the service are:
Deploy a new application version (or rollback to a previous
one).
Access to the results reported by CloudWatch monitoring
service.
Email notifications when application status changes or
application servers are added or removed.
Access to server log files without needing to login to the
application servers.
• The service is available using:
Java, PHP, .NET framework.
34
Lambda service
• This service introduced in November, 2014.
• AWS Lambda is an event-driven, serverless
computing platform (aka Function as a Service):
• It runs code in response to events and automatically
manages the computing resources required by that code.
• Good for big data applications.
• Applications are triggered by conditions and/or events
specified by the end user. For example,
• An application runs for a brief period of time at midnight to
check the daily energy consumption of an enterprise.
• An application may be activated weekly to check the sales of
a chain.
• An application may turn on the alarm system of a home
triggered by an event generated by the smartphone of the
owner.
35
Lambda service
• In EC2, when customers are billed on an hourly basis.
• e.g., if a C4 instance is used for one hour and ten
minutes the billing is for two hours
• Lambda service is billed for the actual time with a
resolution of milliseconds.
• The service could be easily used with following steps:
1. Create your function by uploading your code (or building
it right in the Lambda console).
2. Choose the memory, timeout period, and AWS Identity &
Access Management (IAM) role.
3. Specify the AWS resource to trigger the function,
• E.g. an S3 bucket, a DynamoDB table, or Amazon
Kinesis stream.
4. When the resource changes, Lambda will run a function,
launch and manage the compute resources as needed in
order to keep up with incoming requests.
36