19
OSS フフフフフ Infrastructure as Code フフフフフ

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

Embed Size (px)

Citation preview

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

OSS フル活用でInfrastructure as Code

やってみた

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

自己紹介• 新居田 晃史(にいだ あきふみ)

• 所属– JB アドバンスト・テクノロジー株式会社– 先進技術研究所

• 日本最速 IT エンジニア(自称)

– フルマラソン 2:29:56

• 好きな AWS サービス

• re:Invent2016 参加

Twitter @nid777Facebook Akifumi Niida

AmazonRoute 53

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

インフラ構築の現状

The 手作業

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

環境再現への道のりは遠い

Page 5: Ossフル活用でinfrastructure as codeやってみた
Page 6: Ossフル活用でinfrastructure as codeやってみた

やってみたい!

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

社内で新しく作るサービスに携わることに

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

目的

1.変更履歴をコードに残す

2.運用の負荷を減らす

3.緊急時に全てを再構築できる

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

やってみた

AWSインフラ

OS

MW

APPL

CONFIG

AMI

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

Packer と Ansible は相性が良い

"provisioners": [{ "type": "ansible", "playbook_file": "../ansible/container.yml", "ansible_env_vars": ["ANSIBLE_HOST_KEY_CHECKING=False", "ANSIBLE_SCP_IF_SSH=True"] }]

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

AMI の運用

• マイクロサービス毎に AMI を作成• サービス名 _ 日付時刻で名前付け• AMI 作成時に古いものを削除• AMI 何回も作るの大変??– packer がやってくれるので便利

• Terraform で launch config を変更

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

1. 本番環境を自動作成2. 本番環境をコピーして、

なんか色々やってテスト環境を自動作成

3. テスト実施4. テスト環境を自動削除

自動化あるある

> terraform destroy

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

本番環境の設定が残ったまま

Page 14: Ossフル活用でinfrastructure as codeやってみた
Page 15: Ossフル活用でinfrastructure as codeやってみた
Page 16: Ossフル活用でinfrastructure as codeやってみた

全消しをふまえて

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

現在の構成(ざっくり)

/terraform本番

ステージング

テスト

.tfstate

.tfstate

.tfstate

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

結果

→ok→ok→ok

1.変更履歴をコードに残す

2.運用の負荷を減らす

3.緊急時に全てを再構築できる

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

インフラをコード化して楽をしよう