【问题标题】:Google App Engine (GAE) - do instances use a shared disk?Google App Engine (GAE) - 实例是否使用共享磁盘?
【发布时间】:2021-10-28 01:16:05
【问题描述】:

我正在使用 Google App Engine (GAE),我的 app.yaml 如下所示:

runtime: custom # uses Dockerfile
env: flex

manual_scaling:
  instances: 2
resources:
  cpu: 2
  memory_gb: 12
  disk_size_gb: 50

50GB 磁盘,是否在实例之间共享? docs 对此问题保持沉默。我正在将文件下载到磁盘,每个实例都需要能够访问我正在下载的文件。

如果磁盘不共享,如何在实例之间共享文件?

我知道我可以按需从谷歌云存储下载它们,但这些是视频文件,每个实例都需要即时访问。按需下载视频文件太慢了。

TIA

选读:

之所以需要即时访问,是因为我使用ffmpeg 从视频中的 X 帧(或 X 时间)生成照片。拍摄视频照片时,需要尽快将这些照片提供给用户。

【问题讨论】:

  • GAE Flex 不在实例之间共享磁盘空间。作为 NFS 的 Filestore 可以工作,问题是您无法在 Flex 中执行时挂载 NFS,因此这应该手动进行,这在应用程序扩展或重新创建实例时会出现问题。您可能想在 GCE 中选择 GKE 或 MIG。也许其他人可以分享任何想法
  • 谢谢,一个非常有用的见解...您经常提到 GAE flex,同样的问题是否适用于 GAE 标准?
  • 是的,这也适用于 GAE 标准。事实上,GAE 标准不支持磁盘之类的东西,而是可以将文件“存储”在内存中 /tmp 中,因此存储取决于您选择的实例类型可用的内存。

标签: google-app-engine


【解决方案1】:

您在 GAE 中使用 50 Gb 磁盘,无论是标准磁盘还是弹性磁盘,您都无法在 GAE 之间共享实例,因为存储是专用的。 您尝试了 GCS,因为涉及视频文件处理并且 GCS 是基于对象的存储。 因此,替代方案可能是 Filestore,但 GAE Flex 尚不支持它,尽管有可能通过 SSH 连接到其底层的完全托管机器。

如果您使用/tmp 文件夹,有一种方法。但是,它会将文件存储在实例的 RAM 中,因此请注意,它会占用内存并且是临时的(正如文件夹名称所暗示的那样)。

有关详细信息,请参阅文档 herehere

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    • 2020-08-06
    • 1970-01-01
    • 2012-09-11
    相关资源
    最近更新 更多