はじめに
こんにちは、エンジニアの mori です。
Mattermos v5.29のアップデートでMattermostOmnibus機能が提供されましたね。
Debianパッケージマネージャ(aptコマンド)を使ってUbuntuにMattermostを簡単にインストールできるようになったとのことでした。
この機能とAWSのCloudformationを利用して、「AWS上に爆速でMattermostを構築する」というのを今回はやってみたいと思います。
ざっと30分から1時間程度でできます。
CloudFormationのテンプレートも提供いたしますので、この記事を見ながら、ハンズオン形式で試してみてはいかがでしょうか。
今回つくるものは?
ざっくりですが、今回作ってみる環境の構成図は下のような感じになります。

Cloudformationを利用して、VPCやネットワーク、EC2(Ubuntu)を作成します。
EC2上に、プロキシ用のWebサーバー(nginx)、データベース(PostgreSQL)、ビジネスチャットツール(Mattermost)が構築されます。
まずは準備するもの!!
- AWSアカウント ※検証用のアカウント
- EC2のキーペア
- ドメイン、メールアドレス
- CloudformationのYamlファイル(ここからダウンロードください(mattermost_ec2.yaml))
さぁ、やってみよう♪
- 準備したAWSアカウントにログインします。
- サービスの中から「Cloudformation」を選択します。
- 「スタックの作成」-「新しいリソース使用(標準)」をクリックします。

- ステップ1のテンプレートの指定
- 「テンプレートファイルのアップロード」を選択、「ファイルの選択」をクリックし、mattermost_ec2.yamlをアップロードしてください。
- アップロードが完了したら、「次へ」をクリックします。

- ステップ2のスタックの詳細を指定
- 「スタックの名前」を入力します。
スタック名は特に指定はありませんので自由につけていただいて大丈夫です。ここでは、「mattermost-handson」としておきます。 - 続いてパラメータ項目の「KeyPair」で準備したEC2のキーペアを選択ください。
- 「次へ」をクリックします。
- 「スタックの名前」を入力します。

- ステップ3のスタックオプションの指定
- 特に変更は不要です。「次へ」をクリックします。
- ステップ4のレビュー
- 内容を確認し、「スタックの作成」をクリックします。

- スタックの作成が開始されますので完了するまで待ちます。
構築が完了するとスタックのステータスが「CREATE_COMPLETE」になります。

- サーバのIPアドレスの確認
それではCloudformationで構築したサーバへ接続していきましょう。- AWSのコンソールのサービスからEC2を選択します。
- 左メニューからインスタンスを選択し、今回構築したEC2(handson-mattermost)を選択します。
- パブリックIPv4アドレスを確認します。

- サーバへの接続
- ターミナルを起動し、ログインしてください
- ユーザ名は「ubuntu」、秘密鍵を準備したキーペアを利用してください。
- Omnibusリポジトリの構成
$ curl -o- https://deb.packages.mattermost.com/repo-setup.sh | sudo bash
- Mattermost-omnibusのインストール
- 今回はSSL証明書の発行は行わず、HTTPでセットアップにします。
- インストールを続けてよいかを確認してきますので「Y」を入力してエンターキーを押してくださいね。
$ sudo MMO_HTTPS=false apt install mattermost-omnibus
:
Do you want to continue? [Y/n] Y
- しばらく待つと紫の画面でPackage confiurationが起動します。
- ドメイン名を入力してください。
- メールアドレスを入力してください。


- インストールが完了しました。こんな画面が表示されます。

おめでとうございます。インストール完了です。
(補足)インストール時に「MMO_HTTPS=false」のオプションをつけないとエラーになります。Certbot(Let's Encrypt)を使ってSSL証明書を発行し、HTTPS通信でセットアップするのですが、おそらく、DNSを先に設定しないとダメなようでした。
使ってみる
- ブラウザからIPアドレスで接続してください。
アカウント作成のページが表示されますので、指示に従って、メールアドレス、ユーザ名、パスワードを入力して、アカウントを作成してください。

- 管理者(administrator)としてユーザが作成されます。
- 今回はチームを作成します。
※システムコンソールからの設定についてはまた別の記事で紹介したいと思います。

- 作成するチーム名を入力します

- チームURLを入力します。

- チーム作成完了です。あとはビジネスチャットをお楽しみください。

あとかたづけ
このまま使うのであれば問題ありませんが、放置してしまうとEC2が課金され続けてしまいます。
今回はCloudformationで作成しましたので、スタックを削除することで綺麗に環境を削除することができます。
- スタック(mattermost-handson)を選択し、削除をクリックします。

- 確認画面が表示されますので、「スタックの削除」をクリックします。

補足
本記事では、取り扱ったMattermostOmnibus機能の詳細は公式ガイドを参照ください。
最後に、弊社D-makeでは、ビジネスチャットツールであるMattermost導入支援サービスを行っております。ビジネスチャットの導入・検討されている方はご気楽にご相談ください。
