ぼくはterraformだけ触ろうと思った - terraform でインフラ構築#1
先日のホッテントリにこんな記事が…
丁度この記事見る直前ぐらいにterraformを仕事で使って、全く同じ気持ちを抱きました。 terraformでもCloudFormationでも、CLIでクラウドインフラ構築とかやってた人は触ったら抜け出せなくなると思います。 ただ、terraformはAWSに限定されないです。強い。
なぜterraform
terraformは安心のHashiCorp製のオーケストレーションツールです。 terraformを使うことで、インフラの Infrastructure as Code が実現できます。
というかインフラに限らず、かなり幅広く XXX as Codeできますね。 社内IT担当者とか結構嬉しいんじゃないでしょうか GitHubのリポジトリやチームメンバーの管理もできるみたいです(なんでもありやな)
改めて言うまでもないかも知れませんが、メリットを挙げるとこんな感じだと思います。
- 設定がバージョン管理できるので、属人性を無くせる
- 設定反映の自動化により手作業によるオペレーションミスが減らせる
- DryRunで実行前に挙動をチェックできるのでオペレーションミスが減らせる
terraformのインストール
Go製なので、↓から、自分のマシン用の実行ファイル落としてきてパス通ったフォルダに置くだけ、ぽん
Download Terraform - Terraform by HashiCorp
簡単ですね
動かしてみる
DryRunして、実際に立ち上げて、そして落とすという一連の操作をやってみます。
1. 設定ファイルを作成
とりあえず、デモとして AWS に Amazon Linux のインスタンスを立ち上げる設定を書きます。
とりあえずのステップワンなので1ファイルに全部書いちゃいます。
適当なディレクトリを作ってその中に、下記のgistの ec2.tf
ファイルを置きます。
$ mkdir terraform $ cd terraform $ vim ec2.tf
ちなみに、インスタンスタイプが t2.micro
でなく t1.micro
になっているのは、とりあえず最小構成としてEC2インスタンスだけを立ち上げたかったからです。
t2.micro
は VPC必須になっていますが、この設定ファイルでは VPCについての設定を書いていないため、EC2インスタンスを立ち上げることができません。
2. DryRunでチェック
設定が書けたら、 plan
で確認します。
$ terraform plan
3. 実際に立ち上げる
問題なさそうなので、インスタンスを立ち上げましょう。 apply
を実行します。
$ terraform apply
マネジメントコンソールを確認すると、インスタンスができてました。
4. 立ち上げたインスタンスを停止する
さて、とりあえず動作確認は充分ですし、お金がもったいないので、いらないインスタンスには退場してもらいましょう。
destroy
を実行します。
$ terraform destroy
ターミネートできました。
こんな感じで、 plan
apply
destory
で、AWSが簡単に操作できるのが terraform です。
もうシェル芸でAWS構築する必要がなくなりました。