Upload
vannhan
View
227
Download
4
Embed Size (px)
Citation preview
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Michele Alessandrini, Sr. Solutions Architect, AWS
November 9°, 2016
Move to the Next ScaleGo to 1M users
Growth is good…
Dev & Test
Friends & Family
Live GA
…but can be challenging!!Source: http://peterskastner.wordpress.com/2011/02/23/cisco-the-lion-king-fights-for-data-center-fabric-leadership/Source: http://iwgcr.org/fire-destroys-wisconsin-data-center/
So how do we scale?
One size does not fit all !!
Global Footprint
Over 1 million active customers per month
across 190 countries
2,300 government agencies
7,000 educational institutions
14 regions
38 availability zones + 4 more coming soon
63 edge locations
AWS is available today in the U.S., Brazil, Europe, Japan, Singapore,
Australia, and China. Additional regions in the UK, France, Canada and
China are expected to come online over the next 12 – 18 months.
ENTERPRISE
APPS
DEVELOPMENT & OPERATIONSMOBILE SERVICESAPP SERVICESANALYTICS
Data
Warehousing
Hadoop/
Spark
Streaming Data
Collection
Machine
Learning
Elastic
Search
Virtual
Desktops
Sharing &
Collaboration
Corporate
Backup
Queuing &
Notifications
Workflow
Search
Transcoding
One-click App
Deployment
Identity
Sync
Single Integrated
Console
Push
Notifications
DevOps Resource
Management
Application Lifecycle
Management
Containers
Triggers
Resource
Templates
TECHNICAL &
BUSINESS
SUPPORT
Account
Management
Support
Professional
Services
Training &
Certification
Security
& Pricing
Reports
Partner
Ecosystem
Solutions
Architects
MARKETPLACE
Business
Apps
Business
IntelligenceDatabases
DevOps
ToolsNetworkingSecurity Storage
RegionsAvailability
Zones
Points of
Presence
INFRASTRUCTURE
CORE SERVICES
ComputeVMs, Auto-scaling,
& Load Balancing
StorageObject, Blocks,
Archival, Import/Export
DatabasesRelational, NoSQL,
Caching, Migration
NetworkingVPC, DX, DNS
CDN
Access
Control
Identity
Management
Key
Management
& Storage
Monitoring
& Logs
Assessment
and reporting
Resource &
Usage Auditing
SECURITY & COMPLIANCE
Configuration
Compliance
Web application
firewall
HYBRID
ARCHITECTURE
Data
Backups
Integrated
App
Deployments
Direct
Connect
Identity
Federation
Integrated
Resource
Management
Integrated
Networking
API
Gateway
IoT
Rules
Engine
Device
Shadows
Device
SDKs
Registry
Device
Gateway
Streaming Data
Analysis
Business
Intelligence
Mobile
Analytics
So let’s start from…
1 User
• Amazon Route 53 for DNS
• A single Elastic IP
• A single Amazon EC2
instance
• With full stack on this host
• Web app
• Database
• Management
• And so on…
Amazon
EC2
instance
Elastic IP
UserAmazon
Route 53
“We’re gonna need a bigger box”
• Simplest approach
• Can now leverage PIOPS
• High I/O instances
• High memory instances
• High CPU instances
• High storage instances
• Easy to change instance sizes
• Will hit an endpoint eventually
c4.8xlarge
m3.2xlarge
t2.micro
1 User
• We could potentially get
to a few hundred to a few
thousand depending on
application complexity
and traffic
• No failover
• No redundancy
• Too many eggs in one
basket
EC2
Instance
Elastic IP
UserAmazon
Route 53
Users > 1
First, let’s separate out our
single host into more than
one.
• Web
• Database
Make use of a database
service?Web
Instance
Database
Instance
Elastic IP
UserAmazon
Route 53
Database options
Self-managed Fully managed
Database server
on Amazon EC2
Your choice of
database running on
Amazon EC2
Bring Your Own
License (BYOL)
Amazon
DynamoDB
Managed NoSQL
database service
using SSD storage
Seamless scalability
Zero administration
Amazon RDS
Microsoft SQL Server
Oracle
MySQL
PostgreSQL
MariaDB
Amazon Aurora
BYOL or license
Included
Amazon
Redshift
Massively parallel,
petabyte-scale data
warehouse service
Fast, powerful, and
easy to scale
Users > 100
First, let’s separate out our
single host into more than
one:
• Web
• Database
Use Amazon RDS to make
your life easierWeb
instance
Elastic IP
RDS DB
instance
UserAmazon
Route 53
Users > 1000
Next, let’s address our lack of
failover and redundancy
issues:
Another web instance
• In another Availability Zone
RDS Multi-AZ
Elastic Load Balancing (ELB)
Web
Instance
RDS DB Instance
Active (Multi-AZ)
Availability Zone Availability Zone
Web
Instance
RDS DB Instance
Standby (Multi-AZ)
ELB
Balancer
UserAmazon
Route 53
Elastic Load Balancing
• Highly available
• 1 - 65535
• Health checks
• Session stickiness
• Secure sockets layer
• Monitoring
• Logging
Scaling…
horizontally
ve
rtic
all
y
Users > 10,000s–100,000s
RDS DB Instance
Active (Multi-AZ)
Availability Zone Availability Zone
RDS DB Instance
Standby (Multi-AZ)
ELB
Balancer
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
Web
Instance
Web
Instance
Web
Instance
Web
Instance
Web
Instance
Web
Instance
Web
Instance
Web
Instance
Amazon
Route 53User
RDS DB Instance
Active (Multi-AZ)
Availability Zone
ELB
Balancer
Amazon S3
Amazon
CloudFront
Amazon
Route 53User
Shift some load around
Web Instances
• static content to Amazon S3
and Amazon CloudFront
Move…
Amazon Simple Storage Service (S3)
• Object-based storage
• Highly durable
• Great for static assets
• “Infinitely scalable”
• Objects up to 5 TB in size
• Optional encryption
Amazon CloudFront
• Cache content for faster delivery
• Lower load on origin
• Dynamic and static content
• Streaming video
• Custom SSL certificates
• Low TTLs (as short as 0 seconds)
• Free origin fetches?
• Optimized for AWS
Shift some load around
• static content to Amazon S3 and
Amazon CloudFront
Move…
• session/state to Amazon
DynamoDB
• DB caching to Amazon
ElastiCacheRDS DB Instance
Active (Multi-AZ)
Availability Zone
ELB
Balancer
Amazon S3
Amazon
CloudFront
Amazon
Route 53User
ElastiCache DynamoDB
Web Instances
Amazon DynamoDB
• Managed NoSQL database
• Provisioned throughput
• Fast, predictable performance
• Fully distributed, fault tolerant
• JSON support
• Items up to 400 KB
Amazon Elasticache
• Managed Memcached or Redis
• Scale from one to many nodes
• Self-healing (replaces dead instance)
• Single digit ms speeds (usually)
• Local to a single AZ for Memcache
• Multi-AZ possible with Redis
Shift some load around
Move…
• static content to Amazon S3 and Amazon CloudFront
• session/state to Amazon DynamoDB
• DB caching to Amazon ElastiCache
• dynamic content to Amazon CloudFront
RDS DB Instance
Active (Multi-AZ)
Availability Zone
ELB
Balancer
Amazon S3
Amazon
CloudFrontUser
ElastiCache DynamoDB
Web Instances
Amazon
Route 53
Auto Scaling!
Auto Scaling
Automatic resizing of compute clusters
Define min/max pool sizes
CloudWatch metrics drive scaling
On-demand or Spot instances
aws autoscaling create-auto-scaling-group
--auto-scaling-group-name MyGroup
--launch-configuration-name MyConfig
--min-size 4
--max-size 200--availability-zones eu-west-1a, eu-west-1b
Sunday Monday Tuesday Wednesday Thursday Friday Saturday
Typical weekly traffic to Amazon.com
Sunday Monday Tuesday Wednesday Thursday Friday Saturday
Typical weekly traffic to Amazon.com
Provisioned capacity
November
November traffic to Amazon.com
Provisioned capacity
November
November traffic to Amazon.com
November traffic to Amazon.com
76%
24%November
Provisioned capacity
November traffic to Amazon.com
November
Users > 500.000+
Availability Zone
Amazon
Route 53User
Amazon S3
Amazon
CloudFront
Availability Zone
ELB
Balancer
DynamoDB
RDS DB Instance
Read Replica
Web
Instance
Web
Instance
Web
Instance
ElastiCache RDS DB Instance
Read Replica
Web
InstanceWeb
Instance
Web
Instance
ElastiCacheRDS DB Instance
Standby (Multi-AZ)RDS DB Instance
Active (Multi-AZ)
Use automation
AWS application management solutions
Convenience Control
Higher-level services Do it yourself
AWS
Elastic Beanstalk
AWS
OpsWorks
AWS
CloudFormationAmazon EC2
SOAing
Move services into their own tiers.
• Treat them separately and scale them
independently.
Amazon and AWS do this extensively!
It offers flexibility and greater understanding of
each component
Microservices approach w/ Containers
Leverage API Gateway & Lambda + Application Load Balancing
Loose coupling + SOA = winning
DON’T REINVENT THE WHEEL
• Queuing
• Transcoding
• Search
• Monitoring
• Metrics
• Logging
• Compute
Amazon
CloudSearchAmazon SQSAmazon SNS
Amazon Elastic
TranscoderAmazon SWFAmazon SES
AWS Lambda
Users >1 million+
RDS DB Instance
Active (Multi-AZ)
Availability Zone
ELB
Balancer
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
Web
Instance
Web
Instance
Web
Instance
Web
Instance
Amazon
Route 53User
Amazon S3
Amazon
CloudFront
DynamoDB
Amazon SQS
ElastiCache
Worker
Instance
Worker
Instance
Amazon
CloudWatch
Internal App
Instance
Internal App
Instance Amazon SES
Lambda
Next steps?
READ!
aws.amazon.com/documentation
aws.amazon.com/architecture
START USING AWS:
aws.amazon.com/free/
Ask for Help!
forums.aws.amazon.com
aws.amazon.com/premiumsupport/
Your Account Manager
A Solutions Architect
Thank you!
Michele Alessandrini – Sr. Solutions Architect – AWS
https://it.linkedin.com/in/michelealessandrini