【问题标题】:One Cloud Storage Bucket with sub-folders or one Cloud Storage Bucket per microservice一个带有子文件夹的云存储桶或每个微服务一个云存储桶
【发布时间】:2022-02-19 04:04:38
【问题描述】:

我目前正在为我的 GCP Cloud Run 服务使用每个微服务一个存储桶的方法。这意味着我拥有的每项服务都有一个 Cloud Storage Bucket,其中包含其 Cloud Run 服务的 default.tfstate 文件。我有多个以开发、暂存或生产为后缀的 GCP 项目环境。在我的三个 GCP 项目环境中,每个 Cloud Run 服务都有自己的变体。例如,我的 foo-service 存在于 GCP 开发(当它正在开发时)、暂存(当我将它合并到 main、部署、测试它等时)和生产中(当我说质量足以实时部署时)生产)。这个服务有三个 GCP 云存储桶,我必须以一种避免与其他桶命名冲突的方式来命名它们。

您可以在下面看到我正在使用的结构。每个存储桶都包含一个用于 Terraform 的 default.tfstate 文件。

GCP 项目名称:my-project-prod

  • 存储桶:service-one-prod
  • 存储桶:service-two-prod
  • 存储桶:service-three-prod

GCP 项目名称:my-project-stag

  • 桶:service-one-stag
  • 桶:service-two-stag
  • 桶:service-three-stag

GCP 项目名称:my-project-dev

  • 存储桶:service-one-dev
  • 存储桶:service-two-dev
  • 存储桶:service-three-dev

每个 GCP 项目环境使用一个 Cloud Storage Bucket 是否有优势,其中包含我的每项服务的子文件夹,如下面的结构?每个文件夹都将包含 Terraform 的 default.tfstate。

GCP 项目名称:my-project-prod

  • 存储桶:我的项目产品
    • 文件夹:service-one
    • 文件夹:服务二
    • 文件夹:服务三

GCP 项目名称:my-project-stag

  • 存储桶:my-project-stag
    • 文件夹:service-one
    • 文件夹:服务二
    • 文件夹:服务三

GCP 项目名称:my-project-dev

  • 存储桶:我的项目开发
    • 文件夹:service-one
    • 文件夹:服务二
    • 文件夹:服务三

我只使用存储桶为我的 Cloud Run 服务存储 Terraform 状态。我要么创建多个存储桶,要么在一个存储桶中创建多个文件夹。

编辑原始帖子以获取下面的更多上下文。

我正处于产品开发的早期阶段,因此在开始扩展之前我正在寻找最佳实践。我目前有五个 Cloud Run 服务,未来还有更多需要开发。所有 Cloud Run 服务都位于 us-central1 区域中,并且每个服务都使用默认的 Compute Engine 服务帐户来确保安全。每个服务都有自己的专用 Cloud Storage Bucket,其中位置设置为 US(多个区域)或 us-central1。我正在使用存储桶来存储 Cloud Run Service 的 default.tfstate,仅此而已。我的服务是简单的 API,可以从多个来源读取/写入数据,例如其他 API、数据库、主题/队列。

我想说这些服务很简单。他们没有突破存储桶或存储桶访问的限制。

【问题讨论】:

    标签: google-cloud-platform google-cloud-storage google-cloud-run terraform-provider-gcp


    【解决方案1】:

    在每个服务的存储桶或子文件夹上使用实际上是相同的,除非:

    a) 您在多个区域拥有多项服务,在这种情况下,您希望尽可能靠近存储桶以减少延迟和成本

    b) 您正在使用统一存储桶访问策略作为您的安全方法,在这种情况下,您希望限制服务对其存储桶的访问

    如果您只是考虑存储桶与子文件夹的性能,则不会有明显的差异

    如果你能告诉我们更多关于你的项目(安全、区域、工作量)的信息,我可以进一步帮助你

    【讨论】:

    • 感谢您的回复。我编辑了我的原始帖子,在底部包含更多上下文并回答您的问题。
    • 对于这个用例,我会坚持使用一个带有这些文件的存储桶,我认为不需要专门的存储桶来在每个存储桶上存储一个文件。如果需要,您可以使用文件夹来组织它们,但请记住,云存储中的 concept of folders 仅具有代表性,没有功能。
    猜你喜欢
    • 2015-12-16
    • 1970-01-01
    • 2020-06-09
    • 2016-02-10
    • 2021-08-10
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多