Terraform等を用いてインフラストラクチャを破壊・削除する(Windows10)

Terraform等を用いてインフラストラクチャを破壊・削除してみます(Windows10)

この記事は、Terraform等を用いてインフラストラクチャを構築するという記事を公開しましたが、その続きとなり、EC2インスタンスをプロビジョニング(利用可能な状態に準備)したものを破壊・削除を行います。

なお、インフラストラクチャを構築するためには、Terraform CLI、AWSCLI、AWSアカウントの取得と、AWSアカウントに関連したクレデンシャル(資格・認証情報)が必要になりますので、事前に取得などを行っておく必要があります。

■EC2インスタンスをプロビジョニング(利用可能な状態に準備)したものを確認する

EC2インスタンスをプロビジョニング(利用可能な状態に準備)したものを破壊・削除する前に、AWSにログインし、「EC2」にアクセスします。

アクセス後、「EC2 ダッシュボード」をクリックし、ダッシュボードの右上にある地域・リージョンが表示されている箇所をクリックします。今回は、「米国西部(オレゴン)us-west-2」でEC2インスタンスを作成しているので、「us-west-2」を選択します。

選択した後に、「EC2 ダッシュボード」内の「リソース」の「インスタンス(実行中)」をクリックします。

クリックすると、現在実行中のインスタンスが表示され、前回Terraform等を用いて構築したEC2インスタンスが表示されていることが確認できました。

■インフラストラクチャを破壊・削除する

確認後、破壊・削除のために、Windows10のコマンドプロンプトを起動します。起動後、前回、新しい構成を作成するために、「terraform-aws-instance」ディレクトリを初期化しました。

> cd terraform-aws-instance

このディレクトリに移動するために、上記のコマンドを入力し、Enterキーを押し、ディレクトリに移動します。

> terraform destroy

移動後、上記のコマンドを入力し、Enterキーを押します。これでEC2インスタンスの破壊・削除が行えます。

aws_instance.app_server: Refreshing state... [id=i-*****]

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the
following symbols:
  - destroy

Terraform will perform the following actions:

  # aws_instance.app_server will be destroyed
  - resource "aws_instance" "app_server" {
      - ami                                  = "ami-*****" -> null
      - arn                                  = "arn:aws:ec2:us-west-2:*****7:instance/i-*****" -> null
      - associate_public_ip_address          = true -> null
      - availability_zone                    = "us-west-2c" -> null
      - cpu_core_count                       = 1 -> null
      - cpu_threads_per_core                 = 1 -> null
      - disable_api_termination              = false -> null
      - ebs_optimized                        = false -> null
      - get_password_data                    = false -> null
      - hibernation                          = false -> null
      - id                                   = "i-*****" -> null
      - instance_initiated_shutdown_behavior = "stop" -> null
      - instance_state                       = "running" -> null
      - instance_type                        = "t2.micro" -> null
      - ipv6_address_count                   = 0 -> null
      - ipv6_addresses                       = [] -> null
      - monitoring                           = false -> null
      - primary_network_interface_id         = "eni-*****" -> null
      - private_dns                          = "ip-*****.us-west-2.compute.internal" -> null
      - private_ip                           = "*****" -> null
      - public_dns                           = "ec2-*****.us-west-2.compute.amazonaws.com" -> null
      - public_ip                            = "*****" -> null
      - secondary_private_ips                = [] -> null
      - security_groups                      = [
          - "default",
        ] -> null
      - source_dest_check                    = true -> null
      - subnet_id                            = "subnet-09317e74ec8255608" -> null
      - tags                                 = {
          - "Name" = "ExampleAppServerInstance"
        } -> null
      - tags_all                             = {
          - "Name" = "ExampleAppServerInstance"
        } -> null
      - tenancy                              = "default" -> null
      - vpc_security_group_ids               = [
          - "sg-0e54552461f60cc59",
        ] -> null

      - capacity_reservation_specification {
          - capacity_reservation_preference = "open" -> null
        }

      - credit_specification {
          - cpu_credits = "standard" -> null
        }

      - enclave_options {
          - enabled = false -> null
        }

      - metadata_options {
          - http_endpoint               = "enabled" -> null
          - http_put_response_hop_limit = 1 -> null
          - http_tokens                 = "optional" -> null
          - instance_metadata_tags      = "disabled" -> null
        }

      - root_block_device {
          - delete_on_termination = true -> null
          - device_name           = "/dev/sda1" -> null
          - encrypted             = false -> null
          - iops                  = 0 -> null
          - tags                  = {} -> null
          - throughput            = 0 -> null
          - volume_id             = "vol-08d25f0e2140c5179" -> null
          - volume_size           = 8 -> null
          - volume_type           = "standard" -> null
        }
    }

Plan: 0 to add, 0 to change, 1 to destroy.

Do you really want to destroy all resources?
  Terraform will destroy all your managed infrastructure, as shown above.
  There is no undo. Only 'yes' will be accepted to confirm.

  Enter a value:

Enterキーを押すと、上記のようなメッセージが表示され、「Enter a value:」と出力されます。リソースを破壊・削除することを受け入れるために、「yes」と入力し、Enterキーを押します。

aws_instance.app_server: Destroying... [id=i-********]
aws_instance.app_server: Still destroying... [id=i-********, 10s elapsed]
aws_instance.app_server: Still destroying... [id=i-********, 30s elapsed]
aws_instance.app_server: Destruction complete after 35s

Destroy complete! Resources: 1 destroyed.

Enterキーを押すと、破壊・削除が開始され、「Destroy complete!」と出力されます。これが出力されれば、破壊・削除が完了となります。

完了後、EC2インスタンスが破壊・削除されているか確認してみます。「EC2 ダッシュボード」内の「リソース」の「インスタンス(実行中)」をクリックすると、「一致するインスタンスが見つかりません」と表示され、インスタンスが破壊・削除されていることが確認できました。

なお、「EC2 ダッシュボード」内の「リソース」の「インスタンス」をクリックすると、今回破壊・削除したインスタンスが表示され「インスタンスの状態」が「終了済み」となっていました。

コメント

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