ossフル活用でinfrastructure as codeやってみた
TRANSCRIPT
OSS フル活用でInfrastructure as Code
やってみた
自己紹介• 新居田 晃史(にいだ あきふみ)
• 所属– JB アドバンスト・テクノロジー株式会社– 先進技術研究所
• 日本最速 IT エンジニア(自称)
– フルマラソン 2:29:56
• 好きな AWS サービス
• re:Invent2016 参加
Twitter @nid777Facebook Akifumi Niida
AmazonRoute 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.緊急時に全てを再構築できる
インフラをコード化して楽をしよう