Post on 19-Jan-2017
How to develop and deploy web-scale applications on AWS
● Fundamentals of building resilient web-scale applications on AWS:○ From scratch○ Migrating from legacy hosting service
● The specific AWS services to use and how to take advantage of them
● Building for scalability, resilience and security● How to manage costs● How to avoid common mistakes
Agenda
Supporting businesses in public cloud adoption
Web Scale ApplicationsPublic Cloud
ServicesRecovery
ObjectivesDisaster
Recovery
Data Retention Backup as a
Service
Lifecycle Management
Archive as a Service
#1 DESIGN FOR FAILURE ●○○○
The cloud scales: AWS Global Reach
Daily Active Customers
AWS in numbers
Regions Availability Zones
Edge Locations
12
54
33
1m
...Expanding in 2016
#2 HIGH AVAILABILITY ●●○○
AWS building blocks
Inherently Highly Available and Fault Tolerant Services
● Amazon S3 ● Amazon DynamoDB
● Amazon CloudFront ● Amazon Route53 ● Elastic Load
Balancing ● Amazon SQS ● Amazon SNS ● Amazon SES ● Amazon SWF
Highly Available with the right architecture
● Amazon EC2● Amazon EBS● Amazon RDS● Amazon VPC
Highly available service architecture
#3 SCALING●●●○
Auto-scaling
Elastic Load Balancing
Amazon Route 53
#4 LOOSE COUPLING●●●●
Service orientated architecture
● Move services into their own tiers/modules
● Treat each of these as 100% wholly separate pieces of your infrastructure and scale them independently
● Design everything as a ‘black-box’
● Decouple interactions ● Favour services with built-in
redundancy and scalability than building your own
Building applications from scratch
Migrating applications – from legacy hosting
Optimising existing applications
Review security
Right sizing instances
Decoupling for scale
Make web servers stateless
Is my data safe and under control?
Maintaining privacy and security of data
Your data won’t move unless you move it
You decide where to put your data
Encryption in motion or at rest
Trusted Advisor - automated cost optimisation & advice
How to avoid common mistakes
Billing Alerts
Pre-warm Elastic Load Balancing
Scale down as well as up
Make sure web servers are stateless
Don’t use ephemeral storage for critical data
If nothing else, remember
#1 Design for failure#2 High availability#3 Scaling#4 Loose coupling
Resources
● http://docs.aws.amazon.com/gettingstarted/latest/wah-linux/web-app-hosting-intro.html
● Architecting for the Cloud whitepaper http://d0.awsstatic.com/whitepapers/AWS_Cloud_Best_Practices.pdf
● 9 Top Tips for scalable web apps in AWShttp://info.databarracks.com/AWS9Tips_ebookdownload.html
Questions.