在 Amazon Web Services (AWS) 上使用 Lightsail、SES 和 Route 53 安装 Discourse

:information_source: 本主题涵盖了如何使用官方安装说明,并使用 AWS 服务作为 DNS 提供商(Route 53)、邮件提供商(SES)和云服务器提供商(Lightsail)来安装 Discourse。

云服务器

Lightsail

  • 1 GB 内存的默认配置对于小型 Discourse 社区来说已经足够。对于大型社区,我们建议使用 2 GB 内存。

^ $5/月即可获得满足 Discourse 最低要求的服务器,我使用的是 $10/月的服务器,但认为 $5/月也应该可以。

邮件服务器

您无法再次获取密钥,但如果丢失了,可以创建一个新的来使用。

域名

分步设置

  1. 按照 Route 53 文档购买域名。

如果您在此步骤收到“无法处理”的电子邮件,AWS 可能需要先审核您的账户,请提交支持工单,让他们在您的账户审核完毕并可以开始购买时通知您。

  1. 设置 DNS 记录
    进入 Route 53 控制台

选择托管区域 → 创建托管区域 → 填写您的域名 → 向下滚动,点击创建托管区域

点击域名,添加一个值为您的 Lightsail 云服务器 IP 地址的 A 记录,您可以在 Lightsail 控制台中找到它。(红色框内)

  1. 设置 SES
    进入 SES 控制台

选择已验证的身份 → 创建身份 → 填写您的域名(类型:域名)-> 向下滚动,点击创建身份
创建身份 → 填写您将用于注册管理员帐户的电子邮件地址(类型:电子邮件地址)-> 向下滚动,点击创建身份


由于我们在 Route 53 中注册了域名,验证大约需要 5 分钟,您将收到一封验证电子邮件地址的邮件。

当两者都验证通过后,点击域名,找到发布 DNS 记录,将 DNS 对复制粘贴到您的 Route 53 中,在您在第 2 步创建的托管区域下。

转到 SMTP 设置并点击创建 SMTP 凭证,按照步骤操作,然后下载包含 SMTP 用户名和密码的 CSV 文件。

SMTP 端点也在此页面的下方列出。

  1. 配置 Discourse
    以上步骤涵盖了 官方安装说明 中的步骤 1-3。请继续按照步骤 4-6 进行操作。
您的 Discourse 主机名? [discourse.example.com]: // 您的域名
管理员帐户的电子邮件地址? /[me@example.com,you@example.com]: //您在 SES 已验证身份中验证过的那个
SMTP 服务器地址? [smtp.example.com]:  // SMTP 端点
SMTP 端口? [587]: // 使用默认值
SMTP 用户名? [user@example.com]: // 在您下载的 CSV 文件中
SMTP 密码? [pa$$word]: // 在您下载的 CSV 文件中
Let's Encrypt 帐户电子邮件? (输入以跳过) [me@example.com]: // 使用默认值
可选 Maxmind 许可证密钥 () [xxxxxxxxxxxxxxxx]: // 使用默认值

等待安装完成,然后您就可以使用设置中提供的电子邮件地址注册管理员帐户了。

  1. 安装后
    当您准备好向新用户介绍您的社区时,请申请 SES 生产访问权限。
在用例描述中,解释您计划如何使用 Amazon SES 发送电子邮件。为了帮助我们处理您的请求,您应该回答以下问题:

您计划如何构建或获取您的邮件列表?

您计划如何处理退信和投诉?

收件人如何选择退出接收您的电子邮件?

您是如何选择您在此请求中指定的发送速率或发送配额的?

建议按照 URL 中的申请指南进行操作,但这不能保证获得批准,如果您收到拒绝邮件,请尝试添加新用户注册列表的屏幕截图,并告知他们新用户正在等待激活电子邮件。

3 个赞

有人能提供一个在 AWS Lightsail 上使用 SES 托管 Discourse 的完整分步教程吗?

您认为有什么不对劲吗?

3 个赞

我在以下链接中找到了一个非常有用的指南,用于对 SES 配置进行试运行:

只需将其中显示的脚本复制/粘贴到一个新的脚本文件中,修改端点(例如 email-smtp.us-east-1.amazonaws.com ),它似乎就能正常工作。出于某种原因,telnet 方法似乎无法与 SES 一起使用,原因不明。

哦,对了,关于那个指南,我还做了这个来“创建一个配置集”,不确定它是否对 Discourse 实际上是必需的,但我还是做了,以便能够按照脚本中的描述来测试 SES:Creating configuration sets in SES - Amazon Simple Email Service

这里还有另一件让我困惑的事情:Publishing an MX record for Amazon SES email receiving - Amazon Simple Email Service

对于应用于您的域的必需的 DNS MX 记录,AWS SES 以如下格式提供记录的“值”:

10 inbound-smtp.region.amazonaws.com

但是,我的域名注册商给了我一个错误,说“值必须是主机名”,也就是说,它不喜欢前面带有“10 ”的内容。AWS 控制台没有直接告诉您这意味着什么或该怎么做,因此根据那里链接的文档,您需要为您的 DNS 注册商执行此操作:

一些 DNS 提供商的管理控制台包含记录 和记录 优先级 的单独字段。如果您的 DNS 提供商是这种情况,请为 优先级 值输入 10,为 输入入站邮件端点 URL。

在您的域名注册商仪表板中应该看起来像这样:

1 个赞

作为后续,也许我们可以扩展这篇文章,包括设置 AWS Cloudfront CDN?因为它与此处描述的其余 AWS 堆栈非常吻合。我通过遵循这篇文章的建议运行了它

但包含一个更详细的指南将是很棒的。