OSSフル活用で
Infrastructure as Code
やってみた
自己紹介
• 新居田 晃史(にいだ あきふみ)
• 所属
– JBアドバンスト・テクノロジー株式会社
– 先進技術研究所
• 日本最速ITエンジニア(自称)
– フルマラソン 2:29:56
• 好きなAWSサービス
• re:Invent2016参加
Twitter @nid777
Facebook Akifumi Niida
Amazon
Route 53
インフラ構築の現状
The 手作業
やってみたい!
社内で新しく作るサービスに
携わることに
目的
1. 変更履歴をコードに残す
2. 運用の負荷を減らす
3. 緊急時に全てを再構築できる
やってみた
AWSインフラ
OS
MW
APPL
CONFIG
AMI
PackerとAnsibleは相性が良い
"provisioners": [{
"type": "ansible",
"playbook_file": "../ansible/container.yml",
"ansible_env_vars": ["ANSIBLE_HOST_KEY_CHECKING=False", "ANSIBLE_SCP_IF_SSH=True"]
}]
AMIの運用
• マイクロサービス毎にAMIを作成
• サービス名_日付時刻で名前付け
• AMI作成時に古いものを削除
• AMI何回も作るの大変??
– packerがやってくれるので便利
• Terraformでlaunch configを変更
1. 本番環境を自動作成
2. 本番環境をコピーして、
なんか色々やってテスト環境を
自動作成
3. テスト実施
4. テスト環境を自動削除
自動化あるある
> terraform destroy
本番環境の設定が
残ったまま
全消しをふまえて
現在の構成(ざっくり)
/terraform
本番
ステージング
テスト
.tfstate
.tfstate
.tfstate
結果
→ok
→ok
→ok
1. 変更履歴をコードに残す
2. 運用の負荷を減らす
3. 緊急時に全てを再構築できる
インフラをコード化して
楽をしよう

Ossフル活用でinfrastructure as codeやってみた