aws webcast - getting started with aws opsworks
TRANSCRIPT
AWS OpsWorks
Model, control, and automate infrastructure of
any scale and complexity
Deploy your application often, fast, and reliable
Easy to start with pre-build configurations
No additional cost running on AWS
Application management services
Convenience Control
AWS Elastic Beanstalk AWS OpsWorks AWS CloudFormation
AWS Elastic Beanstalk
as well as
AWS OpsWorks
can be controlled via
AWS CloudFormation.
AWS CloudFormation integration
OpsWorks Elastic Beanstalk
CloudFormation
Amazon RDS
Elastic Load
Balancing
Amazon CloudWatch
AWS CloudFormation
AWS CloudTrail
AWS IAM
(users and profiles)
Deep service integration for
Agent
Installed on every instance
Can execute different commands on an instance
Sends keep alive messages for auto healing
And 14 host level metrics every minute to
CloudWatch free of charge
Example event matrix
Setup Configure Deploy Undeploy Shutdown
Load
Balancer
Install load
balancer
Sync app
server IPs
Drain
connections
App
Server
Install app
server
Update DB IP
& restart
Update app
code & restart
Remove app
& restartShip logs
DatabaseInstall
database
Sync DB
ACLs
Make
snapshot
Chef – configuration management
Open Source
Cookbooks
& recipes
Ruby DSL
Many tutorials and
resources on the web
Resources describe
what to do or
define the desired state
Resources have
attributes
actions
cron "daily_report" do
minute "0"
hour "0"
day "*"
command "/daily_report"
action :create
end
Chef resources
Recipe setup.rb
package "apache2" do
case node[:platform]
when "centos","redhat","fedora","amazon"
package_name "httpd"
when "debian","ubuntu"
package_name "apache2"
end
action :install
end
apache2 / recipes / setup.rb
Prepare for large events
that exceed your own
data center capacity in
terms of infrastructure
or bandwidth.
Scale out existing infrastructure
On premise
AWS OpsWorks
DB read
DB write
Ease the load in your existing data center by moving environments to AWS OpsWorks.
Provide in minutes as many controlled and secure stacks for test and development to your QA teams or developers.
Move test and dev to AWS OpsWorks
prod teststaging
dev1 dev2
Recipe setup.rb
...
if node["cloud"]["provider"] == "ec2"
Chef::Log.info("This is an EC2 instance.")
else
Chef::Log.info("This is an onprem instance.")
include_recipe 'onprem::tweaks'
end
...
apache2 / recipes / setup.rb