aws elastic beanstalk運作微服務與docker
TRANSCRIPT
AWS Cloud Kata for Start-Ups and Developers
Taipei
AWS Cloud Kata for Start-Ups and Developers
Taipei
AWS Elastic Beanstalk Multi-container Microservices with Docker
KJ Wu Solutions Architect Amazon Web Services
AWS Cloud Kata for Start-Ups and Developers
Elastic Beanstalk vs DIY How to use Elastic Beanstalk Multi-container Docker with AWS Elastic Beanstalk Recently added Features
Agenda
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 How to automate application scaling
DevOps changes how you are used to working
AWS Cloud Kata for Start-Ups and Developers
What if you could just focus on your app ?
APP and a TOOLBOX for
DEPLOYMENT, ENVIRONMENTS and INFRASTRUCTURE
AWS Cloud Kata for Start-Ups and Developers
YES! 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
Components of a Web App • Three tier architecture:
• Web Server • App Server • Database
• Components • Application Compute • Database Engine • Storage and Delivery
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
The Common Used Deployment Options
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
$pipinstallawsebcli
AWS Cloud Kata for Start-Ups and Developers
Example: CLI workflow
Initial app deployment:
$gitinit. $gitadd.Initialize your Git repository 01 Add your code 04
$ebinit $gitcommit–m“v1.0”Create your Elastic Beanstalk app 02 Commit 05
Follow the prompts to configure the environment 03 Create the resources and launch the
application 06
$ebcreate
AWS Cloud Kata for Start-Ups and Developers
Example: CLI workflow
Update your app:
Update your code 01
$gitadd.$gitcommit–m“v2.0”$ebdeploy
Push the new code 02
Monitor the deployment progress 03
$ebstatus
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
Multiple Docker Containers
AWS Cloud Kata for Start-Ups and Developers
Multi Container: Architecture
Each environment has its own ECS Cluster Supports a single ECS Task
definition per environment The ECS Task is defined in
the Dockerrun.aws.json file Supports multiple ELB
listeners for inbound traffic Provides out of the box auto
scaling for ECS Tasks
Task 1-1 Task 1-2
Container 1 Container 1
ELB
Instance 1 Instance 2
Container 2
Container 3
Container 2
Container 3
AWS Cloud Kata for Start-Ups and Developers
Multi Container Dockerrun.aws.json
{ "AWSEBDockerrunVersion": 2, [...] }
the value "2" for multicontainer Docker environments
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 }
]
"volumes": [ { "name": "php-app", "host": { "sourcePath": "/var/app/current/php-app" } } ]
AWS Cloud Kata for Start-Ups and Developers
Nginx Proxy Example: bit.ly[….]
AWS Cloud Kata for Start-Ups and Developers
Live Demo
Slightly more difficult…
AWS Cloud Kata for Start-Ups and Developers
New Features
Support for EC2 Container Registry Managed Updates New Deployment Options Support for Application Load Balancer
AWS Cloud Kata for Start-Ups and Developers
New Deployment Options Rolling with additional batch
Rolling: Immutable
AWS Cloud Kata for Start-Ups and Developers
Questions? KJ Wu Solutions Architect, AWS
AWS Cloud Kata for Start-Ups and Developers
THANK YOU! Please remember to fill out evaluations