Terraform

Infra as codeの一つだ。何となく感じることとして、これがあるとインフラエンジニアもソフトウェアエンジニアに含まれてくる気がする。SREなんて呼び名も広まりつつあるし。

そもそもInfrastructure as Codeってなんだ。

Infrastructure as Code とは、インフラの構成を管理したり、プロビジョニングを自動化するためにハイレベル、もしくは宣言的な言語でコードを書くことである。これは単にスクリプトを書くのではなく、ソフトウェア開発で実証されているプラクティスを使う。例えば、バージョン管理、テスト、小さなデプロイメント、デザインパターンの使用などだ。

これによって得られるメリットは、一度実行できれば、再利用性の高い「コード」にして、 バージョン管理できる形で残せることだと思う。

Terraform

AWSだけじゃなくて、いろんなプラットフォームに対応できるんだなあ。
こんな感じでコードを書いて適用すると。インフラがクラウド化してAPIで設定できるようになったから発生した技術だね。

provider "aws" {  
  access_key = "ACCESS_KEY_HERE"
  secret_key = "SECRET_KEY_HERE"
  region     = "us-east-1"
}

resource "aws_instance" "example" {  
  ami           = "ami-2757f631"
  instance_type = "t2.micro"
}