SlideShare a Scribd company logo
1 of 16
Download to read offline
Terraform
INDEX
・Terraformとはなんぞ?
・Terraformの簡単なコマンド紹介
・Terraformを導入した場合のメリデメ
Terraformとはなんぞ??
 terraform
TerraformとはHashCorp社が提供する*IaCサービス。
(IaC… Infrastructure as Code)
Terraformは他にも、VMwareなどのサーバーをローカルで立てるときに便利な
Vagrantというサービスも有名で、
HashCorp社はインフラとかに強い
INDEX
・Terraformとはなんぞ?
・Terraformの簡単なコマンド紹介 
・Terraformを導入した場合のメリデメ
→imakoko!
Terraform開発の主な流れ
・WRITE
コマンドではないがふつうにコードを書きます。
Terraformでは.hclというHashCorp社が独自開発している
言語?を扱います。ほぼ Jsonと記述方法がにているため、文
法の勉強などは必要ないです。
主に、サービスごと (AWSだと、ECSやVPCごとなど)にメソッ
ド?の様なものに分けて定義していきます。
特に必須のオプションなどが少ないため (sider_blockとか)
人によっては、ぱぱっと作れるかも。
WRITE → FMT → PLAN → APPLY → DESTORY
imakoko!
imeiji,konnnano
Terraform開発の主な流れ
・FMT
コンソールから
$ terraform fmt
でformatの修正が入ります。
必須ではありませんが、見えづらいのは嫌なので基本やり
ます。
WRITE → FMT → PLAN → APPLY → DESTROY
imakoko!
・PLAN
コンソールから
$ terraform plan
で本当に本番環境に投げて大丈夫か確かめます。 (Lintみたいな)
おそらく実際の開発だと、ここまでが終わってからレビューをもら
うことになります。必須ではありませんが、必須みたいなもので
す。
Imeiji,
konnnano
Terraform開発の主な流れ
・APPLY
コンソールから
$ terraform APPLY
で実際に本番環境にコードを反映させます。
結構怖いですが、少なくともそのアプリのコード意外に影
響は出ないので頑張って APPLYしましょう。
Applyの後は実際にAWSのコンソールから確認すると安
心。
また、PLANコマンドで出なかったエラーが出る可能性が
あるのでその確認も忘れずに!
WRITE → FMT → PLAN → APPLY → DESTROY
imakoko!
・DESTROY
コンソールから
$ terraform destroy
ですべての情報を削除
Imeiji,
konnnano
INDEX
・Terraformとはなんぞ?
・Terraformの簡単なコマンド紹介 
・Terraformを導入した場合のメリデメ
→imakoko!
Meritto 1
サービスに関するモジュールを一回作って仕舞えば、次も同じモジュールを使う
ことができるので資産価値としてのメリットが高い。
ex)
今だとcalendar-frontendのECSに関するモジュールは変数を変えて仕舞え
ば、別のアプリでもすぐに同じようなものが作成できる。
Point!! 一回作って仕舞えば、コピペするだけなのでらくちん
Meritto 2
他のサービスに干渉することなくインフラを構築できる。
ex)
みんせつの場合、一つのAWSのアカウントに複数のアプリのサーバーが存在する
ため、コンソールからだと投資家カレンダーのインフラを変更するはずが、間
違ってみんせつ本体のインフラを変更してしまう可能性がある。
Point!! インフラ(サーバー)の変更を安全に行える
Meritto 3
コードレビューができる。
ex)
コンソールをぽちぽちしても履歴として残らないため、どこをどういじったのか
だれもわからない。
Point!! ジュニアが開発してもどこかのタイミングでシニアにレビュー
してもらえれば、比較的安全にインフラを構築できる。
Demeritto 1
学習コストが高い。
ex)
ふつうに学習コストがかかるので、資産性とかを無視したらインフラにつよいエ
ンジニアがコンソールでぴこぴこした方が早い。
Demeritto 2
最新のインフラのサービスを使えないことが!
あくまでTerraformは、AWSやGCPの後追いでしかないので、たとえAWSが新し
いサービスをリリースしても、terraformが対応できるまでラグがある。
いかがでしたでしょうか?
Terraformやインフラに関してはまだまだわからないことだらけですが、
これからも学習をすすめたいと思います。
ご清聴有難うございました。
Terraformをいじってみて

More Related Content

What's hot

仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法 仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法 Hideo Takahashi
 
ザビ家の野望 〜 全自動ZABBIX AWS編 〜
ザビ家の野望 〜 全自動ZABBIX AWS編 〜ザビ家の野望 〜 全自動ZABBIX AWS編 〜
ザビ家の野望 〜 全自動ZABBIX AWS編 〜Katsuhiro Miura
 
Zaim 500万ユーザに向けて〜Aurora 編〜
Zaim 500万ユーザに向けて〜Aurora 編〜Zaim 500万ユーザに向けて〜Aurora 編〜
Zaim 500万ユーザに向けて〜Aurora 編〜Wataru Nishimoto
 
VagrantからDockerに開発環境を移行した時の話
VagrantからDockerに開発環境を移行した時の話VagrantからDockerに開発環境を移行した時の話
VagrantからDockerに開発環境を移行した時の話Daijiro Abe
 
CloudFoundryをつかってみよう
CloudFoundryをつかってみようCloudFoundryをつかってみよう
CloudFoundryをつかってみようKazuto Kusama
 
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)さくらインターネット株式会社
 
【JAWS DAYS 2016】ランサーズを支えるAurora
【JAWS DAYS 2016】ランサーズを支えるAurora【JAWS DAYS 2016】ランサーズを支えるAurora
【JAWS DAYS 2016】ランサーズを支えるAuroraYuki Kanazawa
 
高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編Kazuya Numata
 
5分でインストール!awsでzabbix3.0
5分でインストール!awsでzabbix3.05分でインストール!awsでzabbix3.0
5分でインストール!awsでzabbix3.0Tadashi Mishima
 
Fabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFesFabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFesSho Shimauchi
 
【JAWS UG 山形】ランサーズでのAWS活用事例
【JAWS UG 山形】ランサーズでのAWS活用事例【JAWS UG 山形】ランサーズでのAWS活用事例
【JAWS UG 山形】ランサーズでのAWS活用事例Yuki Kanazawa
 
Kafka 0.10.0 アップデート、プロダクション100ノードでやってみた #yjdsnight
Kafka 0.10.0 アップデート、プロダクション100ノードでやってみた #yjdsnightKafka 0.10.0 アップデート、プロダクション100ノードでやってみた #yjdsnight
Kafka 0.10.0 アップデート、プロダクション100ノードでやってみた #yjdsnightYahoo!デベロッパーネットワーク
 
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれからベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれからYasuhiro Horiuchi
 
俺のZabbixがこんなに可愛いわけがない
俺のZabbixがこんなに可愛いわけがない俺のZabbixがこんなに可愛いわけがない
俺のZabbixがこんなに可愛いわけがないSeiichiro Ishida
 
Zabbixのパフォーマンスチューニング & インストール時の注意点
Zabbixのパフォーマンスチューニング & インストール時の注意点Zabbixのパフォーマンスチューニング & インストール時の注意点
Zabbixのパフォーマンスチューニング & インストール時の注意点Kodai Terashima
 
AWSではじめるお手軽オンラインゲーム開発
AWSではじめるお手軽オンラインゲーム開発AWSではじめるお手軽オンラインゲーム開発
AWSではじめるお手軽オンラインゲーム開発AimingStudy
 
Twilio API を PHP で触ってみよう
Twilio API を PHP で触ってみようTwilio API を PHP で触ってみよう
Twilio API を PHP で触ってみようMasashi Shinbara
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)Daisuke Ikeda
 
わかってるフレームワーク Laravel
わかってるフレームワーク Laravelわかってるフレームワーク Laravel
わかってるフレームワーク LaravelMasashi Shinbara
 

What's hot (20)

仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法 仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法
 
ザビ家の野望 〜 全自動ZABBIX AWS編 〜
ザビ家の野望 〜 全自動ZABBIX AWS編 〜ザビ家の野望 〜 全自動ZABBIX AWS編 〜
ザビ家の野望 〜 全自動ZABBIX AWS編 〜
 
Zaim 500万ユーザに向けて〜Aurora 編〜
Zaim 500万ユーザに向けて〜Aurora 編〜Zaim 500万ユーザに向けて〜Aurora 編〜
Zaim 500万ユーザに向けて〜Aurora 編〜
 
VagrantからDockerに開発環境を移行した時の話
VagrantからDockerに開発環境を移行した時の話VagrantからDockerに開発環境を移行した時の話
VagrantからDockerに開発環境を移行した時の話
 
CloudFoundryをつかってみよう
CloudFoundryをつかってみようCloudFoundryをつかってみよう
CloudFoundryをつかってみよう
 
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
 
【JAWS DAYS 2016】ランサーズを支えるAurora
【JAWS DAYS 2016】ランサーズを支えるAurora【JAWS DAYS 2016】ランサーズを支えるAurora
【JAWS DAYS 2016】ランサーズを支えるAurora
 
高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編高トラフィックサイトをRailsで構築するためのTips基礎編
高トラフィックサイトをRailsで構築するためのTips基礎編
 
5分でインストール!awsでzabbix3.0
5分でインストール!awsでzabbix3.05分でインストール!awsでzabbix3.0
5分でインストール!awsでzabbix3.0
 
Fabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFesFabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFes
 
【JAWS UG 山形】ランサーズでのAWS活用事例
【JAWS UG 山形】ランサーズでのAWS活用事例【JAWS UG 山形】ランサーズでのAWS活用事例
【JAWS UG 山形】ランサーズでのAWS活用事例
 
Kafka 0.10.0 アップデート、プロダクション100ノードでやってみた #yjdsnight
Kafka 0.10.0 アップデート、プロダクション100ノードでやってみた #yjdsnightKafka 0.10.0 アップデート、プロダクション100ノードでやってみた #yjdsnight
Kafka 0.10.0 アップデート、プロダクション100ノードでやってみた #yjdsnight
 
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれからベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
 
Severless&Micro Service
Severless&Micro ServiceSeverless&Micro Service
Severless&Micro Service
 
俺のZabbixがこんなに可愛いわけがない
俺のZabbixがこんなに可愛いわけがない俺のZabbixがこんなに可愛いわけがない
俺のZabbixがこんなに可愛いわけがない
 
Zabbixのパフォーマンスチューニング & インストール時の注意点
Zabbixのパフォーマンスチューニング & インストール時の注意点Zabbixのパフォーマンスチューニング & インストール時の注意点
Zabbixのパフォーマンスチューニング & インストール時の注意点
 
AWSではじめるお手軽オンラインゲーム開発
AWSではじめるお手軽オンラインゲーム開発AWSではじめるお手軽オンラインゲーム開発
AWSではじめるお手軽オンラインゲーム開発
 
Twilio API を PHP で触ってみよう
Twilio API を PHP で触ってみようTwilio API を PHP で触ってみよう
Twilio API を PHP で触ってみよう
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
 
わかってるフレームワーク Laravel
わかってるフレームワーク Laravelわかってるフレームワーク Laravel
わかってるフレームワーク Laravel
 

Terraformをいじってみて