1年間で使った 
構成管理ツール振り返ってみる 
Ⓒ Classmethod, Inc. 
1 
DevIO MTUP11-014 
望月政夫, クラスメソッド 
2014年12月16日
お前誰よ 
• 望月 政夫 
• Twitter: @Canelmo 
• AWSコンサルティング部 
下っ端担当 
Ⓒ Classmethod, Inc. 
2
クラスメソッドに入社してから 
使ってきた構築ツールを振り返ります 
3
入社 
2013/10 ~ 
4
構築はCloudFormation使ってね 
構成管理ツールはChefで 
5 
アッハイ 
※言ってません
CloudFormation 
• 環境構成自動化ツール 
• AWSのリソースをJSONで記述 
• 再構築、環境再現が容易 
Ⓒ Classmethod, Inc. 
6
cfn-init 
• EC2インスタンスのブートストラップアクション 
• パッケージインストールやスクリプト実行を定義 
• インフラ構築とOS設定が一つのJSONで完結する 
• うはwww最高www 
Ⓒ Classmethod, Inc. 
7
実際に構築・運用してみて 
• cfn-initのデバッグが非常にしづらい… 
• 失敗したら即terminate -> ログ見れない! 
• RDSと一緒に起動すると消すのにも時間がかかる 
• 起動の度に課金が走る 
      ____ 
  /      \ 
/  _ノ  ヽ、_ \ 
/  o゚⌒   ⌒゚o  \   今日も1000行のJSONをデバッグする作業が始まるお… 
|     (__人__)  | 
\     ` ⌒́    / 
Ⓒ Classmethod, Inc. 
8
Chef 
• 言わずと知れた構成管理ツール 
• chef-soloをメインで利用 
• Ruby DSL + LWRPで柔軟な記述が可能 
• vagrant + Serverspecでテストも可能 
Ⓒ Classmethod, Inc. 
9
Chefの辛み 
• 習得コストが高め 
• 最終的にどういう設定になるのかが一目で判断しづ 
らい 
• お客様個別の環境でCookbookに差異が起きる 
• 結局個々のCookbookのメンテナンスコストがか 
なり高くなる 
• 使い方がキッチリハマればChefは本当に素晴らし 
いツールだと思います 
Ⓒ Classmethod, Inc. 
10
2014/09 
Ansibleと出会う 
11
Ansible 
• SSHでログインしてコマンド実行 
• Dynamic Inventory 
• YAMLで記述する 
• 多重SSHツールとしても使える 
• http://dev.classmethod.jp/cloud/aws/ruby-ec2-create-ssh-config/ 
Ⓒ Classmethod, Inc. 
12
Ansibleの気に入っている点 
• 習得が比較的容易、直感的に使える 
• コマンドを多数のサーバに実行したい時に重宝 
• Dynamic Inventory便利 
Ⓒ Classmethod, Inc. 
13
Packer 
• AMI作成補助ツール 
• ProvisionerにAnsibleを指定可能 
• EC2インスタンスでローカルモードAnsible実行 
Ⓒ Classmethod, Inc. 
http://www.slideshare.net/masaomoc1015/20140627packer 
14
2014/12現在 行き着いた先 
Ⓒ Classmethod, Inc. 
× × 
15
とはいえ 
PackerとかCloudFormationとかAnsibleとか 
ツールが増えると使いこなすのがつらい… 
ので、Rakeを使ってインターフェースを揃えました 
Ⓒ Classmethod, Inc. 
16
ディレクトリ構成 
Ⓒ Classmethod, Inc. 
17
Rakeで定義 
• PackerでAMI作成 
Ⓒ Classmethod, Inc. 
18
Rakeで定義 
• CloudFormationで環境構築(β) 
Ⓒ Classmethod, Inc. 
19
まとめ 
• 構築のための色々なツールが存在する 
• 自分の環境・プロジェクトに合わせて最適なものを 
選択していきたい 
• なるべく使い方はシンプルに。 
• チーム内で受け入れてもらおう! 
• CIと絡められればもっと楽になるはず 
Ⓒ Classmethod, Inc. 
20
おまけ 
21
22
Ⓒ Classmethod, Inc. 
#cmdevio 
ご静聴ありがとうございました。 
スライドは後日ブログで公開します。 
23 
DevIO MTUP11-001

regrowth_configurationtool