在 AWS Elastic Beanstalk 上运行 Metabase

由于平台问题,我们不再建议使用 Elastic Beanstalk 在生产环境中运行 Metabase。

如果您在 Elastic Beanstalk 上运行 Metabase,我们建议您切换到不同的设置。

Elastic Beanstalk 的替代方案

Metabase 云

我们推荐 Metabase 云(显而易见)。

自托管设置

您可以使用 PostgreSQL 或 MySQL 作为其应用程序数据库来设置 Metabase,并在您可以监控的服务器上运行 Metabase,无论是在您的硬件上还是在云提供商处。

至少,请确保定期备份您的应用程序数据库(总是在升级之前)。遵循您组织关于安全性、监控和可用性的要求。

专业服务

如果您需要有关设置 Metabase(或构建数据堆栈)的帮助,请查看我们提供的专业服务

将您的 RDS 数据库与 Elastic Beanstalk 部署解耦

如果您使用 AWS 的关系数据库服务来存储您的 Metabase 应用程序数据,您可以继续这样做(尽管您仍然应该将您的 Metabase 安装从 Elastic Beanstalk 移开)。您可以使用环境变量从您将 Metabase 安装移动到的任何位置连接到您的 RDS 主机。

通知用户您的 Metabase 将停机一段时间

此过程将产生停机时间,因此请务必告知您的用户,在您使用新数据库重建环境时,Metabase 将会停机。

获取应用程序数据库的快照

您需要创建 Elastic Beanstalk 实例时使用的数据库的主用户名和密码。

通过转到环境配置并在数据库部分查找端点值来识别您的 Elastic Beanstalk 正在使用的 RDS 端点。

RDS endpooint

  • 如果“保留”是“创建快照”,则表示一切正常。您可以删除整个 Elastic Beanstalk 环境,因为 AWS 将在删除环境之前拍摄数据库的快照(备份)。
  • 如果“保留”具有不同的值,请访问您的 RDS 实例并拍摄 Elastic Beanstalk 应用程序使用的数据库的快照。

    RDS snapshot

使用快照终止您的 Elastic Beanstalk 环境

转到 Elastic Beanstalk Metabase 应用程序,选择正在运行的环境,然后终止它。确认数据库将使用快照终止。

Terminate environment

终止环境可能需要大约 20 分钟。如果删除失败,您必须通过 CloudFormation 识别哪些资源删除失败并自行删除它们。

恢复您的快照

返回 RDS 并在页面左侧选择快照选项。您应该会看到列出的手动快照。

RDS Snapshots

选择该快照,然后单击操作 > 恢复快照

从这一步开始,您可以按照与为 Metabase 配置 RDS相同的步骤操作。

升级您的 Elastic Beanstalk 部署

如果您想继续使用 Elastic Beanstalk,您可以按照以下步骤继续升级它

  1. 下载最后发布的 Beanstalk 构件文件
  2. 解压缩文件。
  3. 编辑 Dockerrun.aws.json 文件,并将镜像标签更改为最新的可用版本。始终避免使用 :latest,而是使用最新的版本号。
  4. 压缩文件。
  5. 将文件作为新的 Beanstalk 版本上传到 AWS。
  6. 升级您的环境。

请记住,如果您使用的是 Metabase 的 Pro 或 Enterprise 版本,则需要使用 metabase/metabase-enterprise 存储库而不是 metabase/metabase 存储库。

阅读其他版本的 Metabase 文档