Gcpug tokyo february 2016

Preview:

Citation preview

GCP で Terraform する

GCPUG Tokyo February 20162016/02/12

CyberZ上原 誠

2

自己紹介

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

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

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

  ミドルウェアを担当

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

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

【経歴】

3

最近“Aerospike” 記事書いたり

GCP さわりだしたり

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

4

5

6

7

本日の内容

Terraform

8

本日の内容

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

・テンプレート

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

・グラフ?

・まとめ

9

Terraform って何?

10

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

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

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

・ CloudFormation みたいなもの

11

開発活発!

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

12

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

13

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

14

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

15

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

16

今回の構成

17

構成

18

構成

ここを Terraform する

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

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 のリソースが分かれて

21

テンプレート

22

23

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

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

24

ドライラン、実行、確認

25

26

27

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

28

Terraform の定義通り 4 台 →

29

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

30

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

31

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

32

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

コマンドは以下

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

33

グラフ?

35

まとめ

36

Terraform のいいところ

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

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

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

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

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

37

Terraform の悪いところ

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

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

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

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

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

38

うちでのユースケース

所感

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

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

39

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

40

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

Recommended