Lightsail、SES、ルート53を使ったAmazon Web Services (AWS)上でのDiscourseのインストール

:information_source: このトピックでは、DNSプロバイダー(Route 53)、メールプロバイダー(SES)、およびクラウドサーバープロバイダー(Lightsail)としてAWSサービスを使用した公式のインストール手順に従ってDiscourseをインストールする方法について説明します。

クラウドサーバー

Lightsail

  • デフォルトの1 GB RAMは、小規模なDiscourseコミュニティには問題なく機能します。大規模なコミュニティには2 GB RAMをお勧めします。

^ $5/月で、Discourseの最小要件を満たすサーバーを入手できます。私は$10/月のものを使用していますが、$5/月でも機能すると思います。

メールサーバー

シークレットキーは再度取得できませんが、紛失した場合は新しいものを作成して使用できます。

ドメイン

ステップバイステップ設定

  1. Route 53のドキュメントに従ってドメインを購入します。

このステップで「処理できません」というメールが届いた場合、AWSはまずアカウントを確認する必要があるかもしれません。サポートケースを送信して、アカウントが確認され購入可能になったら通知してもらうように依頼してください。

  1. DNSレコードの設定
    コンソールにアクセスします。

Route 53

ホストゾーン → ホストゾーンの作成 → ドメイン名を入力 → 下にスクロールしてホストゾーンの作成をクリックします。

ドメイン名をクリックし、LightsailクラウドサーバーのIPアドレスを値としてAレコードを追加します。これはLightsailコンソールで見つけることができます。(赤いブロック)

  1. SESの設定
    SESコンソールにアクセスします。

確認済みのID → IDの作成 → ドメイン名を入力(ドメインタイプ) → 下にスクロールしてIDの作成をクリックします。
IDの作成 → 管理者アカウントの登録に使用するメールアドレスを入力(メールアドレスタイプ) → 下にスクロールしてIDの作成をクリックします。


Route 53でドメインを登録したため、検証には約5分かかります。メールアドレスの検証メールが届きます。

両方が検証されたら、ドメイン名をクリックし、DNSレコードの発行を見つけ、ステップ2で作成したホストゾーンの下にあるRoute 53にDNSペアをコピー&ペーストします。

SMTP設定に移動し、SMTP認証情報の作成をクリックします。手順に従い、SMTPユーザー名とパスワードを含むCSVファイルをダウンロードします。

SMTPエンドポイントもこのページの下部に記載されています。

  1. Discourseの設定
    上記の手順は、公式インストール手順のステップ1〜3をカバーしています。ステップ4〜6を続けてください。
Discourseのホスト名ですか? [discourse.example.com]: //あなたのドメイン
管理者アカウントのメールアドレスですか? /[me@example.com,you@example.com]: //SES確認済みIDで確認したもの
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を使用してメールを送信する方法を説明してください。リクエストの処理を支援するために、次の質問に答える必要があります。

メーリングリストをどのように構築または取得しますか?

バウンスや苦情をどのように処理しますか?

受信者はどのようにメールの受信をオプトアウトできますか?

リクエストで指定した送信レートまたは送信クォータをどのように選択しましたか?

URLの申請ガイドに従うことをお勧めしますが、承認が保証されるわけではありません。却下メールが届いた場合は、新しいユーザー登録リストのスクリーンショットを追加し、新しいユーザーがアクティベーションメールを待っていることを伝えてみてください。

「いいね!」 3

DiscourseをSESを使用してAWS Lightsailでホストするための、適切なステップバイステップのチュートリアルを更新していただけますか?

何かが間違っていると信じる理由がありますか?

「いいね!」 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 スタックとうまく連携するはずです。この投稿からのアドバイスに従って実行できました。

しかし、より詳細なガイドを含めると良いでしょう。