IDCEE 2014: Ukraine - The Next Startup Nation - Aviram Eisenberg (CEO @ Ignite)
IDCEE 2013: Architecture Best Practices for web applications on Amazon Web Service - Steffen Krause...
description
Transcript of IDCEE 2013: Architecture Best Practices for web applications on Amazon Web Service - Steffen Krause...
Architecture Best Practices for web applications on Amazon Web Service
Steffen KrauseTechnical Evangelist
What users want…
What users want…
Fast!
What users want…
Fast!Always
on!
What users want…
Fast!Always
on!
Features!
What users want…
Fast!Always
on!
Features!
Personal!
How?
Building powerful web applications
Rule 2: Service requests as fast as possible
Rule 1: Service all web requests
Rule 3: Handle requests at any scale
Rule 4: Simplify architecture with services
Rule 5: Automate operational management
Rule 6: Leverage unique cloud properties
AWS Global Infrastructure
9 Regions
25 Availability Zones
Continuous Expansion
DNS Application DataRequest
a) Make sure requests get to your ‘front door’
Rule 1: Service all web requests
DNS Application DataRequest
…then this is irrelevant
Clients can’t resolve you?
Rule 1: Service all web requestsa) Make sure requests get to your ‘front door’
DNS Application DataRequest
“100% Available”
SLA
Rule 1: Service all web requests
Route53
Feature Details
Global Supported from AWS global edge locations for fast and reliable domain name resolution
Scalable Automatically scales based upon query volumes
Latency based routing Supports resolution of endpoints based upon latency, enabling multi-region application delivery
Integrated Integrates with other AWS services allowing Route 53 to front load balancers, S3 and EC2
Secure Integrates with IAM giving fine grained control over DNS record access
http://aws.amazon.com/route53/sla
a) Make sure requests get to your ‘front door’
Region
DNS Application DataRequest
Rule 1: Service all web requests
Elastic Load
Balancer Region
Availability Zone
Availability Zone
Availability Zone
Availability Zone
Route53
a) Make sure requests get to your ‘front door’b) Make sure you open the door when they arrive
Elastic load balancingMulti-availability zoneMulti-region
Region
Rule 1: Service all web requests
DNS Application DataRequest
Elastic Load
Balancer
Route53
Region
Availability Zone
Availability Zone
Availability Zone
Availability Zone
a) Make sure requests get to your ‘front door’b) Make sure you open the door when they arrivec) Have the data to form a response
RDS
Multi-AZ
Master-slave
Read-replicas
Rule 2: Service requests as fast as possible
Rule 1: Service all web requests
Rule 3: Handle requests at any scale
Rule 4: Simplify architecture with services
Rule 5: Automate operational management
Rule 6: Leverage unique cloud properties
Rule 2: Service requests as fast as possiblea) Choose the fastest route
Region A
Route53
Region B
Request
Rule 2: Service requests as fast as possiblea) Choose the fastest route
Region A
Route53
Region B
16ms 92ms
Request
Rule 2: Service requests as fast as possible
Region A
Route53
Region B
16ms
RequestRegion A DNS entry
a) Choose the fastest route
Rule 2: Service requests as fast as possiblea) Choose the fastest routeb) Offload your application servers
London
Paris
NY
Served from S3/images/*
3
Served from EC2*.php
2
Single CNAMEwww.mysite.com
1
CloudFrontWorld-wide content distribution network
Easily distribute content to end users with low
latency, high data transfer speeds, and no
commitments.
Rule 2: Service requests as fast as possiblea) Choose the fastest routeb) Offload your application serversc) Cache it if you can
ElastiCacheMemcached compatible caching
Serve frequently requested & slow
changing data from scalable cache
clusters
Reduce load on database and other
servers
Rule 2: Service requests as fast as possiblea) Choose the fastest routeb) Offload your application serversc) Cache it if you cand) Single digit latencies where it matters
ScaleDat
abas
e Q
uery
Per
form
ance
Desired consistency, predictability
Actual degraded
performance with scale
Rule 2: Service requests as fast as possiblea) Choose the fastest routeb) Offload your application serversc) Cache it if you cand) Single digit latencies where it matters
ScaleDat
abas
e Q
uery
Per
form
ance
Desired consistency, predictability
Actual degraded
performance with scale
Management problems
Data shardingData cachingProvisioning
Cluster managementFault management
Rule 2: Service requests as fast as possiblea) Choose the fastest routeb) Offload your application serversc) Cache it if you cand) Single digit latencies where it matters
ScaleDat
abas
e Q
uery
Per
form
ance
Dynamo DB Query Performance
DynamoDB
Low latencyLarge scaleZero admin
Predictable performanceAverage single-digit milliseconds server side latencies
Runs on solid state drives, and is built to maintain consistent, fast latencies at any scale
Rule 2: Service requests as fast as possible
Rule 1: Service all web requests
Rule 3: Handle requests at any scale
Rule 4: Simplify architecture with services
Rule 5: Automate operational management
Rule 6: Leverage unique cloud properties
Rule 3: Handle requests at any scalea) Scale up
Vertical ScalingFrom $0.02/hr
Basic unit of compute capacity
Range of CPU, memory & local disk options
18 Instance types available, from micro through cluster
compute to SSD backed
Scale up with Elastic Compute Cloud (EC2)
Rule 3: Handle requests at any scalea) Scale upb) Scale out
Trigger auto-scaling policy
as-create-auto-scaling-group MyGroup --launch-configuration MyConfig--availability-zones eu-west-1a--min-size 4--max-size 200
Auto-scalingAutomatic re-sizing of compute clusters based upon demand
ManuallySend an API call or use CLI to
launch/terminate instances – Only need to specify capacity change (+/-)
By ScheduleScale up/down based on date and timePreemptive manual
scaling of capacitye.g. before a marketing event add 10 more
instances
Regular scaling up and down of instances
e.g. scale from 0 to 2 for batch processing every night or double capacity on Fridays
a) Scale upb) Scale out
By PolicyScale in response to changing conditions,
based on user configured real-time monitoring and alerts
Auto-RebalanceInstances are automatically
launched/terminated to ensure the application is balanced across multiple
Azs
Rule 3: Handle requests at any scale
Dynamic scale based upon custom metrics
e.g. SQS queue depth, Average CPU load, ELB latency
Maintain capacity across availability zones
e.g. Instance availability maintained in event of AZ becoming unavailable
Rule 3: Handle requests at any scalea) Scale upb) Scale outc) Dial it up
Elastic Block StoreProvisioned IOPS up to 4000 per EBS
volume
Predictable performance for
demanding workloads such as
databases
DynamoDBProvisioned read/write performance per
table
Predictable high performance scaled via
console or API
Case Study
“AWS gave us the flexibility to bring a massive amount of capacity online in a short period of
time and allowed us to do so in an operationally straightforward way.
AWS is now Shazam’s cloud provider of choice,”
Jason Titus,CTO
DynamoDB: over 500,000 writes per
second
Amazon EMR:more than 1 million writes
per second
Rule 2: Service requests as fast as possible
Rule 1: Service all web requests
Rule 3: Handle requests at any scale
Rule 4: Simplify architecture with services
Rule 5: Automate operational management
Rule 6: Leverage unique cloud properties
YourBusiness
70%
On-PremiseInfrastructure
30%
Managing All of the “Undifferentiated Heavy Lifting”
Rule 4: Simplify architecture with services
AWSCloud-Based
Infrastructure
YourBusiness
More Time to Focus onYour Business
Configuring Your Cloud Assets
70%
30%70%
On-PremiseInfrastructure
30%
Managing All of the “Undifferentiated Heavy Lifting”
Rule 4: Simplify architecture with services
Rule 4: Simplify architecture with services
Data Centers
Power
Cooling
Cabling
Networking
Racks
Servers
Storage
Labor
Buy and install new hardware
Setup and configure new software
build or upgrade data centers
We take care of it… So you don’t have to …
Shared Responsibility for Security & Compliance
Facilities
Physical Security
Compute Infrastructure
Storage Infrastructure
Network Infrastructure
Virtualization Layer
Operating System
Applications
Security Groups
Firewalls
Network Configuration
Account Management
+ =
Customer
Relational Database ServiceDatabase-as-a-Service
No need to install or manage database instances
Scalable and fault tolerant configurations
DynamoDBProvisioned throughput NoSQL database
Fast, predictable performance
Fully distributed, fault tolerant architecture
Use RDS for databases
Use DynamoDB for high performance key-
value DB
Rule 4: Simplify architecture with services
Amazon SQS
Processing
task/processing
trigger
Processing results
Amazon SQSReliable, highly scalable, queue service
for storing messages as they travel
between instances
Task A
Task B
(Auto-scaling)
Task C
2
3
1
Simple WorkflowReliably coordinate processing steps
across applications
Integrate AWS and non-AWS resources
Manage distributed state in complex
systems
Push inter-process workflows into the cloud with SWF
Reliable message queuing without
additional software
Rule 4: Simplify architecture with services
Cloud SearchElastic search engine based upon
Amazon A9 search engine
Fully managed service with
sophisticated feature set
Scales automatically
DocumentServer
Results
SearchServer
Don’t install search software, use CloudSearch
Process large volumes of data cost effectively
with EMR
Elastic MapReduceElastic Hadoop cluster
Integrates with S3 & DynamoDB
Leverage Hive & Pig analytics scripts
Integrates with instance types such as
spot
Rule 4: Simplify architecture with services
“Amazon CloudSearch is a game-changing product that has allowed us to deliver powerful
new search capabilities. Our customers can now find what they are looking for faster and more
easily than ever before…
….We saved many months of re-architecture and development time by going with Amazon
CloudSearch”
Don MacAskillCEO & Chief Geek
SmugMug
Case Study
Rule 2: Service requests as fast as possible
Rule 1: Service all web requests
Rule 3: Handle requests at any scale
Rule 4: Simplify architecture with services
Rule 5: Automate operational management
Rule 6: Leverage unique cloud properties
Compute
Storage
Security Scaling
Database
NetworkingMonitoring
Messaging
Workflow
DNSLoad Balancing
BackupCDN
API
Rule 5: Automate operational managementa) Everything is programmable
Access everything via CLI, API or
Console
Achieve the highest levels of automation
sophistication with ease
Rule 5: Automate operational managementa) Everything is programmableb) Think disposable, one click deployments
AWS Elastic Beanstalk
Automate resource management
AWS CloudFormation
Templates to deploy & manage
Web App
Enterprise
App
Database
AWS OpsWorks
Dev-Ops framework for application lifecycle
management
Rule 5: Automate operational managementa) Everything is programmableb) Think disposable, one click deploymentsc) Design for failure, implement self healing
Customize instance startup
Get instances to ask ‘who am I?’ question on startup and be configured dynamically upon
being answered
Maintain capacity of instances
Using a minimum pool size will maintain
capacity in the event of instance failures
Know what’s going on, take automated actions
Use CloudWatch standard and custom metrics to create
alarms.
Respond with automated administration actions
Bootstrapping Auto-scaling Cloud Watch
Rule 5: Automate operational managementa) Everything is programmableb) Think disposable, one click deploymentsc) Design for failure, implement self healing
Rule 2: Service requests as fast as possible
Rule 1: Service all web requests
Rule 3: Handle requests at any scale
Rule 4: Simplify architecture with services
Rule 5: Automate operational management
Rule 6: Leverage unique cloud properties
Small 1.7 GB, 1 ECU1 virtual core
Large 7.5 GB4 ECUs2 virtual cores
Extra Large 15 GB 8 ECUs4 virtual cores
Hi-Mem XL 17.1 GB6.5 ECUs2 virtual cores
Hi-Mem 2XL 34.2 GB13 ECUs4 virtual cores
Hi-Mem 4XL 68.4 GB26 ECUs8 virtual cores
High-CPU Med 1.7 GB 5 ECUs 2 virtual cores
High-CPU XL 7 GB 20 ECUs8 virtual cores
Micro 613 MB Up to 2 ECUs (for short bursts)
Cluster GPU 4XL 22 GB 33.5 ECUs8 Nehalem virtual cores 2 x NVIDIA Tesla “Fermi” M2050 GPUs
Cluster Compute 4XL 23 GB 33.5 ECUs 8 Nehalem virtual cores
Cluster Compute 8XL 60.5 GB 88 ECUs 8 core 2 x Intel Xeon
Medium 3.75 GB2 ECUs1 virtual cores
Rule 6: Leverage unique cloud propertiesa) Optimize costs with instance types
Unix/Linux instances start at $0.02/hour
Pay as you go for compute power
Low cost and flexibility
Pay only for what you use, no up-front commitments or long-term contracts
Use Cases:
Applications with short term, spiky, or unpredictable workloads;
Application development or testing
On-demand instances
1- or 3-year terms
Pay low up-front fee, receive significant hourly discount
Low Cost / Predictability
Helps ensure compute capacity is available when needed
Use Cases:
Applications with steady state or predictable usage
Applications that require reserved capacity, including disaster recovery
Reserved instances
Bid on unused EC2 capacity
Spot Price based on supply/demand, determined automatically
Cost / Large Scale, dynamic workload handling
Use Cases:
Applications with flexible start and end times
Applications only feasible at very low compute prices
Spot instances
Rule 6: Leverage unique cloud propertiesa) Optimize costs with instance types
a) Optimize costs with instance typesb) Get insight fast with Elastic MapReduce
Rule 6: Leverage unique cloud properties
Elastic MapReduceManaged, elastic Hadoop cluster
Integrates with S3 & DynamoDB
Leverage Hive & Pig analytics scripts
Integrates with instance types such as spot
Feature Details
Scalable Use as many or as few compute instances running Hadoop as you want. Modify the number of instances while your job flow is running
Integrated with other services
Works seamlessly with S3 as origin and output. Integrates with DynamoDB
Comprehensive Supports languages such as Hive and Pig for defining analytics, and allows complex definitions in Cascading, Java, Ruby, Perl, Python, PHP, R, or C++
Cost effective Works with Spot instance types
Monitoring Monitor job flows from with the management console
Cluster compute instancesImplement HVM process execution
Intel® Xeon® E5-2670 processors
10 Gigabit Ethernet
Cluster Compute
80 EC2 Compute Units
60GB RAM
3TB LocalDisk
Network placement groupsCluster instances deployed in a ‘Placement Group’ enjoy low
latency, full bisection 10 Gbps bandwidth
10Gbps
Rule 6: Leverage unique cloud propertiesa) Optimize costs with instance typesb) Get insight fast with Elastic MapReducec) Create a supercomputer backend when you need it
Rule 2: Service requests as fast as possible
Rule 1: Service all web requests
Rule 3: Handle requests at any scale
Rule 4: Simplify architecture with services
Rule 5: Automate operational management
Rule 6: Leverage unique cloud properties
Use AWS for…
Fast!Always
on!
Features!
Personal!
Use AWS for…
Elastic capacity
Alwayson!
Features!
Personal!
✔
Use AWS for…
Elastic capacity
Highly available, global
coverage
Features!
Personal!
✔ ✔
Use AWS for…
Elastic capacity
Highly available, global
coverage
Agility & automated
ops
Personal!
✔ ✔
✔
Use AWS for…
Elastic capacity
Highly available, global
coverage
Agility & automated
ops
Storage,Big Data, Analytics
✔ ✔
✔ ✔
• http://aws.amazon.com/de/free/ • Für neue AWS Kunden• Bis zu 12 Monate kostenlose Nutzung für viele AWS Dienste• Kreditkarte für Anmeldung erforderlich
– Aber keine Abbuchungen, so lange Sie im „Free Tier“ bleiben
Testen Sie - kostenlos
• http://aws.amazon.com/de • 25 US$ credits für neue Kunden:
http://aws.amazon.com/de/campaigns/account/• Twitter: @AWS_Aktuell• Facebook:
http://www.facebook.com/awsaktuell • Webinare: http://aws.amazon.com/de/about-aws/events/• Slides: http://de.slideshare.net/AWSAktuell
Ressourcen