terraform入門時のメモ

どう入門するか

今まで人が作ったterraformの設定をいじって適用とかはしてきたけど自分で一から作ったことない。仕組みを理解するには、一から自分で作ってみるのが早そうだと思ったので自分で一から作ってみることにした。 ので、素直にこれをやることにした。

www.terraform.io

terraformで知ったこと

  • とにもかくにもproviderを書く。
  • terraform showコマンドがあること。これでtfstateが見れる。
  • planのときに出てくる-/+ は削除して再作成って意味
  • Atlasっていうterraformの設定ファイルバージョン管理 & 実行してくれるみたいなTerraformのremoteのサービスがある
  • depends_onで実行順序を変えられて、terraform graphコマンドで順序が見られる
  • 単にresourceを削除してterraform applyすればdestroyしてくれる
  • provisioningに失敗したらtaintedなresourceになって次はまた新しいのを再生成する
  • variableを{}にしておくとplan時に対話形式で入力することができる
  • variable "hoge" {} で変数宣言して使うときは、${var.hoge}、default値は宣言時のブレース内に書く
  • 変数は、環境変数か実行時の引数、実行時にファイル指定、terraform.tfvarsっていう決まった名前のファイルに書いておくことで渡せる
  • outputでapplyのときにコンソールに出力することができるし、markしておくおことができてterraform outputコマンドであとで簡単に取り出せる
  • providerがawsならAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_DEFAULT_REGIONを読み込んでくれる

そもそもAWSについて知らなかったこと

  • ARN

Amazon リソースネーム (ARN) は、AWS リソースを一意に識別します。IAM ポリシー、Amazon Relational Database Service (Amazon RDS) タグ、API 呼び出しなど、明らかに全 AWS に渡るリソースを指定する必要がある場合、ARN が必要です。