SlideShare a Scribd company logo
AWS Cloud Kata for Start-Ups and Developers
Hong Kong
Aug 3
AWS Cloud Kata for Start-Ups and Developers
Hong Kong
AWS Elastic Beanstalk
Multi-container Microservices with Docker
Alex Smith
Head of Media & Entertainment Architecture, Asia Pacific
Amazon Web Services
AWS Cloud Kata for Start-Ups and Developers
Web Services
APP DEPLOYMENT ENVIRONMENTS INFRASTRUCTURE
AWS Cloud Kata for Start-Ups and Developers
Developer Challenges
Complexity of deploying code,
provisioning and managing
infrastructure
Expertise and time needed to
manage and configure servers,
databases, load balancers,
firewalls, and networks
Difficulty automating application
scaling
AWS Cloud Kata for Start-Ups and Developers
What if you could just focus on your app?
and a TOOLBOX for
DEPLOYMENT, ENVIRONMENTS and
INFRASTRUCTURE
APP
AWS Cloud Kata for Start-Ups and Developers
You can, with AWS Elastic Beanstalk!
APP AWS Elastic Beanstalk
AWS Cloud Kata for Start-Ups and Developers
Okay let’s get started!
AWS Cloud Kata for Start-Ups and Developers
AWS Elastic Beanstalk
Easy to use Service
Deploy and Scale
Web Apps
Don’t Sweat the Small
Stuff
AWS Cloud Kata for Start-Ups and Developers
AWS Elastic Beanstalk
Your code
HTTP server
Application server
Language interpreter
Operating system
Host
• Each Amazon 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
AWS Cloud Kata for Start-Ups and Developers
AWS Elastic Beanstalk - EB
• Easily deploy, monitor, and scale applications
• Infrastructure provisioned and managed by EB.
You maintain complete control.
• Preconfigured application containers that are
easily customizable.
AWS Cloud Kata for Start-Ups and Developers
AWS Elastic Beanstalk Environment
• Two tiers
• Web Server
• Worker
• Two types:
• Single instance
• Load balanced, auto scalable
• Configures Amazon Route 53
and provides a domain name
https://yourapp.elasticbeanstalk.com
AWS Cloud Kata for Start-Ups and Developers
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!
AWS Cloud Kata for Start-Ups and Developers
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
$ pip install awsebcli
AWS Cloud Kata for Start-Ups and Developers
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
AWS Cloud Kata for Start-Ups and Developers
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
AWS Cloud Kata for Start-Ups and Developers
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
AWS Cloud Kata for Start-Ups and Developers
More Details of EB CLI
Agile Deployment using Git and
AWS Elastic Beanstalk
http://bitly.com/summit-2016-sg
AWS Cloud Kata for Start-Ups and Developers
Docker with
AWS Elastic Beanstalk
AWS Cloud Kata for Start-Ups and Developers
Docker with AWS Elastic Beanstalk
Single Docker
Container
AWS Cloud Kata for Start-Ups and Developers
Docker with AWS Elastic Beanstalk
Single Docker
Container
Multiple Docker
Containers
AWS Cloud Kata for Start-Ups and Developers
Multi Container: Architecture
Each env: 1 ECS Cluster
1 Task Def / Env
ECS Task defined in
Dockerrun.aws.json
Out of the box auto
scaling for ECS Tasks
Task 1-1 Task 1-2
Container 1
C2 C3
Container 1
C2 C3
ELB
Instance 1 Instance 2
AWS Cloud Kata for Start-Ups and Developers
Multi Container Dockerrun.aws.json
{
"AWSEBDockerrunVersion": 2,
[...]
}
AWS Cloud Kata for Start-Ups and Developers
Multi Container Dockerrun.aws.json
"containerDefinitions": [
{
"name": "php-app",
"image": "php:fpm",
"essential": true,
"memory": 128,
},
AWS Cloud Kata for Start-Ups and Developers
Multi Container Dockerrun.aws.json
"links": [
"php-app",
"list-service",
"search-service”
]
AWS Cloud Kata for Start-Ups and Developers
Multi Container Dockerrun.aws.json
"mountPoints": [
{
"sourceVolume": "php-app",
"containerPath": "/var/www/html",
"readOnly": true
}
]
AWS Cloud Kata for Start-Ups and Developers
Nginx Proxy Example: bit.ly/eb-docker-nginx
AWS Cloud Kata for Start-Ups and Developers
Live Demo
Slightly more difficult…
AWS Cloud Kata for Start-Ups and Developers
New Features
AWS Cloud Kata for Start-Ups and Developers
New Features
Support for EC2
Container Registry
Managed Updates
New Deployment
Options
• (Immutable, Additional Batch)
AWS Cloud Kata for Start-Ups and Developers
Three Next Steps
1. Check out the EB + Git talk from the SG Summit -
http://bitly.com/summit-2016-sg
2. Try out the “EB VirtualHosting” demo -
https://github.com/awslabs/eb-docker-virtual-hosting
3. Build your own custom web-app using EB CLI!
AWS Cloud Kata for Start-Ups and Developers
Questions?
http://bit.ly/eb-forum
T: @aws_eb
AWS Cloud Kata for Start-Ups and Developers
Questions?
E: alexjs@amazon.com
T: @alexjs
AWS Cloud Kata for Start-Ups and Developers
THANK YOU!
Please remember to fill out evaluations
AWS Cloud Kata for Start-Ups and Developers
Hong Kong
Aug 3

More Related Content

Running Microservices and Docker with AWS Elastic Beanstalk

  • 1. AWS Cloud Kata for Start-Ups and Developers Hong Kong Aug 3
  • 2. AWS Cloud Kata for Start-Ups and Developers Hong Kong AWS Elastic Beanstalk Multi-container Microservices with Docker Alex Smith Head of Media & Entertainment Architecture, Asia Pacific Amazon Web Services
  • 3. AWS Cloud Kata for Start-Ups and Developers Web Services APP DEPLOYMENT ENVIRONMENTS INFRASTRUCTURE
  • 4. AWS Cloud Kata for Start-Ups and Developers Developer Challenges Complexity of deploying code, provisioning and managing infrastructure Expertise and time needed to manage and configure servers, databases, load balancers, firewalls, and networks Difficulty automating application scaling
  • 5. AWS Cloud Kata for Start-Ups and Developers What if you could just focus on your app? and a TOOLBOX for DEPLOYMENT, ENVIRONMENTS and INFRASTRUCTURE APP
  • 6. AWS Cloud Kata for Start-Ups and Developers You can, with AWS Elastic Beanstalk! APP AWS Elastic Beanstalk
  • 7. AWS Cloud Kata for Start-Ups and Developers Okay let’s get started!
  • 8. AWS Cloud Kata for Start-Ups and Developers AWS Elastic Beanstalk Easy to use Service Deploy and Scale Web Apps Don’t Sweat the Small Stuff
  • 9. AWS Cloud Kata for Start-Ups and Developers AWS Elastic Beanstalk Your code HTTP server Application server Language interpreter Operating system Host • Each Amazon 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
  • 10. AWS Cloud Kata for Start-Ups and Developers AWS Elastic Beanstalk - EB • Easily deploy, monitor, and scale applications • Infrastructure provisioned and managed by EB. You maintain complete control. • Preconfigured application containers that are easily customizable.
  • 11. AWS Cloud Kata for Start-Ups and Developers AWS Elastic Beanstalk Environment • Two tiers • Web Server • Worker • Two types: • Single instance • Load balanced, auto scalable • Configures Amazon Route 53 and provides a domain name https://yourapp.elasticbeanstalk.com
  • 12. AWS Cloud Kata for Start-Ups and Developers 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!
  • 13. AWS Cloud Kata for Start-Ups and Developers 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 $ pip install awsebcli
  • 14. AWS Cloud Kata for Start-Ups and Developers 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
  • 15. AWS Cloud Kata for Start-Ups and Developers 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
  • 16. AWS Cloud Kata for Start-Ups and Developers 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
  • 17. AWS Cloud Kata for Start-Ups and Developers More Details of EB CLI Agile Deployment using Git and AWS Elastic Beanstalk http://bitly.com/summit-2016-sg
  • 18. AWS Cloud Kata for Start-Ups and Developers Docker with AWS Elastic Beanstalk
  • 19. AWS Cloud Kata for Start-Ups and Developers Docker with AWS Elastic Beanstalk Single Docker Container
  • 20. AWS Cloud Kata for Start-Ups and Developers Docker with AWS Elastic Beanstalk Single Docker Container Multiple Docker Containers
  • 21. AWS Cloud Kata for Start-Ups and Developers Multi Container: Architecture Each env: 1 ECS Cluster 1 Task Def / Env ECS Task defined in Dockerrun.aws.json Out of the box auto scaling for ECS Tasks Task 1-1 Task 1-2 Container 1 C2 C3 Container 1 C2 C3 ELB Instance 1 Instance 2
  • 22. AWS Cloud Kata for Start-Ups and Developers Multi Container Dockerrun.aws.json { "AWSEBDockerrunVersion": 2, [...] }
  • 23. AWS Cloud Kata for Start-Ups and Developers Multi Container Dockerrun.aws.json "containerDefinitions": [ { "name": "php-app", "image": "php:fpm", "essential": true, "memory": 128, },
  • 24. AWS Cloud Kata for Start-Ups and Developers Multi Container Dockerrun.aws.json "links": [ "php-app", "list-service", "search-service” ]
  • 25. AWS Cloud Kata for Start-Ups and Developers Multi Container Dockerrun.aws.json "mountPoints": [ { "sourceVolume": "php-app", "containerPath": "/var/www/html", "readOnly": true } ]
  • 26. AWS Cloud Kata for Start-Ups and Developers Nginx Proxy Example: bit.ly/eb-docker-nginx
  • 27. AWS Cloud Kata for Start-Ups and Developers Live Demo Slightly more difficult…
  • 28. AWS Cloud Kata for Start-Ups and Developers New Features
  • 29. AWS Cloud Kata for Start-Ups and Developers New Features Support for EC2 Container Registry Managed Updates New Deployment Options • (Immutable, Additional Batch)
  • 30. AWS Cloud Kata for Start-Ups and Developers Three Next Steps 1. Check out the EB + Git talk from the SG Summit - http://bitly.com/summit-2016-sg 2. Try out the “EB VirtualHosting” demo - https://github.com/awslabs/eb-docker-virtual-hosting 3. Build your own custom web-app using EB CLI!
  • 31. AWS Cloud Kata for Start-Ups and Developers Questions? http://bit.ly/eb-forum T: @aws_eb
  • 32. AWS Cloud Kata for Start-Ups and Developers Questions? E: alexjs@amazon.com T: @alexjs
  • 33. AWS Cloud Kata for Start-Ups and Developers THANK YOU! Please remember to fill out evaluations
  • 34. AWS Cloud Kata for Start-Ups and Developers Hong Kong Aug 3