40
1 GCP で Terraform でで GCPUG Tokyo February 2016 2016/02/12 CyberZ でで で

Gcpug tokyo february 2016

Embed Size (px)

Citation preview

Page 1: Gcpug tokyo february 2016

GCP で Terraform する

GCPUG Tokyo February 20162016/02/12

CyberZ上原 誠

Page 2: Gcpug tokyo february 2016

2

自己紹介

・  2012 年 3 月 サイバーエージェント入社

-   Ameba スマフォプラットフォームの構築

- 統合ログ解析基盤やオンラインデータベースのインフラ

  ミドルウェアを担当

- Hadoop 、 HBase 、 Flume- 今は CyberZ で広告系のお仕事

・ 上原 誠 (@pioho07)【名前】

【経歴】

Page 3: Gcpug tokyo february 2016

3

最近“Aerospike” 記事書いたり

GCP さわりだしたり

ジョブスケジューラーを変えてみたり

Page 4: Gcpug tokyo february 2016

4

Page 5: Gcpug tokyo february 2016

5

Page 6: Gcpug tokyo february 2016

6

Page 7: Gcpug tokyo february 2016

7

本日の内容

Terraform

Page 8: Gcpug tokyo february 2016

8

本日の内容

・ Terraform って何 ?・今回の構成

・テンプレート

・ドライラン、実行、確認

・グラフ?

・まとめ

Page 9: Gcpug tokyo february 2016

9

Terraform って何?

Page 10: Gcpug tokyo february 2016

10

・ Hashicorp(Vagrant, Packer, Serf, Consul を作っている会社 ) によって

  2014/07/28 に公開されたオープンソースプロダクト

・複数クラウド対応で、 Iaas/PaaS/SaaS レイヤのインフラ構成管理ツール

・ CloudFormation みたいなもの

Page 11: Gcpug tokyo february 2016

11

開発活発!

月に 1 度はアップデートある 2/1 v0.6.11 が最新

Page 12: Gcpug tokyo february 2016

12

リソースの数だけ IaaS を操作できる、リソース数が多いほど扱える IaaS も多い

Page 13: Gcpug tokyo february 2016

13

Terraform AWS リソース 113 個 (2/3 現在 )(1/27 Terraform v0.6.10 release で Redshift も対応しフルマネージドのデータストアサービス出そろう )

Page 14: Gcpug tokyo february 2016

14

Terraform Google Cloud リソース 35 個 (2/3 現在 )(10 月 v0.6.4 と 11 月 v0.6.7 のリリースで 15 個リソース追加された。それまでは数少なすぎて微妙だった・・ )

Page 15: Gcpug tokyo february 2016

15

ちなみに vmware はリソース1つ!  ( ³ω³ )ファッ !!

Page 16: Gcpug tokyo february 2016

16

今回の構成

Page 17: Gcpug tokyo february 2016

17

構成

Page 18: Gcpug tokyo february 2016

18

構成

ここを Terraform する

Page 19: Gcpug tokyo february 2016

19

Google Compute Engine Resources  14個

google_compute_addressgoogle_compute_autoscalergoogle_compute_backend_servicegoogle_compute_firewallgoogle_compute_forwarding_rulegoogle_compute_global_addressgoogle_compute_http_health_checkgoogle_compute_instancegoogle_compute_instance_group_managergoogle_compute_instance_templategoogle_compute_networkgoogle_compute_target_http_proxygoogle_compute_target_poolgoogle_compute_url_map

Page 20: Gcpug tokyo february 2016

20

Google Compute Engine Resources  14個

google_compute_addressgoogle_compute_autoscalergoogle_compute_backend_servicegoogle_compute_firewallgoogle_compute_forwarding_rulegoogle_compute_global_addressgoogle_compute_http_health_checkgoogle_compute_instancegoogle_compute_instance_group_managergoogle_compute_instance_templategoogle_compute_networkgoogle_compute_target_http_proxygoogle_compute_target_poolgoogle_compute_url_map

External IP Address のタイプが Regional か

Global かで Terraform のリソースが分かれて

Page 21: Gcpug tokyo february 2016

21

テンプレート

Page 22: Gcpug tokyo february 2016

22

Page 23: Gcpug tokyo february 2016

23

GCP でのテンプレhttp://pioho.hatenablog.com/entry/2016/02/01/184602

AWS でのテンプレhttp://pioho.hatenablog.com/entry/2016/01/13/193616

Page 24: Gcpug tokyo february 2016

24

ドライラン、実行、確認

Page 25: Gcpug tokyo february 2016

25

Page 26: Gcpug tokyo february 2016

26

Page 27: Gcpug tokyo february 2016

27

完成! このくらいの構成だと 1 分 40 秒くらい

Page 28: Gcpug tokyo february 2016

28

Terraform の定義通り 4 台 →

Page 29: Gcpug tokyo february 2016

29

GUI も Terraform で入れた設定が入ってます。

Page 30: Gcpug tokyo february 2016

30

CPU を 2 台のサーバーでバーストさせる。一瞬で 9 台になりました。はやっ!

Page 31: Gcpug tokyo february 2016

31

CPU 負荷を切りました。 10 分程度かかってインスタンスがミニマム台数の 4 台に収束しました。遅っ!?

Page 32: Gcpug tokyo february 2016

32

消すのは 2 分 30 秒くらい。作るよりは少し長い

コマンドは以下

terraform destroy -var-file /root/terraform/vars/tfvarsgcp

Page 33: Gcpug tokyo february 2016

33

グラフ?

Page 35: Gcpug tokyo february 2016

35

まとめ

Page 36: Gcpug tokyo february 2016

36

Terraform のいいところ

・インストはバイナリ配置だけでらくらく

・ドライランがある、コメント入れられる、可読性高い独自 DML・リソース間の依存関係はよしなにやってくれる

・コード化することで手作業がなくなり作業効率上がるしレビューできる

・だから、インフラ構成がバージョン管理出来る

・対応リソース少ないと言われていたが今はいい感じかも?

Page 37: Gcpug tokyo february 2016

37

Terraform の悪いところ

・冪等性ない、ドライラン弱い

・ステートを持つので tfstate ファイルの扱いに注意が必要

 ※ tfstate ファイルは現在のインフラの状態を表したもの( json )

・マネコンから修正しちゃうと tf ファイル tfstate の方も合わせないとエラーする

・既存リソースへの Terraform 適用はできない

Page 38: Gcpug tokyo february 2016

38

うちでのユースケース

所感

・使い捨て環境に使ってる・新しい小さ目のサービスで利用開始

・もうポチポチしたくなくなった・レビューが増えるけどいいことだろう

Page 39: Gcpug tokyo february 2016

39

ご清聴ありがとうございました!

Page 40: Gcpug tokyo february 2016

40

技術人阪本ですエンジニア募集中!