如何从EC2实例访问S3存储桶对象?使用Terraform。

3

我有一个存档文件,其中包含一些二进制文件,需要在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
  ...
}
1个回答

4
很遗憾,您无法将S3对象作为文件系统挂载到实例上,也无法直接访问它们。必须先下载它们。
但是,您可以使用第三方工具,使S3存储桶对您和您的应用程序显示为文件系统。其中一个流行的工具是3fs-fuse,它:
允许Linux和macOS通过FUSE挂载S3存储桶。s3fs保留文件的本机对象格式,允许使用其他工具如AWS CLI。
要使其正常工作,您需要在实例启动期间设置user_data以自动执行此操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接