如何通过 terraform 停止/开始运行 ec2 实例

问题描述 投票:0回答:3

我有 EC2 实例与 Web 应用程序一起运行,这是我的 POC 环境计算机。这个实例是通过 terraform 自动化的,但是当我不需要它时它一直在运行,如果我不想使用它,我想编写 terraform 脚本来关闭这台机器,这样我就可以节省成本。

bash amazon-web-services amazon-ec2 terraform terraform-provider-aws
3个回答
5
投票

aws_ec2_instance_state
资源来处理 ec2 状态。

这可以通过以下代码轻松完成:

resource "aws_instance" "test" {
  ami           = data.aws_ami.ubuntu.id
  instance_type = "t3.micro"

  tags = {
    Name = "HelloWorld"
  }
}

resource "aws_ec2_instance_state" "test" {
  instance_id = aws_instance.test.id
  state       = "stopped"
}

您还可以参考文档这里


4
投票

使用 Terraform 有多种方法可以实现此目的。第一个解决方案是遵循此处的指导。这不是最优雅的解决方案,但它确实有效。您还必须自己跟踪当前状态。

如果您想要更多基于一天中时间的功能,例如在 06:00 打开实例并在 17:30 关闭实例,那么 这个解决方案非常好


0
投票

要销毁特定的 EC2 实例 (demo_vm_1),可以将 --target 参数与资源路径一起提供给 destroy 命令,以识别正确的资源,如下所示:

terraform destroy --target aws_instance.demo_vm_1
© www.soinside.com 2019 - 2024. All rights reserved.