terraform入門時のメモ
どう入門するか
今まで人が作ったterraformの設定をいじって適用とかはしてきたけど自分で一から作ったことない。仕組みを理解するには、一から自分で作ってみるのが早そうだと思ったので自分で一から作ってみることにした。 ので、素直にこれをやることにした。
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_ID
、AWS_SECRET_ACCESS_KEY
、AWS_DEFAULT_REGION
を読み込んでくれる
そもそもAWSについて知らなかったこと
- ARN
Amazon リソースネーム (ARN) は、AWS リソースを一意に識別します。IAM ポリシー、Amazon Relational Database Service (Amazon RDS) タグ、API 呼び出しなど、明らかに全 AWS に渡るリソースを指定する必要がある場合、ARN が必要です。
- 各リージョンにdefault VPC security Groupがある
- secret_keyとかってどうやって発行されてるの? https://console.aws.amazon.com/iam/home?region=us-east-1#/security_credential にある。
- IAMはAWS Identity and Access Management の略