aws 101 event - 16 july 2013
DESCRIPTION
Developing applications on Amazon Web Services (AWS) or moving your business into the cloud is more straightforward than you think. Whether you are a developer eager to learn new skills, a solutions architect who wants to solve existing technology problems, the IT professional who wants access to cost-effective, on-demand computing resources, this slides may help you. Amazon EC2 Demo - YouTube Recording: http://www.youtube.com/watch?v=kMExnVKhmYc&feature=youtu.beTRANSCRIPT
AWS 101 Ianni Vamvadelis
Manager, Solution Architecture
Agenda
10:00 - 10:45 Presentation – AWS 101 Introducing the concepts behind AWS such as utility computing and elasticity.
10:45 - 11:00 Coffee Break 11:00 - 11:45 Presentation and Demonstration Live demonstration and interactive walkthrough
What we are going to cover
Keypairs
Security groups
EC2 instances
Metadata service
Autoscaling
Amazon Machine Images
S3
CloudFront
Elastic Load balancer
RDS
Feel free to follow along on your laptops
background
Consumer
Business
Tens of millions of
active customer
accounts
Eight countries:
US, UK, Germany,
Japan, France,
Canada, China, Italy
Seller
Business
Sell on Amazon
websites
Use Amazon
technology for your
own retail website
Leverage Amazon’s
massive fulfillment
center network
IT Infrastructure
Business
Cloud computing
infrastructure for
hosting web-scale
solutions
Hundreds of
thousands of
registered
customers in over
190 countries
Deep experience in
building and
operating global web
scale systems
About Amazon
Web Services
?
…get into cloud computing?
How did Amazon…
Over 10 years in the making
Enablement of sellers on Amazon
Internal need for scalable deployment environment
Early forays proved developers were hungry for more
AWS Mission
Enable businesses and
developers to use web
services* to build scalable,
sophisticated applications.
*What people now call “the cloud”
Not excess capacity!
Each day AWS adds the equivalent server
capacity to power Amazon when it was a
global, $5B enterprise
Each day AWS adds the equivalent server
capacity to power Amazon when it was a
global, $5B enterprise
$5.2B retail business
7,800 employees
A whole lot of servers
2003
Total Number of Objects Stored in Amazon S3
Objects in S3
2.9 Billion 14 Billion 40 Billion 102 Billion
262 Billion
762 Billion
1.7 Trillion
2 Trillion
Q4 2006 Q4 2007 Q4 2008 Q4 2009 Q4 2010 Q4 2011 Q4 2012 Q2 2013
Over 1.1 Million
requests per second
EMR Jobs
0
500,000
1,000,000
1,500,000
2,000,000
2,500,000
3,000,000
3,500,000
4,000,000
3.7 M clusters
launched since May 2010
Utility computing
On demand Pay as you go
Uniform Available
Utility computing
Utility computing
On demand Pay as you go
Uniform Available
Utility computing
Utility computing
Compute
Storage
Security Scaling
Database
Networking Monitoring
Messaging
Workflow
DNS
Load Balancing
Backup CDN
On demand Pay as you go
Uniform Available
On a global footprint
Region
US-WEST (N. California) EU-WEST (Ireland)
ASIA PAC
(Tokyo)
ASIA PAC
(Singapore)
US-WEST (Oregon)
SOUTH AMERICA (Sao
Paulo)
US-EAST (Virginia)
GOV CLOUD
ASIA PAC
(Sydney)
Availability Zone
On a global footprint
Edge Locations
Dallas(2)
St.Louis
Miami
Jacksonville Los Angeles (2)
Palo Alto
Seattle
Ashburn(2)
Newark
New York (3)
Dublin
London(2)
Amsterdam (2)
Stockholm
Frankfurt(2)
Paris(2)
Singapore(2)
Hong Kong
Tokyo (2)
Sao Paulo
South Bend
San Jose
Osaka Milan
Sydney
On a global footprint
Madrid
At the end of a web service
ec2-run-instances ami-b232d0db
--instance-count 3
--availability-zone eu-west-1a
--instance-type m1.small
ec2-run-instances ami-b232d0db
--instance-count 5
--availability-zone eu-west-1c
--instance-type m1.medium
ec2-run-instances ami-b232d0db
--instance-count 2
--availability-zone us-east-1b
--instance-type m1.xlarge
ec2-run-instances ami-b232d0db
--instance-count 2
--availability-zone us-east-1d
--instance-type m1.xlarge
At the end of a web service
At the end of a web service
elb-create-lb
myLoadBalancer
as-create-auto-scaling-group MyGroup
--launch-configuration MyConfig
--availability-zones eu-west-1c
--min-size 2
--max-size 200
ec2-authorize default -p 80
and a rich Management Console
Elasticity
Traditional IT
capacity
Elastic capacity
Capacity
Time
Your IT needs
On and Off Fast Growth
Variable peaks Predictable peaks
Elastic capacity
Elastic capacity
On and Off Fast Growth
Predictable peaks Variable peaks
WASTE
CUSTOMER DISSATISFACTION
Elastic cloud capacity
Traditional
IT capacity
Your IT needs
Time
Capacity
Elastic capacity
Elastic capacity
Fast Growth On and Off
Predictable peaks Variable peaks
503 Service Temporarily Unavailable
The server is temporarily unable
to service your request due to
maintenance downtime or capacity
problems. Please try again later.
503 Service Temporarily Unavailable
The server is temporarily unable
to service your request due to
maintenance downtime or capacity
problems. Please try again later.
From one instance…
…to thousands
and back…
Customers elasticity
Sunday Monday Tuesday Wednesday Thursday Friday Saturday
Typical weekly traffic to Amazon.com
November traffic to Amazon.com
November
November traffic to Amazon.com
Provisioned capacity
November
November traffic to Amazon.com 76%
24%
Provisioned capacity
November
November 10th 2010 Turned off last physical web server of
Amazon.com
November 10th 2010 Turned off last physical web server of
Amazon.com
October 31st 2011 Turned off last web servers supporting
European business
November traffic to Amazon.com
November
Time: +00h
<10 cores
Elastic Capacity
Time: +24h >1500
cores
Elastic Capacity
Time: +72h
<10 cores
Elastic Capacity
Time: +120h
>600 cores
Elastic Capacity
Num
ber
of E
C2 I
nsta
nces
4/12/2008 4/14/2008 4/15/2008 4/16/2008 4/18/2008 4/19/2008 4/20/2008 4/17/2008 4/13/2008
40 servers to 5000 in 3 days
EC2 scaled to peak of 5000 instances
“Techcrunched”
Launch of Facebook modification
Steady state of ~40 instances
The Toolbox
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Reference Model
security
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Global infrastructure
Regions An independent collection of AWS resources in a
defined geography
A solid foundation for meeting location-dependent
privacy and compliance requirements
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Global infrastructure
Availability Zones Designed as independent failure zones
Physically separated within a typical metropolitan
region
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Global infrastructure
Edge Locations To deliver content to end users with lower latency
A global network of edge locations
Supports global DNS infrastructure (Route53) and
Cloud Front CDN
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Networking
Direct Connect Dedicated connection to AWS
VPN Connection Secure internet connection to AWS
Virtual Private Cloud Private, isolated section of the AWS Cloud
Route 53 Highly available and scalable Domain Name
Service
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Compute
Vertical
Scaling
From $0.02/hr
Elastic Compute Cloud (EC2) Basic unit of compute capacity
Range of CPU, memory & local disk options
13 Instance types available, from micro to cluster
compute
Feature Details
Flexible Run windows or linux distributions
Scalable Wide range of instance types from micro to cluster compute
Machine Images Configurations can be saved as machine images (AMIs) from which new instances can be created
Full control Full root or administrator rights
Secure Full firewall control via Security Groups
Monitoring Publishes metrics to Cloud Watch
Inexpensive On-demand, Reserved and Spot instance types
VM Import/Export Import and export VM images to transfer configurations in and out of EC2
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Compute
Auto-scaling Automatic provisioning of compute resources based
upon demand, configuration or schedule
Trigger auto-
scaling policy
Feature Details
Control Define minimum and maximum instance pool sizes and when scaling and cool down occurs
Integrated to CloudWatch
Use metrics gathered by CloudWatch to drive scaling
Instance types Run auto scaling for on-demand instances and spot. Compatible with VPC
as-create-auto-scaling-group MyGroup
--launch-configuration MyConfig
--availability-zones eu-west-1a
--min-size 4
--max-size 200
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Compute
Elastic Load Balancing Create highly scalable applications
Distribute load across EC2 instances in multiple
availability zones
Feature Details
Auto-scaling Automatically scales to handle request volume
Available Load balance across instances in multiple availability zones
Health checks Automatically checks health of instances and takes them in or out of service
Session stickiness Route requests to the same instance
Secure sockets layer Supports SSL offload from web and application servers with flexible cipher support
Monitoring Publishes metrics to Cloud Watch
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Storage
S3 - Durable storage, any
object 99.999999999% durability of objects
Unlimited storage of objects of any type
Up to 5TB size per object Feature Details
Flexible object store Buckets act like drives, folder structures within
Access control Granular control over object permissions
Server-side encryption 256bit AES encryption of objects
Multi-part uploads Improved throughput & control
Object versioning Archive old objects and version new ones
Object expiry Automatically remove old objects
Access logging Full audit log of bucket/object actions
Web content hosting Serve content as web site with built in page handling
Notifications Receive notifications on key events
Import/Export Physical device import/export service
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Storage
Elastic Block Store High performance block storage device
1GB to 1TB in size
Mount as drives to instances
Feature Details
High performance file system
Mount EBS as drives and format as required
Flexible size Volumes from 1GB to 1TB in size
Secure Private to your instances
Available Replicated within an Availability Zone
Backups Volumes can be snapshotted for point in time restore
Monitoring Detailed metrics captured via Cloud Watch
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Database
Relational Database Service Database-as-a-Service
No need to install or manage database instances
Scalable and fault tolerant configurations
Feature Details
Platform support Create MySQL, SQL Server and Oracle RDBMS
Preconfigured Get started instantly with sensible default settings
Automated patching Keep your database platform up to date automatically
Backups Automatic backups and point in time recovery and full DB backups
Backups Volumes can be snapshotted for point in time restore
Failover Automated failover to slave hosts in event of a failure
Replication Easily create read-replicas of your data and seamlessly replicate data across availability zones
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Database
Amazon Relational Database Service (Amazon RDS) databases stores forum threads, site content, and project configuration data. High availability Multi-AZ database deployment to handle live game metadata and user-generated content. Enterprise-grade fault tolerance for protecting customer data. By managing time-consuming database administration tasks, Amazon RDS allows SEGA to focus on business critical applications.
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Database
DynamoDB Provisioned throughput NoSQL database
Fast, predictable performance
Fully distributed, fault tolerant architecture
Feature Details
Provisioned throughput Dial up or down provisioned read/write capacity
Predictable performance
Average single digit millisecond latencies from SSD backed infrastructure
Strong consistency Be sure you are reading the most up to date values
Fault tolerant Data replicated across availability zones
Monitoring Integrated to Cloud Watch
Secure Integrates with AWS Identity and Access Management (IAM)
Elastic MapReduce Integrates with Elastic MapReduce for complex analytics on large datasets
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Application Services
Amazon SQS
Processing
task/processing trigger
Processing results Amazon SQS Reliable, highly scalable, queue
service for storing messages as they
travel between instances
Feature Details
Reliable Messages stored redundantly across multiple availability zones
Simple Simple APIs to send and receive messages
Scalable Unlimited number of messages
Secure Authentication of queues to ensure controlled access
Task A
Task B
(Auto-scaling)
Task C
2
3
1
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Application Services
Feature Details
Process state Maintain application state across complex workflows in a reliable and available manner
Tracking Tracks executions and log process for audit purposes
Consistency Ensures processing tasks are executed and duplicity of events does not occur
Simple Simple Decider and Task programming model for rapid integration
Simple Workflow Reliably coordinate processing steps
across applications
Integrate AWS and non-AWS resources
Manage distributed state in complex
systems
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Application Services
Cloud Search Elastic search engine based upon
Amazon A9 search engine
Fully managed service with
sophisticated feature set
Scales automatically
Document
Server
Results
Search
Server
Feature Details
Auto-scaling Automatically scales based upon request volumes and data volumes
High performance In memory operation means consistently low latency for search results
Sophisticated features Support for faceting, stemming, synonyms, stop words and custom rank expressions
Low cost Elastic service, pay for what you use
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Application Services
CloudFront World-wide content distribution
network
Easily distribute content to end users
with low latency, high data transfer
speeds, and no commitments.
Feature Details
Fast Multiple world-wide edge locations to serve content as close to your users as possible
Integrated with other services
Works seamlessly with S3 and EC2 origin servers
Dynamic content Supports static and dynamic content from origin servers
Streaming Supports rtmp from S3 and includes support for live streaming from Adobe FMS and Microsoft Media Server
London
Paris
NY
Served from S3
/images/*
3
Served from EC2
*.php
2
Single CNAME
www.mysite.com
1
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Deployment & Admin
Elastic Beanstalk One-click deployment from Eclipse, Visual Studio and
Git
Rapid deployment of applications
All AWS resources automatically created
Feature Details
Platform support Containers for Java, .net and PHP
Resource creation Creates load balancer, instances, autoscaling and monitoring automatically
Monitoring & Logs Integrated with Cloud Watch and consolidates server logs
Versioning Manage versions of applications and easily rollback deployments
Notifications Receive alerts on key events
Full resource access Access all underlying AWS resources as necessary
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Deployment & Admin
OpsWorks DevOps focused managed application stacks
Underlying Chef recipes allow for complete
customisation
Feature Details
Platform support Chef recipes allows for community expansion for platform components such as Solr, NgniX etc
Resource creation Customizable deployments, rollback, partial deployments, patch management, automatic instance scaling, and auto healing
Layered Manage logical application layers and combine into stacks.
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Deployment & Admin
Cloud Formation Automate creation of ‘stacks’ in a repeatable way
Scripting framework for AWS resource creation
Feature Details
Platform support Support for AWS resources from EC2 to IAM
Resource creation Creates AWS resources behind the scenes and reports on progress
Declarative Specify stacks in JSON format and source control your environments
Customizable Drive stack creation with paramaters
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Deployment & Admin
Identity & Access Management Granular control of user rights with AWS
Automated granting of EC2 service rights
Software Developer Kits Comprehensive support of programming models for
using AWS services
+ others Simple Email Service
Simple Notification Service
ElastiCache
Elastic MapReduce
CloudWatch
…
Introducing Amazon Redshift
Data Warehousing the AWS Way
Easily and rapidly analyze
petabytes of data
1/10 the cost of traditional data
warehouses
Automated deployment &
administration
Compatible with popular BI tools
Orchestration service for data-driven workflows
Create automated and scheduled data flows
Pre-integrated with AWS data sources
Easily connect with 3rd party & on-premises sources
AWS Data PipelineYour Analytics
Amazon S3 Input Bucket
Amazon S3 Input Bucket
Amazon S3 Output Bucket
Amazon S3 Output Bucket
Amazon S3 Output Bucket
Transcoding Pipeline 1
Transcoding Pipeline 2
Transcoding Pipeline 4
Kindle Fire HD 720p Custom
Inside a Transcoding Pipeline
Transcoding Job n Transcoding Job 2 Transcoding Job 1
Amazon Elastic Transcoder
Security &
Compliance
Foundation Services
Compute Storage Database Networking
AWS Global Infrastructure Regions
Availability Zones
Edge Locations Am
azo
n
Shared responsibility
Foundation Services
Compute Storage Database Networking
AWS Global Infrastructure Regions
Availability Zones
Edge Locations
Client-side Data Encryption & Data Integrity Authentication
Server-side Encryption (File System and/or Data)
Network Traffic Protection (Encryption/Integrity/Identity)
Platform, Applications, Identity & Access Management
Operating System, Network & Firewall Configuration
Customer Data
Am
azo
n
Shared responsibility
You
Certifications
SOC 1 Type 2 (formerly SAS-70)
ISO 27001
PCI DSS for EC2, S3, EBS, VPC, RDS, ELB,
IAM
FISMA Moderate Compliant Controls
HIPAA & ITAR Compliant Architecture
Physical Security
Datacenters in nondescript facilities
Physical access strictly controlled
Must pass two-factor authentication at least twice for floor access
Physical access logged and audited
HW, SW, Network
Systematic change management
Phased updates deployment
Safe storage decommission
Automated monitoring and self-audit
Advanced network protection
Security standards
http://aws.amazon.com/security
So what are
we going to do
today?
Availability Zone Region
Instance
Availability Zone Region
Instance S3
Availability Zone Region
Instance S3
Cloud Front
Availability Zone Region
Instance S3
Cloud Front
RDS
Availability Zone Region
Instance Instance
Elastic Load Balancer
Cloud Front
S3
RDS
Availability Zone Region
Instance Instance
Elastic Load Balancer
Cloud Front
S3
Auto
scaling
Group
RDS
Enjoy some coffee /
tea,
come back at 11:00,
and we’ll build it
Ask questions
(it will fill time when we wait for
things to launch)
There will be a recording of this
demo on YouTube, so don’t
worry if you miss anything
Availability Zone Region
Instance Instance
Elastic Load Balancer
Cloud Front
S3
Auto
scaling
Group
RDS
Availability Zone Region
Instance Instance
Elastic Load Balancer
Cloud Front
S3
Auto
scaling
Group
RDS
Availability Zone Region
Instance Instance
Elastic Load Balancer
Cloud Front
S3
Auto
scaling
Group
RDS
Availability Zone Region
Instance Instance
Elastic Load Balancer
Cloud Front
S3
Auto
scaling
Group
RDS
EC2 launch an instance
bootstrapping passing data to an instance
Instance
request User data
Instance
request User data
Meta-data service
Instance
request User data
Instance
Meta-data service
Script executed on launch:
<script> ipconfig /all > c:\ipconfig.txt netstat > c:\netstat.txt </script>
Script executed on launch:
#!/bin/sh yum -y install httpd php php-mysql chkconfig httpd on /etc/init.d/httpd start
key pairs secure access
Public Key
Inserted by Amazon into each EC2 instance that
you launch
Private Key
Downloaded and stored by you
EC2 Instance
Comms secured with private key
security groups instance firewalling
Security Group
instance
Port 80 (HTTP)
Port 22 (SSH)
Name Description Protocol Port range IP Address, range, or another security group
index.php Reads instance meta-data
Some php code that gets the data <?php // get the instance id $url = "http://169.254.169.254/latest/meta-data/instance-id"; $instance_id = file_get_contents($url); // get the AZ where the instance is running $url = "http://169.254.169.254/latest/meta-data/placement/availability-zone"; $zone = file_get_contents($url); // get the security group it is in $url = "http://169.254.169.254/latest/meta-data/security-groups"; $group = file_get_contents($url); // get the public DNS name $url = "http://169.254.169.254/latest/meta-data/public-hostname"; $hostname = file_get_contents($url); ?>
And diplays it
Instance ID: <?php echo $instance_id; ?> Availability Zone: <?php echo $zone; ?> Security Group: <?php echo $group; ?>
ELB elastic load balancer
Availability Zone Availability Zone
Region
Availability Zone
Instance Instance Instance Instance Instance Instance
Elastic Load Balancer
Availability Zone Region
Instance Instance
Elastic Load Balancer
Cloud Front
S3
Auto
scaling
Group
RDS
auto-scaling elastic server pool
Availability Zone Region
Instance Instance
Elastic Load Balancer
Cloud Front
S3
Auto
scaling
Group
RDS
Describes what Auto Scaling will create when
adding Instances
AMI
Instance Type Security Group
Instance Key Pair
Only one active launch configuration at a time
Auto Scaling will terminate instances with old launch
configuration first rolling update
Auto Scaling managed grouping of EC2
instances
Automatic health check to
maintain pool size
Automatically scale the number of instances by
policy – Min, Max, Desired
Automatic Integration with ELB
Automatic distribution &
balancing across AZs
Parameters for performing an Auto
Scaling action
Scale Up/Down and by how much
ChangeInCapacity (+/- #)
ExactCapacity (#) ChangeInPercent (+/- %)
Cool Down (seconds)
Policy can be triggered by
CloudWatch events
Launch Configuration Auto-Scaling Group Auto-Scaling Policy
as-create-launch-config
--image-id ami-50348c51
--instance-type t1.micro
--key apac-tok
--group 'Web Servers’
--launch-config 101-launch-config
Create a launch configuration:
as-create-auto-scaling-group 101-as-group
--availability-zones ap-northeast-1a
--launch-configuration 101-launch-config
--load-balancers myELB
--max-size 5
--min-size 1
Create an auto-scaling group:
as-put-scaling-policy 101ScaleUpPolicy
--auto-scaling-group 101-as-group
--adjustment=1
--type ChangeInCapacity
--cooldown 300
Create an auto-scaling policy (scale up):
as-put-scaling-policy 101ScaleDownPolicy
--auto-scaling-group 101-as-group
"--adjustment=-1"
--type ChangeInCapacity
--cooldown 300
Create an auto-scaling policy (scale down):
Availability Zone Region
Instance Instance
Elastic Load Balancer
Cloud Front
S3
Auto
scaling
Group
RDS
To do this you will need:
An AWS Account
Auto-scaling tools installed
Find out more:
aws.amazon.com
aws.amazon.com