Amazon web services 针对S3存储桶的多个组织/帐户和开发环境

Amazon web services 针对S3存储桶的多个组织/帐户和开发环境,amazon-web-services,amazon-s3,continuous-integration,Amazon Web Services,Amazon S3,Continuous Integration,根据最佳实践,aws资源应按客户(产品、阶段等)分配,并且最好给开发人员自己的客户规定限额(预算、地区等) 我现在想知道如何创建一个完整的工作开发环境,特别是当涉及到S3存储桶时 大多数服务都是按使用付费的,因此可以启动一些lambda、SQS等来为开发人员使用真正的服务 现在来看看真正的问题,应该如何处理存储在S3存储桶中的图片、下载等静态资产 为每个开发/环境复制这些存储桶可能会很昂贵,因为您需要为存储和/或数据传输付费。 我的想法是给devs S3 bucket一个重定向规则,当在dev

根据最佳实践,aws资源应按客户(产品、阶段等)分配,并且最好给开发人员自己的客户规定限额(预算、地区等)

我现在想知道如何创建一个
完整的工作开发环境
,特别是当涉及到
S3存储桶时

大多数服务都是按使用付费的,因此可以启动一些lambda、SQS等来为开发人员使用真正的服务

现在来看看真正的问题,应该如何处理存储在S3存储桶中的图片、下载等静态资产

为每个开发/环境复制这些存储桶可能会很昂贵,因为您需要为存储和/或数据传输付费。

我的想法是给devs S3 bucket一个重定向规则,当在dev bucket中找不到文件(例如404)时,它会重定向到prod bucket,这样图像。。。都是从那里取回的

我已经测试了这个,它工作得很好,但它只解决了部分问题

另一部分是如何以方便的方式替换这些文件?

目前,静态资产和下载也存在于我们的git中(可能毕竟不是最好的主意…-如何处理文件更改,这些更改应该与新功能一起使用,目前在git中也很方便),当有人更改内容时,他们会推送它并将其部署到prod

我们当然可以用上传的新文件将devs S3 bucket同步回prod bucket,但如何将其与合并请求结合起来,并获得良好的CI/CD体验?


您的解决方案是什么,让每个开发人员都有S3存储桶,这样他们就可以用所有可用的东西来构建自己的完全工作的开发环境?我的经验是,您不想为了节省几美元而使事情复杂化。S3的成本非常便宜,所以如果你只是谈论网站资产,比如HTML、CSS、JavaScript和一些图像,那么你可能会花费比你节省的更多的时间来创建、管理和排除解决方案。毕竟,时间是你最宝贵的资源

如果您确实有需要存储以使系统正常工作的大型项目,那么可以让S3存储桶对这些大型项目制定生命周期策略,并在合理的时间后将其删除。如果/当开发人员需要该对象时,他们可以从其源中再次检索该对象并手动重新上载。你可以很容易地编写一个脚本