I'm trying to deploy simple scenario on aws:
new vpc, one ec2 instance sitting in that vpc, one eip pointing to that instance, aws\_internet\_gateway , aws\_route\_table 

Deployment work fine however every time (no changes in .tf files) when I do plan/apply terraform shows me:

```
Resource actions are indicated with the following symbols:
  ~ update in-place
-/+ destroy and then create replacement

Terraform will perform the following actions:

  # aws_eip.ip-test-env will be updated in-place
  ~ resource "aws_eip" "ip-test-env" {
        association_id    = "eipassoc-00a442781418a087a"
        domain            = "vpc"
        id                = "eipalloc-0112b7e1d7da47c96"
      ~ instance          = "i-080a5333328cd43e2" -> (known after apply)
        network_interface = "eni-022169b4a11cf2318"
        private_dns       = "ip-10-2-59-98.eu-west-1.compute.internal"
        private_ip        = "10.2.59.98"
        public_dns        = "ec2-__REMOVED__.eu-west-1.compute.amazonaws.com"
        public_ip         = "__REMOVED__"
        public_ipv4_pool  = "amazon"
        tags              = {
            "Creator"     = "XYZ"
        }
        vpc               = true
    }

  # aws_instance.testinstance must be replaced
-/+ resource "aws_instance" "testinstance" {
        ami                          = "ami-0f0f0893a9b9ce5ee"
      ~ arn                          = "arn:aws:ec2:eu-west-1:014363301871:instance/i-080a5333328cd43e2" -> (known after apply)
      ~ associate_public_ip_address  = true -> (known after apply)
      ~ availability_zone            = "eu-west-1c" -> (known after apply)
      ~ cpu_core_count               = 1 -> (known after apply)
      ~ cpu_threads_per_core         = 1 -> (known after apply)
      - disable_api_termination      = false -> null
      - ebs_optimized                = false -> null
        get_password_data            = false
      + host_id                      = (known after apply)
      ~ id                           = "i-080a5333328cd43e2" -> (known after apply)
      ~ instance_state               = "running" -> (known after apply)
        instance_type                = "t2.micro"
      ~ ipv6_address_count           = 0 -> (known after apply)
      ~ ipv6_addresses               = [] -> (known after apply)
        key_name                     = "XYZ-key"
      - monitoring                   = false -> null
      + network_interface_id         = (known after apply)
      + password_data                = (known after apply)
      + placement_group              = (known after apply)
      ~ primary_network_interface_id = "eni-022169b4a11cf2318" -> (known after apply)
      ~ private_dns                  = "ip-10-2-59-98.eu-west-1.compute.internal" -> (known after apply)
      ~ private_ip                   = "10.2.59.98" -> (known after apply)
      ~ public_dns                   = "ec2-__REMOVED__.eu-west-1.compute.amazonaws.com" -> (known after apply)
      ~ public_ip                    = "__REMOVED__" -> (known after apply)
      ~ security_groups              = [ # forces replacement
          + "sg-04933748eb5a36bab",
          + "sg-0dd6565c1050dacc7",
        ]
        source_dest_check            = true
        subnet_id                    = "subnet-0067ff8a7b48b4abc"
        tags                         = {
            "Creator"     = "XYZ"
        }
      ~ tenancy                      = "default" -> (known after apply)
      ~ volume_tags                  = {} -> (known after apply)
      ~ vpc_security_group_ids       = [
          - "sg-04933748eb5a36bab",
          - "sg-0dd6565c1050dacc7",
        ] -> (known after apply)

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

      + ebs_block_device {
          + delete_on_termination = (known after apply)
          + device_name           = (known after apply)
          + encrypted             = (known after apply)
          + iops                  = (known after apply)
          + kms_key_id            = (known after apply)
          + snapshot_id           = (known after apply)
          + volume_id             = (known after apply)
          + volume_size           = (known after apply)
          + volume_type           = (known after apply)
        }

      + ephemeral_block_device {
          + device_name  = (known after apply)
          + no_device    = (known after apply)
          + virtual_name = (known after apply)
        }

      + network_interface {
          + delete_on_termination = (known after apply)
          + device_index          = (known after apply)
          + network_interface_id  = (known after apply)
        }

      ~ root_block_device {
          ~ delete_on_termination = true -> (known after apply)
          ~ encrypted             = false -> (known after apply)
          ~ iops                  = 100 -> (known after apply)
          + kms_key_id            = (known after apply)
          ~ volume_id             = "vol-0525f835e3456f60c" -> (known after apply)
          ~ volume_size           = 8 -> (known after apply)
          ~ volume_type           = "gp2" -> (known after apply)
        }
    }

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

```

My .tf file about those resources looks like:

```
resource "aws_vpc" "main-vpc" {
  cidr_block = "10.2.0.0/16"
  enable_dns_hostnames = true
  tags = {
    Creator     = "XYZ"
  }
}

resource "aws_subnet" "subnet1" {
  cidr_block = cidrsubnet(aws_vpc.main-vpc.cidr_block, 3, 1)
  vpc_id     = aws_vpc.main-vpc.id
  tags = {
    Creator     = "XYZ"
  }
}

resource "aws_security_group" "SSH" {
  vpc_id = aws_vpc.main-vpc.id
  ingress {
    from_port = 22
    protocol  = "tcp"
    to_port   = 22
    cidr_blocks = [
      "0.0.0.0/0"
    ]
  }
  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
  tags = {
    Creator = "XYZ"
  }
}

resource "aws_instance" "testinstance" {
  ami = data.aws_ami.instance_store_ami.id
  instance_type   = "t2.micro"
  security_groups = ["${aws_security_group.SSH.id}", "${aws_security_group.PING.id}"]

  tags = {
    Creator = "XYZ"
  }
  subnet_id = aws_subnet.subnet1.id
  key_name  = aws_key_pair.XYZ.id
}

resource "aws_eip" "ip-test-env" {
  instance = aws_instance.testinstance.id
  vpc      = true
  tags = {
    Creator = "XYZ"
  }
}

resource "aws_internet_gateway" "test-gw" {
  vpc_id = aws_vpc.main-vpc.id
  tags = {
    Creator = "XYZ"
  }
}

resource "aws_route_table" "route-table-test" {
  vpc_id = aws_vpc.main-vpc.id
  route {
    cidr_block = "0.0.0.0/0"
    gateway_id = aws_internet_gateway.test-gw.id
  }
}

resource "aws_route_table_association" "subnet-association" {
  subnet_id      = aws_subnet.subnet1.id
  route_table_id = aws_route_table.route-table-test.id
}

```

Any ideas why it happens?

Thanks in advance