【読書メモ】【2章】詳解 Terraform 第3版 ―Infrastructure as Codeを実現する

技術書

 

↓の本の「2章 Terraformをはじめよう」のメモを残します。

 

前章のメモ

 

Terraformのインストール

 

・公式ドキュメント

Install | Terraform | HashiCorp Developer
Explore Terraform product documentation, tutorials, and examples.

 

・Ubuntuへのインストールやってみた

【Terraform】Ubuntuにインストールしよう
IaC(Infrastructure as Code)のツールとして人気のある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をつくっている。後で作るときに参考にしよう。

 

 

次章のメモ

 

コメント

タイトルとURLをコピーしました