日報:2019/12/14

今日の出来事

  • 腰痛の治療をした
  • 子供と妻がでかけてたので一日プログラミング三昧だった。
    • もちろん、掃除と洗濯した。
  • Terraform をやってる

所管

Terraform を勉強してる

実践Terraform AWSにおけるシステム設計とベストプラクティス (技術の泉シリーズ(NextPublishing))

実践Terraform AWSにおけるシステム設計とベストプラクティス (技術の泉シリーズ(NextPublishing))

分かった事 適当にまとめ


  • terraform のバージョンは 各種環境によりバージョンを切り替えて利用する事が多い。
    • tfenv というバージョンを切り替えるツール もしくは Docker で Terraform 環境を用意して使うなどといったやり方がある。

Terraform のコーディングの流れ

  • {{ hogehoge }}.tf ファイルという設定ファイルに Terraformの設定を記述する
  • terraform init で 必要なバイナリファイルのダウンロード
  • terraform plan で 実行計画を表示する。
  • terraform apply で実行計画を環境に反映する。

terraform apply したときに -/+ destroy and then create replacement っていうメッセージが出た時は要注意

「これは 既存のリソースを削除して新しく作成する」 という意味。


Terraform は 現在の状況を terraform.tfstate ファイル上に保存している。

「 tfstate = AWS上の状態」 という前提で tfファイル との差分を確認して その変更点を反映する、というような仕組みになってる。


変数とかも定義出来る。
変数の定義は 外からオプションによって変更可能なものと変更不可のものがある。


user_data = << EOF
  #!/bin/bash
  yum install -y httpd
  systemctl start httpd.service
EOF

みたいな感じで コマンド実行とか出来るらしい(知らなかった。)

これは hoge.sh とかで書き出しておけば

user_data = file("./hoge.sh") で読み込み出来る。


インフラ全く分からないけど、いい感じに抽象化されてて、凄い分かりやすい・・・! ありがたい。

そんな感じだった。