【问题标题】:Terraform: how to access S3 bucket object from EC2 instance?Terraform:如何从 EC2 实例访问 S3 存储桶对象?
【发布时间】:2020-10-15 15:42:29
【问题描述】:

我有一个存档,其中包含 S3 上的一些二进制文件,我需要在配置期间将其放在 EC2 上。 目前,我正在将存档下载到机器(主机配置)并将其上传到我需要配置的机器上。

或者我怎样才能得到一个链接 aws_s3_bucket_object?或者有没有办法使用 terraform 将 s3 对象作为文件挂载到 ec2 实例中?

data "aws_s3_bucket_object" "release" {
  bucket = data.aws_s3_bucket.artifacts.id
  key    = "release.tgz"
}

resource "aws_instance" "engine" {
  ami           = data.aws_ami.server.id
  instance_type = var.aws_instance_type
  ...
}

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-ec2 terraform


    【解决方案1】:

    遗憾的是,您不能将 S3 对象作为文件系统挂载到您的实例,也不能直接访问它们。必须先下载它们。

    但是,您可以使用第三方工具,使 S3 存储桶在您和您的应用程序中显示为文件系统。一种流行的工具是3fs-fuse,它:

    允许 Linux 和 macOS 通过 FUSE 挂载 S3 存储桶。 s3fs 保留文件的本机对象格式,允许使用其他工具,如 AWS CLI。

    为此,您必须在实例中设置user_data,以便在实例启动期间自动完成。

    【讨论】:

      猜你喜欢
      • 2019-09-29
      • 2016-01-22
      • 2016-05-18
      • 1970-01-01
      • 2014-07-28
      • 1970-01-01
      • 2020-05-20
      • 1970-01-01
      • 2016-09-05
      相关资源
      最近更新 更多