HiganWorks合同会社/opsrock	
 
澤登	
 亨彦
OpsWorks
ご案内:このセッションは
昨年発表内容の再構成です
• 大阪のAWS全サービス紹介
• 神戸のChef特集
• 最新の機能は補足での紹介です、ご了承くだ
さい
2
Chefの本を書きました
• 来月、4/12(土)発売予定
• 「Chef活用ガイド ∼ コードではじめる構成
管理」
• Infrastructure as Codeを実践しよう!
• 日本公式代理店の

クリエーションラインさんと

共著
3
NOW
Printing
『Chef活用ガイド』について
• 注意:すぐ使える!とかではない模様
• 公式Docsの流れを踏襲し、さらに詳しく記述
• 解説部分の元ネタは大体ソースコード
• Chef本体から離れる話は少なめ
• 付録
• 今日のセッションみたいなコラム
• Enterpriseアドオン
• 全リソース和訳
4
NOW
Printing
運営組織
5
• 代表社員をつとめる合同会社
• アプリケーションのためのプラットフォーム構築/運
用自動化をテーマに活動
• http://opsrock.in 共同開発・運営
• Chef関連を主に取り扱うソリューションを
提供
• 導入支援コンサルも
本日の内容
• AWS OpsWorks の概要
• OpsWorksの機能と関連するAWS達
• スタックとレイヤ
• アプリケーションライフサイクルとデプロイ
• OpsWorksのオートスケール
• OpsWorks Ruby on Railsデプロイ
6
AWS OpsWorks の
概要
AWS OpsWorksとは?
• アプリケーションのライフサイクル管理を一
本化するために作られたソリューション
• プラットフォームの自動構築
• アプリケーションのdeploy(undeploy)
8
プラットフォームの自動構築
• アプリケーションが動作する

プラットフォームとは?
• ネットワーク環境の構築
• サーバ(インスタンス)の調達
• ミドルウェアの設定
9
アプリケーションのdeploy
• アプリケーション ソースコード(リポジトリ)
• git, svn, zip(http, s3)
+ 何らかの配布/ビルドの仕組み
10
OpsWorks Agent
タスク実行 タスク実行管理
OpsWorksの機能と
関連するAWS達
関連AWSは大体こいつらです
12
Amazon EC2 Auto Scaling
Elastic Load
Balancing
Amazon S3
CloudWatch IAM
Amazon SQS
機能対応表
13
OpsWorks 関連AWS
サーバインスタンス提供 EC2, S3
モニタリング CloudWatch
パーミッション IAM
オートスケール ELB, AutoScaling
オートヒール CloudWatch, EC2
※発表者独自の見解を含みます
スタックとレイヤ
『スタック』
1システムをまとめた単位
アプリケーションのプラットホーム全体
『レイヤ』
役割別インスタンスの集合
DB
WebServer
Application
System A
アプリケーション
ライフサイクルと
デプロイ
1.Setup
2.Configure
3.Deploy
4.UnDeploy
5.Shutdown
17
OpsWorksのライフサイクル定義
プラットフォーム部分
プラットフォーム部分
• Setup
• インスタンスの起動
• 関連パッケージのインストール
• Configure (構成変更時にも自動実行)
• ミドルウェアの設定
• OpsWorksメタデータへの情報登録
18
設定情報登録例:Mysql
19
"opsworks": {!
"stack": {!
"name": "sample_stack"!
},!
"layers": {!
"db-master": {!
"id": "e554fc61-25f0-4cde-ab21-0fb890f586b6",!
"name": "MySQL Master",!
"instances": {!
"db-master1": {!
"public_dns_name": "ec2-54-250-66-243.xxx",!
"ip": "54.250.66.243",!
"private_ip": "10.154.17.254",!
"private_dns_name": "ip-10-154-17-254.xxx"!
}!
}!
}!
"mysql": {!
"server_root_password": "root_password"!
}!
}
※一部抜粋
1.Setup
2.Configure
3.Deploy
4.UnDeploy
5.Shutdown
20
OpsWorksのライフサイクル定義
アプリケーション部分
アプリケーション部分 1/2
• Deploy
• デプロイツール※風のタスクを実行

※Capistrano/Chef::Deploy
• レイヤ情報に基づいてアプリケーションコ
ンフィグの設定
• アプリケーションの起動
• ELB/HAProxy等のバックエンドに参加
21
アプリケーション部分 2/2
• UnDeploy
• ELB/HAProxy等のバックエンドから除外
• アプリケーションの停止
22
その他任意に実行可能な小タスク
• os package管理系
• update_dependencies
• install_dependencies
• Chef関連系
• update_custom_cookbooks
• execute_recipes
23
Shutdown
• 後片付け
• ミドルウェアの安全な停止
• OpsWorksAgentの安全な停止
• ステータス更新&削除
24
OpsWorksの
オートスケール
選べるオートスケール
• CloudWatch、AutoScalingと連携
• TimeBased instance
• 1時間単位でインスタンスの起動・停止状
態をスケジュールできます。
• LoadBased instance
• レイヤの平均負荷状況に応じてインスタン
スを起動・停止します。
26
AutoScale(OpsWorks)設定例
27
http://qiita.com/sawanoboly@github/items/2aa556fc4376a1695654
WEBの情報をご参照お願いします
監視ビュー
CloudWatchの自動グルーピング
• レイヤ単位でのリソース状況を一覧
29
http://aws.typepad.com/aws_japan/2013/05/aws-opsworks-update-elastic-load-balancing-monitoring-view-more-instance-types.html
ここ半年のUpdates
• カスタムAMIが使用可に
• (要OpsWorks Agent)
• VPCに対応
• IAMでリソース単位のパーミッション制御
• Chef Version 11.4
• コマンドラインツール/APIの強化
• Javaアプリケーションサポートの追加
30
OpsWorks
Ruby on Railsデプロイ
(紙芝居)
あ、依存パッケージ
忘れてた
インスタンス
起動してもうたし...
Railsプラットホーム
OK
おや、
DBレイヤ(mysql)が
ないよ?
注) 演出上の都合です、
プリセットのMySQLレイヤなら
悩まずデプロイできます
とりあえず
SQLite3でいいや
{	
  
	
  	
  "deploy":	
  {	
  
	
  	
  	
  	
  "books":	
  {	
  
	
  	
  	
  	
  	
  	
  "database":	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  "adapter":	
  "sqlite3"	
  
	
  	
  	
  	
  	
  	
  }	
  
	
  	
  	
  	
  }	
  
	
  	
  }	
  
}
しばし待つ
rails-app1: $ sudo cat 
/srv/www/books/current/config/database.yml
!
development:
-- snip-
!
production:
adapter: "sqlite3"
database: "books"
encoding: utf8
host: ""
username: "root"
password: ""
reconnect: true
database.yml もバッチリ
このレイヤに
インスタンスを
追加してみる
インスタンス起動時に
登録済みアプリは
とりあえずデプロイされます
production:
adapter: "mysql2"
database: "books"
encoding: utf8
host: ""
username: "root"
password: ""
reconnect: true
DB接続がデフォルトなので当然こけます
リカバリ方法は2つ
OpsWorks
Ruby on Railsデプロイ
(紙芝居)
完了
最後に
CloudFormation,Elastic
Beanstalk, OpsWorks...
あとOpscode Chef、
結局どれをつかえばいい
の?
78
目的が達成できるな
らなんでもいいと思
います。
...それでもやっぱりお悩みなら
相談するのがよいでしょう
OpsRock.in
80
おわり。
!
17:00∼の
Immutable Infrastructureトラック
パネルディスカッションも
どうぞよろしく

Aws OpsWorks [JAWSDAYS 2014 ACEに聞けトラック]