在 AWS Elastic Beanstalk 上运行 Metabase
由于平台存在问题,我们不再建议在生产环境中使用 Elastic Beanstalk 来运行 Metabase。
如果您正在 Elastic Beanstalk 上运行 Metabase,我们建议您切换到其他设置。
Elastic Beanstalk 的替代方案
Metabase 云
我们推荐 Metabase Cloud(显而易见)。
自托管设置
您可以使用 PostgreSQL 或 MySQL 作为 Metabase 的应用程序数据库进行设置,并在您能够监控的服务器上运行 Metabase,无论是您自己的硬件还是云提供商。
至少,请确保您定期备份您的应用程序数据库(并在升级之前始终进行备份)。请遵循您组织的安全、监控和可用性要求。
专业服务
如果您在设置 Metabase(或总体上构建数据堆栈)方面需要帮助,请查看我们提供的专业服务。
将您的 RDS 数据库与 Elastic Beanstalk 部署分离
如果您使用 AWS 的关系数据库服务来存储 Metabase 应用程序数据,您可以继续这样做(尽管您仍应将 Metabase 安装移出 Elastic Beanstalk)。您可以使用环境变量,无论您将 Metabase 安装移到何处,都可以连接到您的 RDS 主机。
通知用户您的 Metabase 将暂时停机
此过程将产生停机时间,因此请务必告知您的用户,在您使用新数据库重新创建环境期间,Metabase 将无法使用。
获取应用程序数据库的快照
您将需要创建 Elastic Beanstalk 实例时使用的数据库的主用户名和密码。
通过查看环境配置并找到数据库部分中的端点值,来识别您的 Elastic Beanstalk 正在使用的 RDS 端点。

- 如果保留设置为“创建快照”,则一切就绪。您可以删除整个 Elastic Beanstalk 环境,因为 AWS 将在删除环境之前对数据库进行快照(备份)。
-
如果保留设置为其他值,请访问您的 RDS 实例并对 Elastic Beanstalk 应用程序使用的数据库进行快照。

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

终止环境可能需要大约 20 分钟。如果删除失败,您将需要通过 CloudFormation 确定哪些资源未能删除,然后自行删除它们。
恢复您的快照
返回 RDS,然后选择页面左侧的“快照”选项。您应该会看到一个手动快照列表。

选择该快照,然后单击“操作” > “恢复快照”。
从这一步开始,您可以遵循为 Metabase 配置 RDS 中的相同步骤。
升级您的 Elastic Beanstalk 部署
如果您想继续使用 Elastic Beanstalk,可以按照以下步骤进行升级:
- 下载最后发布的 Beanstalk 构件文件。
- 解压该文件。
- 编辑 Dockerrun.aws.json 文件,并将镜像标签更改为最新可用版本。请始终避免使用
:latest,而是使用最新的版本号。 - 压缩该文件。
- 将文件作为新的 Beanstalk 版本上传到 AWS。
- 升级您的环境。
请记住,如果您使用的是 Metabase 的 Pro 或 Enterprise 版本,您需要使用 metabase/metabase-enterprise 仓库而不是 metabase/metabase 仓库。
阅读其他版本的 Metabase 的文档。