4. Modern Applications Expectations
• What do we expect from applications?
• Highly Availability
• Scalability
• Predictable Responsiveness
• Fault Tolerance
• How can we achieve this?
• Multiple datacenter facilities
• Auto-Scalable databases
• Auto-Scalable server infrastructure
• Load-Balancing
• etc.
5. Web Services
Core Services Compute Storage Database Networking
Infrastructure RegionsAvailability Zones Edge Locations
Platform
Services
Analytics &
AI
App Deployment Mobile
Virtual
Desktops
Collaboration
& Sharing
App Delivery E-Mail
Access
Control
Auditing Monitoring EncryptionSecurity
Applications
A
P
I
&
S
D
K
s
6. Web Services
Core Services Compute Storage Database Networking
Infrastructure RegionsAvailability Zones Edge Locations
Platform
Services
Analytics &
AI
App Deployment Mobile
Virtual
Desktops
Collaboration
& Sharing
App Delivery E-Mail
Access
Control
Auditing Monitoring EncryptionSecurity
Applications
A
P
I
&
S
D
K
s
7. SDKs
Java Python (boto) PHP .NET Ruby Node.js
iOS Android AWS Toolkit for
Visual Studio
AWS Toolkit
for Eclipse
AWS Tools for
Windows
PowerShell
AWS CLI
JavaScript
9. Components of a Web App
• Three tier architecture:
• Web Server
• App Server
• Database
• Components
• Application Compute
• Database Engine
• Storage & Delivery
10. Components of a Web App
• Three tier architecture:
• Web Server
• App Server
• Database
• Components
• Application Compute
• Database Engine
• Storage & Delivery
11. AWS Elastic Beanstalk
• Easily deploy, monitor, and scale web
applications
• Infrastructure provisioned and managed
by EB – you maintain complete control.
• Preconfigured application containers
that are easily customizable.
12. AWS Elastic Beanstalk Environment
• Two types:
• Single instance
• Load balanced, auto scalable
• Two tiers
• Web Server
• Worker
• Configures Amazon Route 53
and provides a domain name
https://yourapp.elasticbeanstalk.com
13. AWS Elastic Beanstalk Instance Configuration
Your code
HTTP server
Application server
Language interpreter
Operating system
Host
• Each EC2 instance
comes with the
necessary components
to run applications
• No more worrying about
logging into instances to
install and configure your
app stack
Focus on building your app
14. Application Versioning
Saved Configurations
Allow for easy duplication for
A/B testing or non-disruptive
deployments
Application Versions
All versions are stored
durably in Amazon S3.
Code can also be pushed
from a Git repository!
15. Deployment Options
1. Via the AWS Management Console
2. Via Git / EB CLI
3. Via the AWS Toolkit for Eclipse and
the Visual Studio IDE
$ git aws.push
16. Example: CLI workflow
Initial app deployment:
$ git init . $ git add .
Initialize your Git repository01 Add your code04
$ eb init $ git commit –m “v1.0”
Create your Elastic Beanstalk app02 Commit05
Follow the prompts to configure the
environment
03
Create the resources and launch the
application
06
$ eb create
17. Example: CLI workflow
Update your app:
Update your code01
$ git add .
$ git commit –m “v2.0”
$ eb deploy
Push the new code02
Monitor the deployment progress03
$ eb status
19. Components of a Web App
• Three tier architecture:
• Web Server
• App Server
• Database
• Components
• Application Compute
• Database Engine
• Storage & Delivery
20. Amazon RDS
Amazon RDS
• Fully managed relational database
• Automated full daily backups and 5 min
incremental point in time recovery
• Highly available through Multi-AZ with
automatic failover to standby database
• Easily create cross-region read replicas
• Managed underlying storage layer with
configurable IOPS performance
Aurora
21. Amazon DynamoDB
• Schemaless Data Model
• Seamless scalability
• No storage or throughput limits
• Consistent low latency performance
• High durability and availability
• Replicated across 3 facilities
DynamoDB
table
items
attributes
Fully Managed NoSQL Database Service
22. Components of a Web App
• Three tier architecture:
• Web Server
• App Server
• Database
• Components
• Application Compute
• Database Engine
• Storage & Delivery
23. Amazon S3 (Simple Storage Service)
• Scalable & fully managed object storage
• Virtually unlimited storage capacity
• Pay only for what you use
• Trillions of unique customer objects
• Millions of transactions per second
• Designed for 99.999999999% durability Amazon S3
24. Amazon S3 – Buckets and Objects
• Stored in Buckets
• Allows Versioning
• Access control lists and bucket policies
• AES-256 bit encryption at rest
• Addressable via HTTP(S) endpoint
• Ideal for static assets like images,
videos, application data, backups and
more
25. Amazon S3 – Static Content Website
• S3 becomes your static webserver
• Amazon S3 is fully managed and
scales to millions of requests
• Offload static content to S3 and
run dynamic content on EC2
(Elastic Beanstalk)
26. • One of the world’s leading social
sound platform
• Audio files must be transcoded and
stored in multiple formats
• Stores 2.5 PBs of data
• Transcoded files served from
Amazon S3
Use Case: SoundCloud
27. Amazon CloudFront
• CDN powered by 76 edge locations
across the world
• Caches content on edge locations for
low latency
• Allows Geo Targeting and Device
Detection
• Can route to different origins based
on path patterns (e.g. *.jpg S3)
Amazon CloudFront
30. Software creation and distribution is
easier and faster than ever:
• Startups can now disrupt established
industries with little to no funding
• Getting your software into the hands of
millions is a download away
• Your ability to move fast is paramount to
innovate and be successful
Software Moves Faster Today
31. DevOps tools stack on AWS
Source Build Test Deploy Provision Monitor
CodeCommit CodeBuild
CodeDeploy
CodePipeline
Cloud
Formation
Cloud
Watch
Elastic Beanstalk
OpsWorks
EC2 Container Service (ECS)
X-ray
32. Quickly develop, build and deploy applications
on AWS
Start developing on AWS in minutes by choosing
from a variety of templates
Work across your team; Securely manage
project access for your team
Manage software delivery easily by iterating
quickly with all the tools you need
AWS CodeStar
AWS
CodeStar
38. AWS Lambda
Run your code without thinking about
servers. Pay only for compute time
you consume.
Triggered through API calls or state
changes in your AWS environment
Scales automatically to match the
incoming event rate
Charged per 100ms execution time
AWS Lambda
39. How to build application backends?
Back-end logic DatabaseMobile
40. How to build serverless microservices?
AWS
Lambda
Amazon API
Gateway
Amazon
DynamoDB
Microservice
41. Amazon API Gateway
Fully managed and scalable RESTful
API gateway service
Powered by our content delivery
network via 76 global edge locations
Provides DDoS protection and
throttling capabilities
Multiple API stages which you define
(e.g. dev, test, prod)
AWS Lambda
Amazon API
Gateway
Amazon EC2
AWS API
On-prem server
42. Webhooks – Integrate with other platforms
Facebook
Page AWS Lambda
Slack
Channel
Amazon
API
Gateway
Amazon
DynamoDB
Incoming
Webhook
Oli just posted
on your page!
Oli | 2016-10-
01 | Hello
47. AdRoll: AWS Lambda for log files
Valentino Volonghi
CTO, AdRoll
“Polling is not a scalable strategy to
figure out when new files are added to S3,
especially when you add 17M of them per
month. So we moved Lambda in front of
S3.”
• Cross-platform, cross-device
advertising platform
• Offers retargeting based on
clickstream data
300TB
new
data/mont
h
48. Amazon Rekognition
Image Recognitions and Analysis
powered by Deep Learning which
allows to search, verify and organize
millions of images
Easy to use Batch Analysis Real-time
Analysis
Continually Improving Low Cost
59. Authenticate & Sync
Authorize access
Analyze User Behavior
Store & Deliver Content
Test across
Devices
Send Push Notifications
Store Data
Record Real-Time EventsRun Business Logic
Drive User Engagement
Manage users and identity providers
and sync prefs across devices
Securely access
cloud resources
Test across multiple devices
and operating systems
Track active users,
engagement
Run stateless custom
code without servers
Store user-generated content
and deliver quickly globally
Bring users back to your app by sending
messages reliably
Run targeted campaigns based on user
behavior and track results
Store and query fast NoSQL data
across users and devices
Collect real-time event logs
and take actions quickly
60. Amazon Mobile
Analytics
Amazon Device Farm
AWS IAM
Amazon Cognito Amazon S3 Amazon CloudFront
Amazon DynamoDB
AWS Lambda
Amazon SNS Mobile Push
AWS Mobile SDK
Amazon Kinesis
Authenticate & Sync
Authorize access
Analyze User Behavior
Store & Deliver Content
Test across
Devices
Send Push Notifications
Store Data
Record Real-Time EventsRun Business Logic
Drive User Engagement
Amazon Pinpoint
61. AWS Mobile Hub
• Allows to build mobile apps within
minutes
• Single integrated console to use all AWS
services for mobile
• Automatically provisions all necessary
AWS services based on selected features
• Automatic code generation for iOS,
Android and JavaScript
• Uses AWS security best practices