Установка Discourse на Amazon Web Services (AWS) с использованием Lightsail, SES и Route 53

:information_source: Эта тема посвящена установке Discourse с использованием официальных инструкций по установке с сервисами AWS в качестве провайдера DNS (Route 53), почтового провайдера (SES) и облачного сервера (Lightsail).

Облачный сервер

Lightsail

  • По умолчанию 1 ГБ ОЗУ достаточно для небольших сообществ Discourse. Для более крупных сообществ мы рекомендуем 2 ГБ ОЗУ.

^ За $5 в месяц можно получить сервер, отвечающий минимальным требованиям Discourse. Я использую сервер за $10 в месяц, но считаю, что вариант за $5 в месяц тоже подойдёт.

Почтовый сервер

Вернуть секретный ключ невозможно, но если вы его потеряли, можно создать новый.

Домен

Пошаговая настройка

  1. Следуйте документации Route 53 для покупки домена.

Если на этом этапе вы получили письмо с сообщением «не удалось обработать», возможно, AWS сначала необходимо проверить ваш аккаунт. Откройте запрос в службу поддержки, чтобы они уведомили вас, когда проверка будет завершена и вы сможете начать покупку доменов.

  1. Настройка DNS-записей

Откройте консоль Route 53.

Выберите «Управляемые зоны» → «Создать управляемую зону» → введите имя вашего домена → прокрутите вниз и нажмите «Создать управляемую зону».

Нажмите на имя домена, добавьте A-запись со значением IP-адреса вашего облачного сервера Lightsail (его можно найти в консоли Lightsail). (Красный блок)

  1. Настройка SES

Откройте консоль SES.

Выберите «Проверенные идентификаторы» → «Создать идентификатор» → введите имя вашего домена (тип: домен) → прокрутите вниз и нажмите «Создать идентификатор».

Создать идентификатор → введите адрес электронной почты, который вы будете использовать для регистрации учётной записи администратора (тип: адрес электронной почты) → прокрутите вниз и нажмите «Создать идентификатор».


Поскольку домен зарегистрирован в Route 53, проверка займёт около 5 минут. Вам придёт письмо для подтверждения адреса электронной почты.

Когда и домен, и адрес электронной почты будут проверены, нажмите на имя домена, найдите раздел Опубликовать DNS-записи, скопируйте пару DNS-записей и вставьте их в Route 53 в созданную вами на шаге 2 управляемую зону.

Перейдите в раздел «Настройки SMTP» и нажмите «Создать учётные данные SMTP», следуйте инструкциям и скачайте CSV-файл, содержащий имя пользователя и пароль SMTP.

Адрес 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? (ENTER, чтобы пропустить) [me@example.com]: // используйте значение по умолчанию
Опциональный ключ лицензии Maxmind () [xxxxxxxxxxxxxxxx]: // используйте значение по умолчанию

Подождите завершения установки, затем вы сможете зарегистрировать учётную запись администратора с помощью адреса, указанного выше в настройках.

  1. После установки

Когда вы будете готовы представить своё сообщество новым пользователям, подайте заявку на доступ SES к производственному режиму.

В описании случая объясните, как вы планируете использовать Amazon SES для отправки писем. Чтобы помочь нам обработать ваш запрос, ответьте на следующие вопросы:

Как вы планируете формировать или получать свою почтовую базу?

Как вы планируете обрабатывать отказы и жалобы?

Как получатели могут отказаться от получения писем от вас?

Как вы выбрали скорость отправки или квоту отправки, указанные в этом запросе?

Рекомендуется следовать руководству по подаче заявки по указанной ссылке, однако это не гарантирует одобрения. Если вы получили письмо об отказе, попробуйте добавить скриншоты списка регистрации новых пользователей и сообщить, что новые пользователи ожидают письмо с активацией.

4 лайка

Может ли кто-нибудь, пожалуйста, предоставить подробное пошаговое руководство по размещению Discourse на AWS Lightsail с использованием SES?

Есть ли у вас основания полагать, что что-то не так?

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, описанный здесь. Я настроил его, следуя советам из этого поста: How to setup cloudfront for discourse - #6 by Nacho_Caballero, но было бы здорово включить более подробное руководство.