TerraForm でEC2のステータス確認、変更、削除

目標:TerraFormで作成したEC2の管理方法を調べる。

環境
OS:Windows10

ステータスファイル

ステータは「terraform.tfstate」ファイルに保存されます。
TerraFormで作成したリソースの情報や設定内容などが記録されているし、このステータファイルを参照してリソースを更新、削除もできるので注意して安全などころに保存する必要があります。

ステータスコメント

「terraform show」ステータスを確認

terraform show

「terraform [global options] state <subcommand> [options] [args]」
オプションを利用して欲しいステータス情報を確認できます。

terraform state list


「list」と言う<subcommand>を利用してリソースのリストを出力

「terraform refresh」リソースデータを実際のリソースに同期します。

terraform refresh

TerraForm でEC2を変更

以前記録で作成したEC2のAMIを変更したみます。
まず作成した「main.tf」のリソース設定を更新します。

以前AMIは「ubuntu-precise-12.04-amd64-server-20170502 : “ami-66182e01″」を使いましたが今度は「ubuntu-xenial-16.04-amd64-server-20200814:”ami-036cb77005c69fbe0”」に変更してみます。

resource "aws_instance" "app_server" {
  ami           = "ami-036cb77005c69fbe0"
  instance_type = "t2.micro"

  tags = {
    Name = "MyFirstTerraformInstance"
  }
}

「main.tf」ファイルを修正後「terraform apply」を実行します。

terraform apply

1リソース削除、1リソース追加の実行結果を見せます。

変更前「i-0846b2841b4ef8e0a

AWS Consoleからも確認できます。

変更後「i-053a4d29edefb98fa

このようにAMIの変更は単純にEC2を修正することでは変更ができないので自動にTerraFormが判断して作り直します。

  # aws_instance.app_server must be replaced
-/+ resource "aws_instance" "app_server" {
      ~ ami                                  = "ami-66182e01" -> "ami-036cb77005c69fbe0" # forces replacement
      ~ arn                                  = "arn:aws:ec2:ap-northeast-1:470476052118:instance/i-0846b2841b4ef8e0a" -> (known after apply)

「-/+」の表示はリソース作り直すの意味です。
リソースの単純修正だと「~」に表示されます。

TerraForm でEC2を削除

「terraform destroy」リソースを削除する。

terraform destroy

「-」の表示はリソースを削除する意味です。

複数のリソースがある複雑な場合、Terraformは従属性を尊重するために適切な順序でリソースを除去します。

 

Smallitのサービス