SlideShare a Scribd company logo
Copyright © 2013 AGREX INC.
小規模SI案件で、
AWS + Chefを使ってみて
13年9月10日火曜日
Copyright © 2013 AGREX INC.
2
プロフィール
てるい まさし
照井 将士
http://www.facebook.com/marcy.terui
(株)アグレックス
札幌事業所 システム部
1987年 東京都大田区生まれ
1992年 札幌移住
2011年  (株)アグレックス入社
担当業務
・ECサイトを中心としたWEBシステムの受託開発、運用
役職
・下っ端、雑用係
担当職務
・インフラ構築、管理という名の雑用
・アプリケーション設計、実装、テストという名の雑用
・雑用という名の雑用
・雑用という名の(ry
好きなサービス
・CloudWatch
・Route53
13年9月10日火曜日
Copyright © 2013 AGREX INC.
2
プロフィール
てるい まさし
照井 将士
http://www.facebook.com/marcy.terui
(株)アグレックス
札幌事業所 システム部
1987年 東京都大田区生まれ
1992年 札幌移住
2011年  (株)アグレックス入社
担当業務
・ECサイトを中心としたWEBシステムの受託開発、運用
役職
・下っ端、雑用係
担当職務
・インフラ構築、管理という名の雑用
・アプリケーション設計、実装、テストという名の雑用
・雑用という名の雑用
・雑用という名の(ry
好きなサービス
・CloudWatch
・Route53
道内第1号
(かもしれない)
13年9月10日火曜日
Copyright © 2013 AGREX INC.
2
プロフィール
てるい まさし
照井 将士
http://www.facebook.com/marcy.terui
(株)アグレックス
札幌事業所 システム部
1987年 東京都大田区生まれ
1992年 札幌移住
2011年  (株)アグレックス入社
担当業務
・ECサイトを中心としたWEBシステムの受託開発、運用
役職
・下っ端、雑用係
担当職務
・インフラ構築、管理という名の雑用
・アプリケーション設計、実装、テストという名の雑用
・雑用という名の雑用
・雑用という名の(ry
好きなサービス
・CloudWatch
・Route53
道内第1号
(かもしれない)
第5回優勝
(主に運で)
13年9月10日火曜日
Copyright © 2013 AGREX INC.
3
まず、知っておいてもらいたいこと
13年9月10日火曜日
Copyright © 2013 AGREX INC.
3
まず、知っておいてもらいたいこと
弊社(札幌)には、
インフラエンジニア
はいません。
13年9月10日火曜日
Copyright © 2013 AGREX INC.
3
まず、知っておいてもらいたいこと
弊社(札幌)には、
インフラエンジニア
はいません。
私はただの下っ端で雑用係です。
13年9月10日火曜日
Copyright © 2013 AGREX INC.
3
まず、知っておいてもらいたいこと
弊社(札幌)には、
インフラエンジニア
はいません。
私はただの下っ端で雑用係です。
普通にアプリケーションエンジニアしか居ないんです。
13年9月10日火曜日
Copyright © 2013 AGREX INC.
4
そんな会社に入社して…
13年9月10日火曜日
Copyright © 2013 AGREX INC.
4
そんな会社に入社して…
時期 できごと
2011年4月 入社
2011年8月 札幌事業所配属(当然、雑用係に任命)
2011年9月 雑用係の仕事に「テスト」が増える
2011年10月 雑用係の仕事に「プログラミング」が増える
2011年11月 興味本位でLinuxコマンドを覚え始める
2011年12月 雑用係の仕事に「Apache・PHPの設定」が増える
2012年1月 雑用係の仕事に「アプリケーション設計」が増える
2012年4月 雑用係の後継が入ってこなくてガッカリ
2012年6月 雑用係なりに「MySQLチューニング」の必要性を感じ始める
2012年12月
某顧客がゴールデンタイムに全国ネットで特集番組
「Nginx」「MySQLチューニング」が雑用係の仕事となる
2013年1月 インフラを自社DCメイン→AWSメインにシフト
2013年3月 チューニンガソン優勝のご褒美にJAWS DAYSご招待(社費で)
2013年4月 またも雑用係の後継が入ってこなかったorz
2013年6月 AWS認定ソリューションアーキテクトアソシエイトレベル取得
13年9月10日火曜日
Copyright © 2013 AGREX INC.
5
そして、こんな要望が頻繁に…
開発者
営業
開発リーダー
13年9月10日火曜日
Copyright © 2013 AGREX INC.
5
そして、こんな要望が頻繁に…
A社の検証環境が欲しいです。
開発者
営業
開発リーダー
13年9月10日火曜日
Copyright © 2013 AGREX INC.
5
そして、こんな要望が頻繁に…
A社の検証環境が欲しいです。
B社に見せるデモ環境ください。
開発者
営業
開発リーダー
13年9月10日火曜日
Copyright © 2013 AGREX INC.
5
そして、こんな要望が頻繁に…
A社の検証環境が欲しいです。
B社に見せるデモ環境ください。
C社のカットオーバーが近いので、
本番環境お願いします。
開発者
営業
開発リーダー
13年9月10日火曜日
Copyright © 2013 AGREX INC.
6
そして、こんな答えが頻繁に…
某ユーザ会の某支部長をやっている弊社某マネージャー
13年9月10日火曜日
Copyright © 2013 AGREX INC.
6
そして、こんな答えが頻繁に…
某ユーザ会の某支部長をやっている弊社某マネージャー
IDCに依頼しといたから…
13年9月10日火曜日
Copyright © 2013 AGREX INC.
6
そして、こんな答えが頻繁に…
某ユーザ会の某支部長をやっている弊社某マネージャー
IDCに依頼しといたから…
VPCの設定とかして、
インスタンス立てといたから…
13年9月10日火曜日
Copyright © 2013 AGREX INC.
6
そして、こんな答えが頻繁に…
某ユーザ会の某支部長をやっている弊社某マネージャー
IDCに依頼しといたから…
VPCの設定とかして、
インスタンス立てといたから…
あと照井よろしく
13年9月10日火曜日
Copyright © 2013 AGREX INC.
6
そして、こんな答えが頻繁に…
某ユーザ会の某支部長をやっている弊社某マネージャー
IDCに依頼しといたから…
VPCの設定とかして、
インスタンス立てといたから…
あと照井よろしく
まだアカウントしか作ってないけど…ってこともあったりwww
13年9月10日火曜日
Copyright © 2013 AGREX INC.
7
そして、気がついたら…
13年9月10日火曜日
Copyright © 2013 AGREX INC.
7
そして、気がついたら…
自分が管理してるっぽい
仮想サーバの数が40台
とかになってたwww
13年9月10日火曜日
Copyright © 2013 AGREX INC.
7
そして、気がついたら…
自分が管理してるっぽい
仮想サーバの数が40台
とかになってたwww
今は60くらい
13年9月10日火曜日
Copyright © 2013 AGREX INC.
7
そして、気がついたら…
自分が管理してるっぽい
仮想サーバの数が40台
とかになってたwww
今は60くらい
まあ、本番稼働始まったら、
そうそう触ることも無いんですけどねw
13年9月10日火曜日
Copyright © 2013 AGREX INC.
7
そして、気がついたら…
自分が管理してるっぽい
仮想サーバの数が40台
とかになってたwww
今は60くらい
AWSで冗長構成当たり前になって、
さらに増加率が上昇
まあ、本番稼働始まったら、
そうそう触ることも無いんですけどねw
13年9月10日火曜日
Copyright © 2013 AGREX INC.
8
そして、ある日思った…
13年9月10日火曜日
Copyright © 2013 AGREX INC.
8
そして、ある日思った…
このペースで増え続けたら
やばくね?www
13年9月10日火曜日
Copyright © 2013 AGREX INC.
8
そして、ある日思った…
このペースで増え続けたら
やばくね?www
一応、インフラエンジニアではないですからねw
13年9月10日火曜日
Copyright © 2013 AGREX INC.
8
そして、ある日思った…
このペースで増え続けたら
やばくね?www
一応、インフラエンジニアではないですからねw
色々雑用もありますし…
13年9月10日火曜日
Copyright © 2013 AGREX INC.
9
やっと本題!
13年9月10日火曜日
Copyright © 2013 AGREX INC.
9
やっと本題!
サーバの状態を管理し収束させる
自動プロビジョニングフレームワーク
13年9月10日火曜日
Copyright © 2013 AGREX INC.
10
こっちは使っていません。
13年9月10日火曜日
Copyright © 2013 AGREX INC.
10
こっちは使っていません。
OpsWorks
13年9月10日火曜日
Copyright © 2013 AGREX INC.
10
こっちは使っていません。
OpsWorks
主な理由
13年9月10日火曜日
Copyright © 2013 AGREX INC.
10
こっちは使っていません。
OpsWorks
• Default以外のVPCが使えない(→2013/9/5使えるように!)
主な理由
13年9月10日火曜日
Copyright © 2013 AGREX INC.
10
こっちは使っていません。
OpsWorks
• Default以外のVPCが使えない(→2013/9/5使えるように!)
• RDSが使えない(たぶん近いうちに使えるように?)
主な理由
13年9月10日火曜日
Copyright © 2013 AGREX INC.
10
こっちは使っていません。
OpsWorks
• Default以外のVPCが使えない(→2013/9/5使えるように!)
• RDSが使えない(たぶん近いうちに使えるように?)
• ENIが使えない?(MACアドレスを固定したいことがある)
主な理由
13年9月10日火曜日
Copyright © 2013 AGREX INC.
10
こっちは使っていません。
OpsWorks
• Default以外のVPCが使えない(→2013/9/5使えるように!)
• RDSが使えない(たぶん近いうちに使えるように?)
• ENIが使えない?(MACアドレスを固定したいことがある)
誰か方法知っていたら教えてください…
主な理由
13年9月10日火曜日
Copyright © 2013 AGREX INC.
10
こっちは使っていません。
OpsWorks
• Default以外のVPCが使えない(→2013/9/5使えるように!)
• RDSが使えない(たぶん近いうちに使えるように?)
• ENIが使えない?(MACアドレスを固定したいことがある)
誰か方法知っていたら教えてください…
主な理由
今後に期待!
13年9月10日火曜日
Copyright © 2013 AGREX INC.
11
Chefの紹介が目的ではないので軽く
13年9月10日火曜日
Copyright © 2013 AGREX INC.
11
Chefの紹介が目的ではないので軽く
• Infrastructure as Code(インフラをコードで記述できる)
13年9月10日火曜日
Copyright © 2013 AGREX INC.
11
Chefの紹介が目的ではないので軽く
• Infrastructure as Code(インフラをコードで記述できる)
• Rubyで書ける(けど、Rubyはほとんど入門レベルでOK)
13年9月10日火曜日
Copyright © 2013 AGREX INC.
11
Chefの紹介が目的ではないので軽く
• Infrastructure as Code(インフラをコードで記述できる)
• Rubyで書ける(けど、Rubyはほとんど入門レベルでOK)
• 冪等性(何回実行しても結果は同じ)
13年9月10日火曜日
Copyright © 2013 AGREX INC.
11
Chefの紹介が目的ではないので軽く
• Infrastructure as Code(インフラをコードで記述できる)
• Rubyで書ける(けど、Rubyはほとんど入門レベルでOK)
• 冪等性(何回実行しても結果は同じ)
• (本州の方では)流行っているらしい
13年9月10日火曜日
Copyright © 2013 AGREX INC.
11
Chefの紹介が目的ではないので軽く
• Infrastructure as Code(インフラをコードで記述できる)
• Rubyで書ける(けど、Rubyはほとんど入門レベルでOK)
• 冪等性(何回実行しても結果は同じ)
• (本州の方では)流行っているらしい
詳しく知りたい方は…
スライド「初めてのChefの教室」
Engine Yardさん(AWS等のIaaS + ChefでPaaSを展開)
http://www.engineyard.co.jp/blog/2013/chef-tutorial-updated/
13年9月10日火曜日
Copyright © 2013 AGREX INC.
11
Chefの紹介が目的ではないので軽く
• Infrastructure as Code(インフラをコードで記述できる)
• Rubyで書ける(けど、Rubyはほとんど入門レベルでOK)
• 冪等性(何回実行しても結果は同じ)
• (本州の方では)流行っているらしい
詳しく知りたい方は…
スライド「初めてのChefの教室」
Engine Yardさん(AWS等のIaaS + ChefでPaaSを展開)
http://www.engineyard.co.jp/blog/2013/chef-tutorial-updated/
電子書籍 伊藤直也氏著「入門Chef Solo」
(定番らしい。私もこれで覚えました)
http://www.amazon.co.jp/%E5%85%A5%E9%96%80Chef-
Solo-Infrastructure-Code-ebook/dp/B00BSPH158
実際に使ってみたい方は…
13年9月10日火曜日
Copyright © 2013 AGREX INC.
12
よく語られるChefの用途
13年9月10日火曜日
Copyright © 2013 AGREX INC.
12
よく語られるChefの用途
• 大規模サービスの運用効率化
13年9月10日火曜日
Copyright © 2013 AGREX INC.
12
よく語られるChefの用途
• 大規模サービスの運用効率化
• インフラの継続的インテグレーション
13年9月10日火曜日
Copyright © 2013 AGREX INC.
12
よく語られるChefの用途
• 大規模サービスの運用効率化
• インフラの継続的インテグレーション
• DevOps(開発と運用のコラボレーション)
13年9月10日火曜日
Copyright © 2013 AGREX INC.
12
よく語られるChefの用途
• 大規模サービスの運用効率化
• インフラの継続的インテグレーション
• DevOps(開発と運用のコラボレーション)
…はとりあえず置いておきましょう。
13年9月10日火曜日
Copyright © 2013 AGREX INC.
12
よく語られるChefの用途
• 大規模サービスの運用効率化
• インフラの継続的インテグレーション
• DevOps(開発と運用のコラボレーション)
…はとりあえず置いておきましょう。
そもそも、インフラエンジニア居ないですし…
13年9月10日火曜日
Copyright © 2013 AGREX INC.
12
よく語られるChefの用途
• 大規模サービスの運用効率化
• インフラの継続的インテグレーション
• DevOps(開発と運用のコラボレーション)
…はとりあえず置いておきましょう。
そもそも、インフラエンジニア居ないですし…
小規模SI案件には
ちょっとピントが合わないっていうか…
13年9月10日火曜日
Copyright © 2013 AGREX INC.
13
テストには出ない大事なキーワード
13年9月10日火曜日
Copyright © 2013 AGREX INC.
13
テストには出ない大事なキーワード
コード化と抽象化
13年9月10日火曜日
Copyright © 2013 AGREX INC.
14
コード化のメリット
13年9月10日火曜日
Copyright © 2013 AGREX INC.
14
コード化のメリット
• 異なる案件でサーバが何台あろうとも、
手元のコードでサーバの状態が分かる
13年9月10日火曜日
Copyright © 2013 AGREX INC.
14
コード化のメリット
• 異なる案件でサーバが何台あろうとも、
手元のコードでサーバの状態が分かる
• いつからメンテナンスされてないの?
本当に合ってるの?
っていうかどこにあるの?
という仕様書や手順書に苦労しなくて良い
13年9月10日火曜日
Copyright © 2013 AGREX INC.
14
コード化のメリット
• 異なる案件でサーバが何台あろうとも、
手元のコードでサーバの状態が分かる
• いつからメンテナンスされてないの?
本当に合ってるの?
っていうかどこにあるの?
という仕様書や手順書に苦労しなくて良い
• バージョン管理ができる
13年9月10日火曜日
Copyright © 2013 AGREX INC.
15
抽象化のメリット
13年9月10日火曜日
Copyright © 2013 AGREX INC.
15
抽象化のメリット
変更が必要な部分だけを切り出し、
あとは知らなくてもある程度決まった構成なら
誰でも作れるようにできる
13年9月10日火曜日
Copyright © 2013 AGREX INC.
15
抽象化のメリット
変更が必要な部分だけを切り出し、
あとは知らなくてもある程度決まった構成なら
誰でも作れるようにできる
Chefそのものが
そういう仕組みを
持っている
13年9月10日火曜日
Copyright © 2013 AGREX INC.
15
抽象化のメリット
変更が必要な部分だけを切り出し、
あとは知らなくてもある程度決まった構成なら
誰でも作れるようにできる
Chefそのものが
そういう仕組みを
持っている
13年9月10日火曜日
Copyright © 2013 AGREX INC.
15
抽象化のメリット
変更が必要な部分だけを切り出し、
あとは知らなくてもある程度決まった構成なら
誰でも作れるようにできる
インフラを担当できる人が
アサインできなくてもある程度なんとかできる
Chefそのものが
そういう仕組みを
持っている
13年9月10日火曜日
Copyright © 2013 AGREX INC.
15
抽象化のメリット
変更が必要な部分だけを切り出し、
あとは知らなくてもある程度決まった構成なら
誰でも作れるようにできる
インフラを担当できる人が
アサインできなくてもある程度なんとかできる
Chefそのものが
そういう仕組みを
持っている
これからしていきたい
13年9月10日火曜日
Copyright © 2013 AGREX INC.
16
結局何が言いたかったか
13年9月10日火曜日
Copyright © 2013 AGREX INC.
16
結局何が言いたかったか
雑用係を卒業して、
AWS担当になりた…
じゃなくてw
13年9月10日火曜日
Copyright © 2013 AGREX INC.
17
結局何が言いたかったか
13年9月10日火曜日
Copyright © 2013 AGREX INC.
17
結局何が言いたかったか
自動化による効率化はもちろんのこと、
それ以外にも小規模SI案件でChefを使う
メリットは十分にある
13年9月10日火曜日
Copyright © 2013 AGREX INC.
17
結局何が言いたかったか
自動化による効率化はもちろんのこと、
それ以外にも小規模SI案件でChefを使う
メリットは十分にある
AWSでインフラの調達が容易にできる
13年9月10日火曜日
Copyright © 2013 AGREX INC.
17
結局何が言いたかったか
自動化による効率化はもちろんのこと、
それ以外にも小規模SI案件でChefを使う
メリットは十分にある
AWSでインフラの調達が容易にできる
+
13年9月10日火曜日
Copyright © 2013 AGREX INC.
17
結局何が言いたかったか
自動化による効率化はもちろんのこと、
それ以外にも小規模SI案件でChefを使う
メリットは十分にある
AWSでインフラの調達が容易にできる
+
Chefでミドルウェアの管理も効率化
13年9月10日火曜日
Copyright © 2013 AGREX INC.
17
結局何が言いたかったか
自動化による効率化はもちろんのこと、
それ以外にも小規模SI案件でChefを使う
メリットは十分にある
AWSでインフラの調達が容易にできる
+
Chefでミドルウェアの管理も効率化
=
13年9月10日火曜日
Copyright © 2013 AGREX INC.
17
結局何が言いたかったか
自動化による効率化はもちろんのこと、
それ以外にも小規模SI案件でChefを使う
メリットは十分にある
AWSでインフラの調達が容易にできる
+
Chefでミドルウェアの管理も効率化
=
小規模案件を数こなして日銭を稼ぐ
地方SIerにこそ武器になる!
13年9月10日火曜日
Copyright © 2013 AGREX INC.
17
結局何が言いたかったか
自動化による効率化はもちろんのこと、
それ以外にも小規模SI案件でChefを使う
メリットは十分にある
AWSでインフラの調達が容易にできる
+
Chefでミドルウェアの管理も効率化
=
小規模案件を数こなして日銭を稼ぐ
地方SIerにこそ武器になる!
単価が小さいので、
如何にインフラにお金を
掛けないかが重要!
13年9月10日火曜日
Copyright © 2013 AGREX INC.
17
結局何が言いたかったか
自動化による効率化はもちろんのこと、
それ以外にも小規模SI案件でChefを使う
メリットは十分にある
AWSでインフラの調達が容易にできる
+
Chefでミドルウェアの管理も効率化
=
小規模案件を数こなして日銭を稼ぐ
地方SIerにこそ武器になる!
単価が小さいので、
如何にインフラにお金を
掛けないかが重要!
あと、普通にやるより
楽しいです
13年9月10日火曜日
Copyright © 2013 AGREX INC.
18
AWSの話をほとんどしていないので…
13年9月10日火曜日
Copyright © 2013 AGREX INC.
18
AWSの話をほとんどしていないので…
運用中のインスタンスに適用するの怖くない?
13年9月10日火曜日
Copyright © 2013 AGREX INC.
18
AWSの話をほとんどしていないので…
運用中のインスタンスに適用するの怖くない?
一台ずつELBから外してやれば大丈夫!
Chefを使わなくても、どんなに小さい規模でも、ELB付けて冗長化した方が運用は絶対楽です。
13年9月10日火曜日
Copyright © 2013 AGREX INC.
18
AWSの話をほとんどしていないので…
運用中のインスタンスに適用するの怖くない?
一台ずつELBから外してやれば大丈夫!
今はManagement Consoleからポチポチやりながらだけど、
APIでできるので最初に自動で外して、
最後に自動で再登録するようにしたい
Chefを使わなくても、どんなに小さい規模でも、ELB付けて冗長化した方が運用は絶対楽です。
13年9月10日火曜日
Copyright © 2013 AGREX INC.
19
AWSの話をほとんどしていないので…
RDSのパラメータをChefで管理するTIPS
include_recipe “awscli::default”
directory node[‘awscli::modify_paramater’][‘directory’] do
owner node[‘awscli::modify_paramater’][‘user’]
group node[‘awscli::modify_paramater’][‘group’]
mode 700
action :create
end
execute “modify-db-paramater-group” do
command “sh #{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh”
action :nothing
end
template “modify-db-paramater-group.sh” do
path “#{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh”
source “modify-db-paramater-group.sh.erb”
owner node[‘awscli::modify_paramater’][‘user’]
group node[‘awscli::modify_paramater’][‘group’]
mode 700
notifies :run, resource(:execute => “modify-db-paramater-group”)
end
13年9月10日火曜日
Copyright © 2013 AGREX INC.
19
AWSの話をほとんどしていないので…
RDSのパラメータをChefで管理するTIPS
include_recipe “awscli::default”
directory node[‘awscli::modify_paramater’][‘directory’] do
owner node[‘awscli::modify_paramater’][‘user’]
group node[‘awscli::modify_paramater’][‘group’]
mode 700
action :create
end
execute “modify-db-paramater-group” do
command “sh #{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh”
action :nothing
end
template “modify-db-paramater-group.sh” do
path “#{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh”
source “modify-db-paramater-group.sh.erb”
owner node[‘awscli::modify_paramater’][‘user’]
group node[‘awscli::modify_paramater’][‘group’]
mode 700
notifies :run, resource(:execute => “modify-db-paramater-group”)
end
コマンドラインツールの
セットアップを行うレシピ
(内容略)
13年9月10日火曜日
Copyright © 2013 AGREX INC.
19
AWSの話をほとんどしていないので…
RDSのパラメータをChefで管理するTIPS
include_recipe “awscli::default”
directory node[‘awscli::modify_paramater’][‘directory’] do
owner node[‘awscli::modify_paramater’][‘user’]
group node[‘awscli::modify_paramater’][‘group’]
mode 700
action :create
end
execute “modify-db-paramater-group” do
command “sh #{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh”
action :nothing
end
template “modify-db-paramater-group.sh” do
path “#{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh”
source “modify-db-paramater-group.sh.erb”
owner node[‘awscli::modify_paramater’][‘user’]
group node[‘awscli::modify_paramater’][‘group’]
mode 700
notifies :run, resource(:execute => “modify-db-paramater-group”)
end
コマンドラインツールの
セットアップを行うレシピ
(内容略)
配置場所を作成
13年9月10日火曜日
Copyright © 2013 AGREX INC.
19
AWSの話をほとんどしていないので…
RDSのパラメータをChefで管理するTIPS
include_recipe “awscli::default”
directory node[‘awscli::modify_paramater’][‘directory’] do
owner node[‘awscli::modify_paramater’][‘user’]
group node[‘awscli::modify_paramater’][‘group’]
mode 700
action :create
end
execute “modify-db-paramater-group” do
command “sh #{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh”
action :nothing
end
template “modify-db-paramater-group.sh” do
path “#{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh”
source “modify-db-paramater-group.sh.erb”
owner node[‘awscli::modify_paramater’][‘user’]
group node[‘awscli::modify_paramater’][‘group’]
mode 700
notifies :run, resource(:execute => “modify-db-paramater-group”)
end
コマンドラインツールの
セットアップを行うレシピ
(内容略)
配置場所を作成
下で生成される
シェルスクリプトを実行するコマンド
「action :nothing」とすることで
読み込むだけでは実行されない
13年9月10日火曜日
Copyright © 2013 AGREX INC.
19
AWSの話をほとんどしていないので…
RDSのパラメータをChefで管理するTIPS
include_recipe “awscli::default”
directory node[‘awscli::modify_paramater’][‘directory’] do
owner node[‘awscli::modify_paramater’][‘user’]
group node[‘awscli::modify_paramater’][‘group’]
mode 700
action :create
end
execute “modify-db-paramater-group” do
command “sh #{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh”
action :nothing
end
template “modify-db-paramater-group.sh” do
path “#{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh”
source “modify-db-paramater-group.sh.erb”
owner node[‘awscli::modify_paramater’][‘user’]
group node[‘awscli::modify_paramater’][‘group’]
mode 700
notifies :run, resource(:execute => “modify-db-paramater-group”)
end
コマンドラインツールの
セットアップを行うレシピ
(内容略)
配置場所を作成
下で生成される
シェルスクリプトを実行するコマンド
「action :nothing」とすることで
読み込むだけでは実行されない
コマンドラインでAPIを呼び出すだけの
シェルスクリプトをテンプレートから生成
「notifies :run∼」で変更があった場合にイベント通知され、
上で定義したコマンドが実行される
13年9月10日火曜日
Copyright © 2013 AGREX INC.
19
AWSの話をほとんどしていないので…
RDSのパラメータをChefで管理するTIPS
include_recipe “awscli::default”
directory node[‘awscli::modify_paramater’][‘directory’] do
owner node[‘awscli::modify_paramater’][‘user’]
group node[‘awscli::modify_paramater’][‘group’]
mode 700
action :create
end
execute “modify-db-paramater-group” do
command “sh #{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh”
action :nothing
end
template “modify-db-paramater-group.sh” do
path “#{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh”
source “modify-db-paramater-group.sh.erb”
owner node[‘awscli::modify_paramater’][‘user’]
group node[‘awscli::modify_paramater’][‘group’]
mode 700
notifies :run, resource(:execute => “modify-db-paramater-group”)
end
コマンドラインツールの
セットアップを行うレシピ
(内容略)
配置場所を作成
下で生成される
シェルスクリプトを実行するコマンド
「action :nothing」とすることで
読み込むだけでは実行されない
コマンドラインでAPIを呼び出すだけの
シェルスクリプトをテンプレートから生成
「notifies :run∼」で変更があった場合にイベント通知され、
上で定義したコマンドが実行される
※RDS上では実行できないので、
どこで管理するかだけ決める必要があります。
13年9月10日火曜日
Copyright © 2013 AGREX INC.
20
最後に独り言
13年9月10日火曜日
Copyright © 2013 AGREX INC.
20
最後に独り言
上司が東京へ拉致され…
AWSができる人が社内で1人になって…
全部1人でやるのはちょっと大変です…
インスタンス立てた後はChefで…
そこまで誰か代わりに…
13年9月10日火曜日
Copyright © 2013 AGREX INC.
20
最後に独り言
上司が東京へ拉致され…
AWSができる人が社内で1人になって…
全部1人でやるのはちょっと大変です…
インスタンス立てた後はChefで…
そこまで誰か代わりに…
あ!居た!
13年9月10日火曜日
Copyright © 2013 AGREX INC.
20
最後に独り言
上司が東京へ拉致され…
AWSができる人が社内で1人になって…
全部1人でやるのはちょっと大変です…
インスタンス立てた後はChefで…
そこまで誰か代わりに…
あ!居た! AWS
CloudFormation
13年9月10日火曜日
Copyright © 2013 AGREX INC.
21
ありがとうございました!
13年9月10日火曜日

More Related Content

小規模SI案件で、 AWS + Chefを使ってみて

  • 1. Copyright © 2013 AGREX INC. 小規模SI案件で、 AWS + Chefを使ってみて 13年9月10日火曜日
  • 2. Copyright © 2013 AGREX INC. 2 プロフィール てるい まさし 照井 将士 http://www.facebook.com/marcy.terui (株)アグレックス 札幌事業所 システム部 1987年 東京都大田区生まれ 1992年 札幌移住 2011年  (株)アグレックス入社 担当業務 ・ECサイトを中心としたWEBシステムの受託開発、運用 役職 ・下っ端、雑用係 担当職務 ・インフラ構築、管理という名の雑用 ・アプリケーション設計、実装、テストという名の雑用 ・雑用という名の雑用 ・雑用という名の(ry 好きなサービス ・CloudWatch ・Route53 13年9月10日火曜日
  • 3. Copyright © 2013 AGREX INC. 2 プロフィール てるい まさし 照井 将士 http://www.facebook.com/marcy.terui (株)アグレックス 札幌事業所 システム部 1987年 東京都大田区生まれ 1992年 札幌移住 2011年  (株)アグレックス入社 担当業務 ・ECサイトを中心としたWEBシステムの受託開発、運用 役職 ・下っ端、雑用係 担当職務 ・インフラ構築、管理という名の雑用 ・アプリケーション設計、実装、テストという名の雑用 ・雑用という名の雑用 ・雑用という名の(ry 好きなサービス ・CloudWatch ・Route53 道内第1号 (かもしれない) 13年9月10日火曜日
  • 4. Copyright © 2013 AGREX INC. 2 プロフィール てるい まさし 照井 将士 http://www.facebook.com/marcy.terui (株)アグレックス 札幌事業所 システム部 1987年 東京都大田区生まれ 1992年 札幌移住 2011年  (株)アグレックス入社 担当業務 ・ECサイトを中心としたWEBシステムの受託開発、運用 役職 ・下っ端、雑用係 担当職務 ・インフラ構築、管理という名の雑用 ・アプリケーション設計、実装、テストという名の雑用 ・雑用という名の雑用 ・雑用という名の(ry 好きなサービス ・CloudWatch ・Route53 道内第1号 (かもしれない) 第5回優勝 (主に運で) 13年9月10日火曜日
  • 5. Copyright © 2013 AGREX INC. 3 まず、知っておいてもらいたいこと 13年9月10日火曜日
  • 6. Copyright © 2013 AGREX INC. 3 まず、知っておいてもらいたいこと 弊社(札幌)には、 インフラエンジニア はいません。 13年9月10日火曜日
  • 7. Copyright © 2013 AGREX INC. 3 まず、知っておいてもらいたいこと 弊社(札幌)には、 インフラエンジニア はいません。 私はただの下っ端で雑用係です。 13年9月10日火曜日
  • 8. Copyright © 2013 AGREX INC. 3 まず、知っておいてもらいたいこと 弊社(札幌)には、 インフラエンジニア はいません。 私はただの下っ端で雑用係です。 普通にアプリケーションエンジニアしか居ないんです。 13年9月10日火曜日
  • 9. Copyright © 2013 AGREX INC. 4 そんな会社に入社して… 13年9月10日火曜日
  • 10. Copyright © 2013 AGREX INC. 4 そんな会社に入社して… 時期 できごと 2011年4月 入社 2011年8月 札幌事業所配属(当然、雑用係に任命) 2011年9月 雑用係の仕事に「テスト」が増える 2011年10月 雑用係の仕事に「プログラミング」が増える 2011年11月 興味本位でLinuxコマンドを覚え始める 2011年12月 雑用係の仕事に「Apache・PHPの設定」が増える 2012年1月 雑用係の仕事に「アプリケーション設計」が増える 2012年4月 雑用係の後継が入ってこなくてガッカリ 2012年6月 雑用係なりに「MySQLチューニング」の必要性を感じ始める 2012年12月 某顧客がゴールデンタイムに全国ネットで特集番組 「Nginx」「MySQLチューニング」が雑用係の仕事となる 2013年1月 インフラを自社DCメイン→AWSメインにシフト 2013年3月 チューニンガソン優勝のご褒美にJAWS DAYSご招待(社費で) 2013年4月 またも雑用係の後継が入ってこなかったorz 2013年6月 AWS認定ソリューションアーキテクトアソシエイトレベル取得 13年9月10日火曜日
  • 11. Copyright © 2013 AGREX INC. 5 そして、こんな要望が頻繁に… 開発者 営業 開発リーダー 13年9月10日火曜日
  • 12. Copyright © 2013 AGREX INC. 5 そして、こんな要望が頻繁に… A社の検証環境が欲しいです。 開発者 営業 開発リーダー 13年9月10日火曜日
  • 13. Copyright © 2013 AGREX INC. 5 そして、こんな要望が頻繁に… A社の検証環境が欲しいです。 B社に見せるデモ環境ください。 開発者 営業 開発リーダー 13年9月10日火曜日
  • 14. Copyright © 2013 AGREX INC. 5 そして、こんな要望が頻繁に… A社の検証環境が欲しいです。 B社に見せるデモ環境ください。 C社のカットオーバーが近いので、 本番環境お願いします。 開発者 営業 開発リーダー 13年9月10日火曜日
  • 15. Copyright © 2013 AGREX INC. 6 そして、こんな答えが頻繁に… 某ユーザ会の某支部長をやっている弊社某マネージャー 13年9月10日火曜日
  • 16. Copyright © 2013 AGREX INC. 6 そして、こんな答えが頻繁に… 某ユーザ会の某支部長をやっている弊社某マネージャー IDCに依頼しといたから… 13年9月10日火曜日
  • 17. Copyright © 2013 AGREX INC. 6 そして、こんな答えが頻繁に… 某ユーザ会の某支部長をやっている弊社某マネージャー IDCに依頼しといたから… VPCの設定とかして、 インスタンス立てといたから… 13年9月10日火曜日
  • 18. Copyright © 2013 AGREX INC. 6 そして、こんな答えが頻繁に… 某ユーザ会の某支部長をやっている弊社某マネージャー IDCに依頼しといたから… VPCの設定とかして、 インスタンス立てといたから… あと照井よろしく 13年9月10日火曜日
  • 19. Copyright © 2013 AGREX INC. 6 そして、こんな答えが頻繁に… 某ユーザ会の某支部長をやっている弊社某マネージャー IDCに依頼しといたから… VPCの設定とかして、 インスタンス立てといたから… あと照井よろしく まだアカウントしか作ってないけど…ってこともあったりwww 13年9月10日火曜日
  • 20. Copyright © 2013 AGREX INC. 7 そして、気がついたら… 13年9月10日火曜日
  • 21. Copyright © 2013 AGREX INC. 7 そして、気がついたら… 自分が管理してるっぽい 仮想サーバの数が40台 とかになってたwww 13年9月10日火曜日
  • 22. Copyright © 2013 AGREX INC. 7 そして、気がついたら… 自分が管理してるっぽい 仮想サーバの数が40台 とかになってたwww 今は60くらい 13年9月10日火曜日
  • 23. Copyright © 2013 AGREX INC. 7 そして、気がついたら… 自分が管理してるっぽい 仮想サーバの数が40台 とかになってたwww 今は60くらい まあ、本番稼働始まったら、 そうそう触ることも無いんですけどねw 13年9月10日火曜日
  • 24. Copyright © 2013 AGREX INC. 7 そして、気がついたら… 自分が管理してるっぽい 仮想サーバの数が40台 とかになってたwww 今は60くらい AWSで冗長構成当たり前になって、 さらに増加率が上昇 まあ、本番稼働始まったら、 そうそう触ることも無いんですけどねw 13年9月10日火曜日
  • 25. Copyright © 2013 AGREX INC. 8 そして、ある日思った… 13年9月10日火曜日
  • 26. Copyright © 2013 AGREX INC. 8 そして、ある日思った… このペースで増え続けたら やばくね?www 13年9月10日火曜日
  • 27. Copyright © 2013 AGREX INC. 8 そして、ある日思った… このペースで増え続けたら やばくね?www 一応、インフラエンジニアではないですからねw 13年9月10日火曜日
  • 28. Copyright © 2013 AGREX INC. 8 そして、ある日思った… このペースで増え続けたら やばくね?www 一応、インフラエンジニアではないですからねw 色々雑用もありますし… 13年9月10日火曜日
  • 29. Copyright © 2013 AGREX INC. 9 やっと本題! 13年9月10日火曜日
  • 30. Copyright © 2013 AGREX INC. 9 やっと本題! サーバの状態を管理し収束させる 自動プロビジョニングフレームワーク 13年9月10日火曜日
  • 31. Copyright © 2013 AGREX INC. 10 こっちは使っていません。 13年9月10日火曜日
  • 32. Copyright © 2013 AGREX INC. 10 こっちは使っていません。 OpsWorks 13年9月10日火曜日
  • 33. Copyright © 2013 AGREX INC. 10 こっちは使っていません。 OpsWorks 主な理由 13年9月10日火曜日
  • 34. Copyright © 2013 AGREX INC. 10 こっちは使っていません。 OpsWorks • Default以外のVPCが使えない(→2013/9/5使えるように!) 主な理由 13年9月10日火曜日
  • 35. Copyright © 2013 AGREX INC. 10 こっちは使っていません。 OpsWorks • Default以外のVPCが使えない(→2013/9/5使えるように!) • RDSが使えない(たぶん近いうちに使えるように?) 主な理由 13年9月10日火曜日
  • 36. Copyright © 2013 AGREX INC. 10 こっちは使っていません。 OpsWorks • Default以外のVPCが使えない(→2013/9/5使えるように!) • RDSが使えない(たぶん近いうちに使えるように?) • ENIが使えない?(MACアドレスを固定したいことがある) 主な理由 13年9月10日火曜日
  • 37. Copyright © 2013 AGREX INC. 10 こっちは使っていません。 OpsWorks • Default以外のVPCが使えない(→2013/9/5使えるように!) • RDSが使えない(たぶん近いうちに使えるように?) • ENIが使えない?(MACアドレスを固定したいことがある) 誰か方法知っていたら教えてください… 主な理由 13年9月10日火曜日
  • 38. Copyright © 2013 AGREX INC. 10 こっちは使っていません。 OpsWorks • Default以外のVPCが使えない(→2013/9/5使えるように!) • RDSが使えない(たぶん近いうちに使えるように?) • ENIが使えない?(MACアドレスを固定したいことがある) 誰か方法知っていたら教えてください… 主な理由 今後に期待! 13年9月10日火曜日
  • 39. Copyright © 2013 AGREX INC. 11 Chefの紹介が目的ではないので軽く 13年9月10日火曜日
  • 40. Copyright © 2013 AGREX INC. 11 Chefの紹介が目的ではないので軽く • Infrastructure as Code(インフラをコードで記述できる) 13年9月10日火曜日
  • 41. Copyright © 2013 AGREX INC. 11 Chefの紹介が目的ではないので軽く • Infrastructure as Code(インフラをコードで記述できる) • Rubyで書ける(けど、Rubyはほとんど入門レベルでOK) 13年9月10日火曜日
  • 42. Copyright © 2013 AGREX INC. 11 Chefの紹介が目的ではないので軽く • Infrastructure as Code(インフラをコードで記述できる) • Rubyで書ける(けど、Rubyはほとんど入門レベルでOK) • 冪等性(何回実行しても結果は同じ) 13年9月10日火曜日
  • 43. Copyright © 2013 AGREX INC. 11 Chefの紹介が目的ではないので軽く • Infrastructure as Code(インフラをコードで記述できる) • Rubyで書ける(けど、Rubyはほとんど入門レベルでOK) • 冪等性(何回実行しても結果は同じ) • (本州の方では)流行っているらしい 13年9月10日火曜日
  • 44. Copyright © 2013 AGREX INC. 11 Chefの紹介が目的ではないので軽く • Infrastructure as Code(インフラをコードで記述できる) • Rubyで書ける(けど、Rubyはほとんど入門レベルでOK) • 冪等性(何回実行しても結果は同じ) • (本州の方では)流行っているらしい 詳しく知りたい方は… スライド「初めてのChefの教室」 Engine Yardさん(AWS等のIaaS + ChefでPaaSを展開) http://www.engineyard.co.jp/blog/2013/chef-tutorial-updated/ 13年9月10日火曜日
  • 45. Copyright © 2013 AGREX INC. 11 Chefの紹介が目的ではないので軽く • Infrastructure as Code(インフラをコードで記述できる) • Rubyで書ける(けど、Rubyはほとんど入門レベルでOK) • 冪等性(何回実行しても結果は同じ) • (本州の方では)流行っているらしい 詳しく知りたい方は… スライド「初めてのChefの教室」 Engine Yardさん(AWS等のIaaS + ChefでPaaSを展開) http://www.engineyard.co.jp/blog/2013/chef-tutorial-updated/ 電子書籍 伊藤直也氏著「入門Chef Solo」 (定番らしい。私もこれで覚えました) http://www.amazon.co.jp/%E5%85%A5%E9%96%80Chef- Solo-Infrastructure-Code-ebook/dp/B00BSPH158 実際に使ってみたい方は… 13年9月10日火曜日
  • 46. Copyright © 2013 AGREX INC. 12 よく語られるChefの用途 13年9月10日火曜日
  • 47. Copyright © 2013 AGREX INC. 12 よく語られるChefの用途 • 大規模サービスの運用効率化 13年9月10日火曜日
  • 48. Copyright © 2013 AGREX INC. 12 よく語られるChefの用途 • 大規模サービスの運用効率化 • インフラの継続的インテグレーション 13年9月10日火曜日
  • 49. Copyright © 2013 AGREX INC. 12 よく語られるChefの用途 • 大規模サービスの運用効率化 • インフラの継続的インテグレーション • DevOps(開発と運用のコラボレーション) 13年9月10日火曜日
  • 50. Copyright © 2013 AGREX INC. 12 よく語られるChefの用途 • 大規模サービスの運用効率化 • インフラの継続的インテグレーション • DevOps(開発と運用のコラボレーション) …はとりあえず置いておきましょう。 13年9月10日火曜日
  • 51. Copyright © 2013 AGREX INC. 12 よく語られるChefの用途 • 大規模サービスの運用効率化 • インフラの継続的インテグレーション • DevOps(開発と運用のコラボレーション) …はとりあえず置いておきましょう。 そもそも、インフラエンジニア居ないですし… 13年9月10日火曜日
  • 52. Copyright © 2013 AGREX INC. 12 よく語られるChefの用途 • 大規模サービスの運用効率化 • インフラの継続的インテグレーション • DevOps(開発と運用のコラボレーション) …はとりあえず置いておきましょう。 そもそも、インフラエンジニア居ないですし… 小規模SI案件には ちょっとピントが合わないっていうか… 13年9月10日火曜日
  • 53. Copyright © 2013 AGREX INC. 13 テストには出ない大事なキーワード 13年9月10日火曜日
  • 54. Copyright © 2013 AGREX INC. 13 テストには出ない大事なキーワード コード化と抽象化 13年9月10日火曜日
  • 55. Copyright © 2013 AGREX INC. 14 コード化のメリット 13年9月10日火曜日
  • 56. Copyright © 2013 AGREX INC. 14 コード化のメリット • 異なる案件でサーバが何台あろうとも、 手元のコードでサーバの状態が分かる 13年9月10日火曜日
  • 57. Copyright © 2013 AGREX INC. 14 コード化のメリット • 異なる案件でサーバが何台あろうとも、 手元のコードでサーバの状態が分かる • いつからメンテナンスされてないの? 本当に合ってるの? っていうかどこにあるの? という仕様書や手順書に苦労しなくて良い 13年9月10日火曜日
  • 58. Copyright © 2013 AGREX INC. 14 コード化のメリット • 異なる案件でサーバが何台あろうとも、 手元のコードでサーバの状態が分かる • いつからメンテナンスされてないの? 本当に合ってるの? っていうかどこにあるの? という仕様書や手順書に苦労しなくて良い • バージョン管理ができる 13年9月10日火曜日
  • 59. Copyright © 2013 AGREX INC. 15 抽象化のメリット 13年9月10日火曜日
  • 60. Copyright © 2013 AGREX INC. 15 抽象化のメリット 変更が必要な部分だけを切り出し、 あとは知らなくてもある程度決まった構成なら 誰でも作れるようにできる 13年9月10日火曜日
  • 61. Copyright © 2013 AGREX INC. 15 抽象化のメリット 変更が必要な部分だけを切り出し、 あとは知らなくてもある程度決まった構成なら 誰でも作れるようにできる Chefそのものが そういう仕組みを 持っている 13年9月10日火曜日
  • 62. Copyright © 2013 AGREX INC. 15 抽象化のメリット 変更が必要な部分だけを切り出し、 あとは知らなくてもある程度決まった構成なら 誰でも作れるようにできる Chefそのものが そういう仕組みを 持っている 13年9月10日火曜日
  • 63. Copyright © 2013 AGREX INC. 15 抽象化のメリット 変更が必要な部分だけを切り出し、 あとは知らなくてもある程度決まった構成なら 誰でも作れるようにできる インフラを担当できる人が アサインできなくてもある程度なんとかできる Chefそのものが そういう仕組みを 持っている 13年9月10日火曜日
  • 64. Copyright © 2013 AGREX INC. 15 抽象化のメリット 変更が必要な部分だけを切り出し、 あとは知らなくてもある程度決まった構成なら 誰でも作れるようにできる インフラを担当できる人が アサインできなくてもある程度なんとかできる Chefそのものが そういう仕組みを 持っている これからしていきたい 13年9月10日火曜日
  • 65. Copyright © 2013 AGREX INC. 16 結局何が言いたかったか 13年9月10日火曜日
  • 66. Copyright © 2013 AGREX INC. 16 結局何が言いたかったか 雑用係を卒業して、 AWS担当になりた… じゃなくてw 13年9月10日火曜日
  • 67. Copyright © 2013 AGREX INC. 17 結局何が言いたかったか 13年9月10日火曜日
  • 68. Copyright © 2013 AGREX INC. 17 結局何が言いたかったか 自動化による効率化はもちろんのこと、 それ以外にも小規模SI案件でChefを使う メリットは十分にある 13年9月10日火曜日
  • 69. Copyright © 2013 AGREX INC. 17 結局何が言いたかったか 自動化による効率化はもちろんのこと、 それ以外にも小規模SI案件でChefを使う メリットは十分にある AWSでインフラの調達が容易にできる 13年9月10日火曜日
  • 70. Copyright © 2013 AGREX INC. 17 結局何が言いたかったか 自動化による効率化はもちろんのこと、 それ以外にも小規模SI案件でChefを使う メリットは十分にある AWSでインフラの調達が容易にできる + 13年9月10日火曜日
  • 71. Copyright © 2013 AGREX INC. 17 結局何が言いたかったか 自動化による効率化はもちろんのこと、 それ以外にも小規模SI案件でChefを使う メリットは十分にある AWSでインフラの調達が容易にできる + Chefでミドルウェアの管理も効率化 13年9月10日火曜日
  • 72. Copyright © 2013 AGREX INC. 17 結局何が言いたかったか 自動化による効率化はもちろんのこと、 それ以外にも小規模SI案件でChefを使う メリットは十分にある AWSでインフラの調達が容易にできる + Chefでミドルウェアの管理も効率化 = 13年9月10日火曜日
  • 73. Copyright © 2013 AGREX INC. 17 結局何が言いたかったか 自動化による効率化はもちろんのこと、 それ以外にも小規模SI案件でChefを使う メリットは十分にある AWSでインフラの調達が容易にできる + Chefでミドルウェアの管理も効率化 = 小規模案件を数こなして日銭を稼ぐ 地方SIerにこそ武器になる! 13年9月10日火曜日
  • 74. Copyright © 2013 AGREX INC. 17 結局何が言いたかったか 自動化による効率化はもちろんのこと、 それ以外にも小規模SI案件でChefを使う メリットは十分にある AWSでインフラの調達が容易にできる + Chefでミドルウェアの管理も効率化 = 小規模案件を数こなして日銭を稼ぐ 地方SIerにこそ武器になる! 単価が小さいので、 如何にインフラにお金を 掛けないかが重要! 13年9月10日火曜日
  • 75. Copyright © 2013 AGREX INC. 17 結局何が言いたかったか 自動化による効率化はもちろんのこと、 それ以外にも小規模SI案件でChefを使う メリットは十分にある AWSでインフラの調達が容易にできる + Chefでミドルウェアの管理も効率化 = 小規模案件を数こなして日銭を稼ぐ 地方SIerにこそ武器になる! 単価が小さいので、 如何にインフラにお金を 掛けないかが重要! あと、普通にやるより 楽しいです 13年9月10日火曜日
  • 76. Copyright © 2013 AGREX INC. 18 AWSの話をほとんどしていないので… 13年9月10日火曜日
  • 77. Copyright © 2013 AGREX INC. 18 AWSの話をほとんどしていないので… 運用中のインスタンスに適用するの怖くない? 13年9月10日火曜日
  • 78. Copyright © 2013 AGREX INC. 18 AWSの話をほとんどしていないので… 運用中のインスタンスに適用するの怖くない? 一台ずつELBから外してやれば大丈夫! Chefを使わなくても、どんなに小さい規模でも、ELB付けて冗長化した方が運用は絶対楽です。 13年9月10日火曜日
  • 79. Copyright © 2013 AGREX INC. 18 AWSの話をほとんどしていないので… 運用中のインスタンスに適用するの怖くない? 一台ずつELBから外してやれば大丈夫! 今はManagement Consoleからポチポチやりながらだけど、 APIでできるので最初に自動で外して、 最後に自動で再登録するようにしたい Chefを使わなくても、どんなに小さい規模でも、ELB付けて冗長化した方が運用は絶対楽です。 13年9月10日火曜日
  • 80. Copyright © 2013 AGREX INC. 19 AWSの話をほとんどしていないので… RDSのパラメータをChefで管理するTIPS include_recipe “awscli::default” directory node[‘awscli::modify_paramater’][‘directory’] do owner node[‘awscli::modify_paramater’][‘user’] group node[‘awscli::modify_paramater’][‘group’] mode 700 action :create end execute “modify-db-paramater-group” do command “sh #{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh” action :nothing end template “modify-db-paramater-group.sh” do path “#{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh” source “modify-db-paramater-group.sh.erb” owner node[‘awscli::modify_paramater’][‘user’] group node[‘awscli::modify_paramater’][‘group’] mode 700 notifies :run, resource(:execute => “modify-db-paramater-group”) end 13年9月10日火曜日
  • 81. Copyright © 2013 AGREX INC. 19 AWSの話をほとんどしていないので… RDSのパラメータをChefで管理するTIPS include_recipe “awscli::default” directory node[‘awscli::modify_paramater’][‘directory’] do owner node[‘awscli::modify_paramater’][‘user’] group node[‘awscli::modify_paramater’][‘group’] mode 700 action :create end execute “modify-db-paramater-group” do command “sh #{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh” action :nothing end template “modify-db-paramater-group.sh” do path “#{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh” source “modify-db-paramater-group.sh.erb” owner node[‘awscli::modify_paramater’][‘user’] group node[‘awscli::modify_paramater’][‘group’] mode 700 notifies :run, resource(:execute => “modify-db-paramater-group”) end コマンドラインツールの セットアップを行うレシピ (内容略) 13年9月10日火曜日
  • 82. Copyright © 2013 AGREX INC. 19 AWSの話をほとんどしていないので… RDSのパラメータをChefで管理するTIPS include_recipe “awscli::default” directory node[‘awscli::modify_paramater’][‘directory’] do owner node[‘awscli::modify_paramater’][‘user’] group node[‘awscli::modify_paramater’][‘group’] mode 700 action :create end execute “modify-db-paramater-group” do command “sh #{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh” action :nothing end template “modify-db-paramater-group.sh” do path “#{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh” source “modify-db-paramater-group.sh.erb” owner node[‘awscli::modify_paramater’][‘user’] group node[‘awscli::modify_paramater’][‘group’] mode 700 notifies :run, resource(:execute => “modify-db-paramater-group”) end コマンドラインツールの セットアップを行うレシピ (内容略) 配置場所を作成 13年9月10日火曜日
  • 83. Copyright © 2013 AGREX INC. 19 AWSの話をほとんどしていないので… RDSのパラメータをChefで管理するTIPS include_recipe “awscli::default” directory node[‘awscli::modify_paramater’][‘directory’] do owner node[‘awscli::modify_paramater’][‘user’] group node[‘awscli::modify_paramater’][‘group’] mode 700 action :create end execute “modify-db-paramater-group” do command “sh #{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh” action :nothing end template “modify-db-paramater-group.sh” do path “#{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh” source “modify-db-paramater-group.sh.erb” owner node[‘awscli::modify_paramater’][‘user’] group node[‘awscli::modify_paramater’][‘group’] mode 700 notifies :run, resource(:execute => “modify-db-paramater-group”) end コマンドラインツールの セットアップを行うレシピ (内容略) 配置場所を作成 下で生成される シェルスクリプトを実行するコマンド 「action :nothing」とすることで 読み込むだけでは実行されない 13年9月10日火曜日
  • 84. Copyright © 2013 AGREX INC. 19 AWSの話をほとんどしていないので… RDSのパラメータをChefで管理するTIPS include_recipe “awscli::default” directory node[‘awscli::modify_paramater’][‘directory’] do owner node[‘awscli::modify_paramater’][‘user’] group node[‘awscli::modify_paramater’][‘group’] mode 700 action :create end execute “modify-db-paramater-group” do command “sh #{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh” action :nothing end template “modify-db-paramater-group.sh” do path “#{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh” source “modify-db-paramater-group.sh.erb” owner node[‘awscli::modify_paramater’][‘user’] group node[‘awscli::modify_paramater’][‘group’] mode 700 notifies :run, resource(:execute => “modify-db-paramater-group”) end コマンドラインツールの セットアップを行うレシピ (内容略) 配置場所を作成 下で生成される シェルスクリプトを実行するコマンド 「action :nothing」とすることで 読み込むだけでは実行されない コマンドラインでAPIを呼び出すだけの シェルスクリプトをテンプレートから生成 「notifies :run∼」で変更があった場合にイベント通知され、 上で定義したコマンドが実行される 13年9月10日火曜日
  • 85. Copyright © 2013 AGREX INC. 19 AWSの話をほとんどしていないので… RDSのパラメータをChefで管理するTIPS include_recipe “awscli::default” directory node[‘awscli::modify_paramater’][‘directory’] do owner node[‘awscli::modify_paramater’][‘user’] group node[‘awscli::modify_paramater’][‘group’] mode 700 action :create end execute “modify-db-paramater-group” do command “sh #{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh” action :nothing end template “modify-db-paramater-group.sh” do path “#{node[‘awscli::modify_paramater’][‘directory’]}/modify-db-paramater-group.sh” source “modify-db-paramater-group.sh.erb” owner node[‘awscli::modify_paramater’][‘user’] group node[‘awscli::modify_paramater’][‘group’] mode 700 notifies :run, resource(:execute => “modify-db-paramater-group”) end コマンドラインツールの セットアップを行うレシピ (内容略) 配置場所を作成 下で生成される シェルスクリプトを実行するコマンド 「action :nothing」とすることで 読み込むだけでは実行されない コマンドラインでAPIを呼び出すだけの シェルスクリプトをテンプレートから生成 「notifies :run∼」で変更があった場合にイベント通知され、 上で定義したコマンドが実行される ※RDS上では実行できないので、 どこで管理するかだけ決める必要があります。 13年9月10日火曜日
  • 86. Copyright © 2013 AGREX INC. 20 最後に独り言 13年9月10日火曜日
  • 87. Copyright © 2013 AGREX INC. 20 最後に独り言 上司が東京へ拉致され… AWSができる人が社内で1人になって… 全部1人でやるのはちょっと大変です… インスタンス立てた後はChefで… そこまで誰か代わりに… 13年9月10日火曜日
  • 88. Copyright © 2013 AGREX INC. 20 最後に独り言 上司が東京へ拉致され… AWSができる人が社内で1人になって… 全部1人でやるのはちょっと大変です… インスタンス立てた後はChefで… そこまで誰か代わりに… あ!居た! 13年9月10日火曜日
  • 89. Copyright © 2013 AGREX INC. 20 最後に独り言 上司が東京へ拉致され… AWSができる人が社内で1人になって… 全部1人でやるのはちょっと大変です… インスタンス立てた後はChefで… そこまで誰か代わりに… あ!居た! AWS CloudFormation 13年9月10日火曜日
  • 90. Copyright © 2013 AGREX INC. 21 ありがとうございました! 13年9月10日火曜日