【问题标题】:When to use ebs_block_device?什么时候使用 ebs_block_device?
【发布时间】:2023-02-02 20:57:29
【问题描述】:

我想使用 Terraform 创建一个 EC2 实例。这个实例应该有一些 EBS。

在我读到的文档中,Terraform 提供了两种创建 EBS 的方法:

  • ebs_block_device
  • aws_ebs_volumeaws_volume_attachment

我想知道,我应该什么时候使用ebs_block_device

文档

不幸的是,文档并不清楚(至少对我而言):

  • 什么时候使用ebs_block_device
  • 确切的实际行为如何?

Resource: aws_instance

ebs_block_device -(可选)一个或多个配置块以及附加到实例的 EBS 块设备。块设备配置仅适用于资源创建。有关属性和漂移检测的详细信息,请参阅下面的块设备。将其作为属性引用访问时,它是一组对象。

目前,Terraform 无法自动检测对现有资源的 ebs_block_device 配置的更改。要管理 EBS 块对实例的更改和附加,请改用 aws_ebs_volumeaws_volume_attachment 资源。如果您在 aws_instance 上使用 ebs_block_device,Terraform 将承担对实例的全套非根 EBS 块设备的管理,将额外的块设备视为漂移。因此,ebs_block_device不能与给定实例的外部aws_ebs_volumeaws_volume_attachment资源混合。

研究

我读:

我知道问题与 Terraform 和 Terraform AWS 提供商的不同版本有关,并且一些问题已经解决,但实际预期行为是什么?

问题

我应该什么时候使用ebs_block_device?此功能的用例是什么?

【问题讨论】:

    标签: terraform terraform-provider-aws


    【解决方案1】:

    我什么时候应该使用 ebs_block_device?

    当您需要根卷以外的另一个卷时,因为

    不像存储在本地实例存储上的数据(只保留 只要该实例还活着),存储在 Amazon EBS 上的数据 volume 可以独立于实例的生命周期而持续存在。

    当您启动实例时,根设备卷包含用于启动实例的映像。

    将 Amazon EBS 用作根设备的实例自动具有 附加的 Amazon EBS 卷。当您启动 Amazon EBS 支持的 例如,我们为每个 Amazon EBS 快照创建一个 Amazon EBS 卷 由您使用的 AMI 引用

    下面是一个带有额外 EBS 卷的 EC2 示例。

    provider "aws" {
      region = "eu-central-1"
    }
    
    resource "aws_instance" "example" {
      ami           = "ami-0c55b159cbfafe1f0"
      instance_type = "t2.micro"
    
      ebs_block_device {
        device_name = "/dev/sda1"
        volume_size = 8
        volume_type = "gp3"
        throughput = 125
        delete_on_termination = false
      }
    }
    

    笔记: delete_on_termination for root_block_device 默认设置为 true

    您可以阅读有关 AWS 块设备映射的更多信息here

    【讨论】:

    • 当您需要根卷以外的另一个卷时,因为好的,但接下来是我的问题,何时将 aws_ebs_volumeaws_volume_attachment 一起使用?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    相关资源
    最近更新 更多