我是一名 Linux 管理员,对 AWS 有一定了解,曾协助一个团队在 t2.micro(符合免费套餐资格)的 AWS 实例上部署 Discourse。完成后,团队希望我将实施方法发布出来,以造福社区。
t2.micro 实例仅提供 8GB 存储空间,因此需要稍加规划。在查看一个已正常运行的 Discourse 安装后,我发现虽然最终 /var/discourse 目录可能会占用最大空间,但在安装过程中 /var/lib/docker 将会成为问题。
在启动实例后(该步骤不在本文讨论范围内,详见 https://docs.aws.amazon.com/quickstarts/latest/vmlaunch/step-1-launch-instance.html),我需要创建一个卷(弹性块存储,即 EBS 卷)并将其挂载到已创建的实例上。本例中,我创建了一个约 32GB 的通用 EBS 卷,将其附加后挂载到 /media/store(当然也可以轻松使用 /opt 或其他路径)。
接下来,只需创建 /media/store/discourse 和 /media/store/docker 目录,并将它们放置在文件系统的正确位置即可。
对于 /media/store/discourse,我使用了符号链接指向 /var/discourse,安装程序对此接受良好;但对于 Docker,则必须使用绑定挂载(bind mount)。我已将以下内容添加到 /etc/fstab,创建了 /var/lib/docker 目录,然后执行挂载:
/media/store/docker /var/lib/docker none bind 0 0
我们仍在配置邮件功能(将使用 AWS SES),但以上就是我们在 t2.micro 实例上成功运行安装程序的方法。该 32GB EBS 卷的费用约为每月 3 美元。