迁移到具有新数据库和新 S3 存储桶用于备份和上传的新服务器

您好,

我目前正在将我们的服务器从现有的基于 Bitnami 的部署(一个相当旧的版本)迁移到 AWS 中使用最新 Discourse 版本的官方支持的安装。这个新的安装有一个外部的 Elasticache 和 RDS 实例,并且还将使用 S3 进行备份和上传。

我有两个问题:

  1. 旧的 Discourse 服务器版本相当旧——通过在新 Discourse 服务器上进行备份/恢复,它会自动运行所有相关的升级命令吗?
  2. 如果我将备份文件复制到新服务器上的新 Discourse Docker 容器中,并在 命令行 上启动恢复,我设置在新配置中的新存储桶值是否会在恢复过程中被覆盖,还是会使用我的新值?我假设我的新数据库会从备份中填充,然后在退出容器并运行 ./launcher rebuild app 时,会使用我的新的 S3 值。

如果我的假设是正确的,那么在执行恢复之前,我是否应该将旧 S3 存储桶的内容复制到新的存储桶中?

进行此类带有备份的迁移还有其他需要注意的地方吗?

提前感谢。

也许我遗漏了什么,但您为什么要创建新的存储桶?设置具有适当生命周期规则的新备份存储桶似乎可以,但如果现有的 Discourse 实例正在使用 S3 上传存储桶,您将会遇到一些问题。

1 个赞

我们需要新存储桶的 2 个原因:

  1. 我不能 100% 确定从 Bitnami 迁移是否能顺利进行,所以万一我们需要中止迁移,我们不想影响任何现有数据。
  2. 我们更改了存储桶的命名方式,所以认为为这个目的设置 2 个全新的存储桶会更简单。

我最担心的是第 1 点,所以只是格外小心。

您对新的上传存储桶有什么顾虑?旧的 Discourse 服务器将被设置为只读模式。计划是,一旦新服务器启动并经过验证,我们将停止旧服务器,将 DNS 更改为新服务器,然后清除 CDN(Cloudfront)中的缓存,然后向公众开放。

我没注意到你要把数据从旧的存储桶复制过来。看了看 AWS,看起来很直接。如果是我,我不会在迁移到 AWS 或其他新服务器之前乱动更改存储桶。

官方支持??我不太确定。

强烈建议你在迁移到新服务器之前先更新 Discourse。
在旧实例上,建议你在迁移之前将 S3 配置移动到 app.yml(如果尚未在那里)。

这是你可以轻松测试而不会影响生产环境的事情。

我个人会尽一切努力避免在同一时间做这两件事。

  1. 看看你是否可以完全避免移动存储桶(bucket)
  2. 如果不能,请在从 Bitnami 迁移之后再进行。
1 个赞

我对这种安装方式的附加价值主张非常好奇。
从关于不受支持的安装的大量帖子来看,除非人们是为了学习/实验,否则它带来的麻烦多于益处。

从 Discourse 的角度来看,这种设置可能是不受支持的安装,但从企业 IT 组织的观点来看,RDS 和 Elasticache 可能是标准的,而 Discourse 标准安装则会显得格格不入。