Amazon Web Services

(Module “Cloud Computing”)

Anthony Simonet

About this module

Anthony Simonet
anthony.simonet@mines-nantes.fr
http://www.anthony-simonet.fr/teaching/2016/aws

All course materials (including this) are online.

Organization

What? How long?
Course 8h
Practical 8h

Exam:

  • Small project on Thursday
  • (very) small report by next week

Content

  • Introduction to Cloud Computing
  • Introduction to Amazon Web Services
  • Toolbox
  • Provisioning
  • Introduction to AWS development
  • Deploying a Web Application on AWS

Introduction to Cloud Computing

Context

  • Building a data-center is:
    • Expensive
    • Slow
    • Complicated
  • Cloud Computing is a solution to ALL these issues
    • Cloud operators reduce cost through important economies of scale
    • Resources are available immediately
    • No hardware/software maintenance cost

Before the cloud

Prehistory, companies would:

  • Buy servers
  • Set them up
  • Install OS & software
  • Maintain servers (software updates, hardware replacement, etc)
  • Repeat a few years later.

What is the Cloud?

  • Remote computing resources or services
  • Accessed through the Internet
  • Virtually unlimited (elastic)
  • Based on Virtualization techniques
  • Per-usage billing
AdvantagesDisavantages
No installation costSecurity
No installation maintenance costConfidentiality
Resources available immediatelyLegal concerns
Globaly deployed resourcesVendor lock-in
Freedom (no contract)

The cloud is remote

Clients access online resources throught the Internet and have no idea where they are actually located.

XKCD: The Cloud

The cloud is virtualized

Recent Virtualization techniques allow providers to colocate (or consolidate) multiple virtual machines on a single server.

Virtualization allows transparent migrations for maintenance, load-balancing, resiliency and more.

The cloud is Elastic

…and virtually infinite: clients can theoratically request as many resources as they need.

Cloud resources are charged on a per-usage basis (usually hourly) and can be freed anytime.

Where is the Cloud?

Google cluster, 1998

A Google data center, now




15+ data-centers on 4 continents

2,000,000+ servers

Source: https://www.youtube.com/watch?v=XZmGGAbHqa0

Google data-centers

Google uses commodity hardware (in custom cases):

  • When the number of servers increases, faults are unavoidable
  • Resiliency must be a software duty
    • Task replication
    • Clever distribution of tasks/data
    • Adapted programming paradigms (e.g. implicit parallelism)

The cloud needs scalable infrastructures

Scalable infrastructures

Scalability: capacity to increase throughput as the size of the infrastructure increases.

A scalable infrastructure requires scalable software and hardware architectures:

  • More resources must imply better performance
  • No single Point of Failure (PoF)
  • Efficient resource usage
  • Ability to manage heterogeneous resources

Scalability

Scalability

Scalability

2 strategies to scale up an infrastructure:

  • Horizontal scaling: increase the number of resources (scale out)
  • Vertical scaling: increase the capacity of individual resources (scale up).

Scalability

Horizontal

  • Slow
  • Costly
  • …but easy

Vertical

  • Hard to program
  • Must be planned well in advance
  • Creates less disruption

Scale in, Scale down

The Cloud:

  • virtually infinite resources
  • available and charged on demand
  • no contract

⇾ makes scaling down easy (and cheap)

There’s more to the cloud

*-as-a-Service

  • Infrastructure as a Service
    • Provides virtual machines on which we deploy virtual images
    • Amazon EC2, Microsoft Azure, Rackspace, etc.
  • Platform as a Service
    • Provides a runtime platform (OS, DB, application servers, etc)
    • Amazon Elastic Beanstalck, Google App Engine, etc.
  • Software as a Service
    • Provides a software service
    • Google Apps, LiveOffice, SaleForce, etc.

Deployment models

  • Public:
    • Infrastructure rented from a third party provider
    • E.g. AWS, Microsoft Azure, Rackspace, OVH
  • Private/shared:
    • Private infrastructure managed by a company/an institution, can be shared with partner institutions
    • E.g. locally deployed OpenStack/OpenNebula
  • Hybrid:
    • Aggregate of resources from multiple clouds to accomodate bursts
    • Sky Computing

Separation of Responsibilities

To be continued...