PackerとChefで
構築を楽しよう
AWS勉強会 in 北海道札幌
Developers.IO Meetup 05
classmethod.jp 1
@Canelmo2014/06/28
改め
classmethod.jp 2
PackerとChefとCloudFormationで
構築を楽しよう
AWS勉強会 in 北海道札幌
Developers.IO Meetup 05
classmethod.jp 3
2014/06/28 @Canelmo
自己紹介
• 望月 政夫
• 1988年生
• クラスメソッド歴 9か月
• AWS歴 1年半くらい
• 元PHPer
• I love
classmethod.jp 4
Twitter:@Canelmo
今日話すこと
• 構築作業をいかに楽するか
classmethod.jp 5
おしごとでのAWS
• 色々なお客様の環境を構築する
• 色々なAWSアカウントを利用する
• お客様ごとに
– VPCつくって
– SecurityGroupつくって
– EC2たててセットアップしてAMI作って…
面倒!!!
classmethod.jp 6
時代は自動化
classmethod.jp 7
Packerの登場
• http://www.packer.io/
• 仮想イメージ作成補助ツール
• 作者はMitchell Hashimoto氏
– Vagrant,Serf,Consulの作者
– Serf面白い!
• http://www.slideshare.net/masaomoc1015/cl
oudformationserf-29075637
classmethod.jp 8
Packerのしくみ
• Packer templateと呼ばれるJSONを記述
する
1. builderにセットアップ先を設定
2. provisionerに応じてセットアップ実施
• packer build コマンド実行
classmethod.jp 9
builder
• イメージのデプロイ先の指定
– Amazon AMI
– Docker
– VirtualBox
– DigitalOcean …
• ディスクサイズの指定
classmethod.jp 10
builder
• Builderの指定は複数可能
• 並列実行も可能
→AWSに縛られないイメージが作れる
• 繰り返し実行可能
→何回やっても同じ結果になる!
classmethod.jp 11
provisioner
• Builderでセットアップした仮想マシンに
対するプロビジョニング(設定適用)
• 各種プロビジョニングツールが利用可能
– Chef
– Puppet
– Ansible
– Shell Script(!)
classmethod.jp 12
provisioner
• 既存の構築リソースを転用可能
• 繰り返し実行可能
→何回やっても同じイメージが作れる!!
classmethod.jp 13
Packerのしくみ
classmethod.jp 14
Packerのしくみ
classmethod.jp 15
AWS CloudFormation
• AWSの構築自動化ツール
• AWSのリソース(VPC,EC2)などをJSON
で記述
classmethod.jp 16
CloudFormation
• どの環境で実行しても同じ結果になるよ
うに書くことが重要!
• パラメータを実行時に渡すことができる
• Packerで作成されたAMI IDを指定する
classmethod.jp 17
CloudFormation
AWS CLIから実行可能
$ aws cloudformation create-stack 
--stack-name application01 
--template-body file://application01.template 
--parameters file://application01.parameters
classmethod.jp 18
最近の構築の流れ
1. PackerでAMI作成+Chefでプロビジョニ
ング
2. CloudFormationで環境構築
以上!!
classmethod.jp 19
まとめ
• PackerでAMIの再現が可能
• CloudFormationで環境の再現が可能
• 「RepairではなくRebuild」できる状態に
classmethod.jp 20
ご清聴ありがとうございました
classmethod.jp 21
classmethod.jp

20140627_packer