问题描述
长期的阅读者,但是我通常能够在现有帖子中找到我一直在寻找的答案-但是这次我却没有。
我本质上是在从头开始教自己AWS CDK,我只是刚刚开始使用它,所以找不到对我的任务有帮助的任何东西,可能是由于不知道要问正确的问题的结果...所以请裸露我。
到目前为止,我已经使用AWS CDK和Python创建了一个堆栈,该堆栈创建了一个S3存储桶,还启动了一个EC2实例,该实例上加载了AWS文件存储网关AMI(因此运行Amazon Linux)。这样可以部署并正常运行-但是,现在我想以编程方式设置S3存储桶,以通过EC2实例上的NFS共享进行访问。从我所看到的情况来看,我认为它是琐碎的或应该是相当琐碎的,但是我一直在文档和互联网搜寻中迷失了方向,并且不确定我在寻找正确的位置或向搜索引擎询问正确的问题以进行解锁实现这一目标的路径。
当实例开始使用用户数据时,我似乎应该能够编写一些脚本以使其实现,但我有点迷路。是否有人可以扔给我一些碎屑,以寻找实现此目标的好方法,或实现我想要发生的事情的更好方法(基本上是访问S3存储桶内容,就像它们是EC2实例上的文件一样)-如果不告诉我怎么做,如果它很琐碎?
非常感谢:) 丹
解决方法
您步入正轨。 user_data可用于此目的。
我没有完整的代码来提供特定于其用例的信息(例如,您正在使用哪个操作系统?),但是user_data
必须下载并安装s3fs:
s3fs允许Linux和macOS通过FUSE 安装S3存储桶。 s3fs保留文件的本机对象格式,从而允许使用其他工具,例如AWS CLI。
但是,S3是对象存储系统,它不能像使用NFS或EBS存储解决方案那样真正地安装在实例上。但是使用s3fs-fuse
可以模仿这种行为。对于某些用例就足够了。
因此,您可以做的是通过控制台设置user_data脚本,验证其是否有效,然后基本上只是复制并粘贴到CDK。它更多是一种尝试式方法,但这是最好的学习方法。