[ガイド] AWS EC2 で Discourse をホストする

Discourse はオープンソースのフォーラムソフトウェアで、ホスティングのやり方さえ分かれば、最小限の手間でフォーラムを運営できます。公式ガイド では DigitalOcean でのインストール手順が解説されていますが、AWS EC2 上で動作させるにはいくつかの調整が必要です。コミュニティからは AWS EC2 向けの公式ガイドの作成を求める声が上がっていましたが、Discourse チームはバーメタルの Linux サーバー上でホスティングを行っているため、その経験が不足していました

この投稿では、AWS EC2 上で Discourse をホスティングする方法を示すことで、そのギャップを埋めることを目指します。幸いなことに、AWS EC2 と DigitalOcean でのホスティングの違いは、最初の部分である「新しいクラウドサーバーの作成」「Create New Cloud Server」 だけですので、そこのみを解説します。

AWS EC2 インスタンスの起動方法については既にご存知だと仮定します。もしご存じない場合は、素晴らしい YouTube 動画を参照してください。通常のフローに加えて、いくつか注意すべき点があります。

エラスティック IP

エラスティック IP を設定してください。これは EC2 のパブリック IP よりも静的です。後者はインスタンスを停止して再起動するたびに変わってしまいます。静的な IP を使用することで、DNS 解決のエラーリスクを低減できます。

ディスク容量

Docker コンテナは Redis と PostgreSQL を実行するため、かなりのディスク容量を必要とします。デフォルトの 8 GiB の EBS(Elastic Block Store)ブロックでは不十分です。私は 30 GiB のブロックを設定しています。

もしすでにデフォルトの 8 GiB ブロックを設定していた場合でも、ご安心ください。AWS コンソールでサイズを変更し、インスタンスを停止して再起動するだけです。これで、なぜエラスティック IP が必要なのかがお分かりいただけるでしょう。再起動しても IP は変わらず、DNS 解決にも影響しません!

受信ルール

受信ルールでポート 80 と 443 をソース 0.0.0.0/0 に対して開放していることを確認してください。簡単にするために私はこれらを広く開放していますが、必要に応じて適切に範囲を制限してください。

結論

AWS EC2 上での Discourse ホスティングについてご質問がある場合は、https://meta.discourse.org/@yiksanchan までご連絡ください。できる範囲でお手伝いします。

楽しいディスコースライフを!

「いいね!」 7