↓の本の「2章 Terraformをはじめよう」のメモを残します。
前章のメモ
Terraformのインストール
・公式ドキュメント
・Ubuntuへのインストールやってみた
サーバ1台のデプロイ
AMI IDはリージョンごとに異なる
Terraformに直接関係ないですが、AMI IDがリージョンごとに異なることを初めて知りました。。
terraform init
Terraformを初めて使うときに実行するコマンド。
実行したディレクトリ内に.terraformディレクトリが作成され、
その中に使用するプロバイダーのファイルが落ちてくるなどがある。
ProviderにAWSがある場合は、AWSに関するコードが落ちてくる。
そのコードにはTerraformのコードに対応するAWSのAPIなどが記載されているのかな。
terraform plan, apply
terraform plan でTerraformのコードが何をするのかをチェックし、
terraform apply で実際にデプロイする。
Webサーバ1台のデプロイ
user data
aws_instance の user_data でuser dataを指定可能。
user_data_replace_on_changeをtrueにするとuser_data変更時にインスタンスを作りなおす
暗黙的依存
あるリソースから他のリソースを参照すると、暗黙的依存が設定される
これにより、どの順番でリソースを作成するかをTerraform側で勝手に判断してくれる。
terraform graph の実行するとDOTというグラフ記述言語で依存関係が出力される。
これにアプリを使うとフローチャート的に表示してくれる
設定変更可能なWebサーバのデプロイ
変数宣言時のパラメータ
description | 変数に対する説明。 |
default | デフォルト値 |
type | 型 |
validation | バリデーション |
sensitive | planやapply時に値を載せるか。 機密情報など残したくないものはtrueにする |
※赤字は初めて知ったパラメータ
変数参照
var.<変数名> で参照できる。
文字列の中で参照する場合は、${var.<変数名>}
出力変数
・パラメータ
description | 説明 |
sensitive | true ⇒ planやapply時に値を載せない |
depends_on | リソースの依存関係を設定。 |
・コマンド
terraform output で 出力変数の一覧を見れる
terraform output <変数名> で特定の出力変数を見れる
Webサーバのクラスタのデプロイ
ライフサイクル
Terraformでリソースを作り変える場合は、既存削除⇒新規作成の順番。
lifecycle の create_before_destroy を true にすると、新規作成⇒既存削除になる
データの参照
data を使ってプロバイダ上の様々な情報を参照できる。
filterを使用すると絞れる
ロードバランサーのデプロイ
ELB+Auto Scalingをつくっている。後で作るときに参考にしよう。
次章のメモ
コメント