View
601
Download
1
Category
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
グラフ?
34
yum install -y graphviz graphviz-gd
terraform graph | dot -Tpng > ./graph.png
35
まとめ
36
Terraform のいいところ
・インストはバイナリ配置だけでらくらく
・ドライランがある、コメント入れられる、可読性高い独自 DML・リソース間の依存関係はよしなにやってくれる
・コード化することで手作業がなくなり作業効率上がるしレビューできる
・だから、インフラ構成がバージョン管理出来る
・対応リソース少ないと言われていたが今はいい感じかも?
37
Terraform の悪いところ
・冪等性ない、ドライラン弱い
・ステートを持つので tfstate ファイルの扱いに注意が必要
※ tfstate ファイルは現在のインフラの状態を表したもの( json )
・マネコンから修正しちゃうと tf ファイル tfstate の方も合わせないとエラーする
・既存リソースへの Terraform 適用はできない
38
うちでのユースケース
所感
・使い捨て環境に使ってる・新しい小さ目のサービスで利用開始
・もうポチポチしたくなくなった・レビューが増えるけどいいことだろう
39
ご清聴ありがとうございました!
40
技術人阪本ですエンジニア募集中!
Recommended