数据库管理

数据库管理

首先,如果这个问题偏离主题,请原谅我。我有一个开发好的社交网站,用户可以上传照片和更新状态。我考虑在 AWS EC2 上托管,但要开始使用,需要一张信用卡,而我还没有。所以我计划在其他托管服务提供商处托管我的网站,数字海洋,我有些疑惑。假设以后我必须在 AWS 上托管我的网站,我需要经历什么?我是新手,这将是我第一次在生产中托管,所以在跳到我不知道的东西之前有点好奇。如果有帮助的话,我正在使用 Django 和 PostgreSQL。任何帮助或指导都将不胜感激。谢谢!

答案1

将非交互式网站从一个提供商迁移到另一个提供商很容易:

  1. 将代码部署到新的提供商。
  2. 将数据同步到新的提供商。
  3. 更改 DNS 以指向新的提供商。

迁移交互式网站(例如社交网站)必须以不同的方式进行,否则最终会出现一些人将数据发布到新提供商,而一些人仍使用旧提供商的情况,因为 DNS 缓存会在不同的时间过期。

我已成功在旧提供商中设置代理服务器(本例中为 HAProxy),并让其将所有请求代理到新提供商。在设置代理服务器并进行最终数据同步时,确实需要停机一段时间,但经过适当的准备,停机时间被限制在几分钟之内。

适当的准备工作是rsync针对所有静态文件(如图像、mp3、视频等)进行使用,并通过 SSH 隧道在数据中心之间设置 MySQL 复制(PostGreSQL 也可以进行复制)。迁移时,我们检查 MySQL 复制是否是最新的(新提供商中的从属服务器很少比旧提供商中的主服务器慢一秒以上),然后rsync再次运行。

对于仍在使用旧提供商的代理服务器的用户来说,额外的延迟约为半秒。这将根据您选择的两个提供商而有所不同。

我们还提前将 DNS 记录的 TTL 降低至每天 900,以便人们应该只会访问代理服务器 15 分钟。实际上,对于大多数人来说都是如此,但在 DNS 更改后的几周内,预计会看到一些流量。

相关内容