AWS上にMattermostを構築する(TOPページ)
- SCS-C02 (AWS Certified Security - Specialty)の合格体験記(2025/3/2)
- (AWSと関係ない)LPIC-1に合格しました(2024/8/14)
- (AWSと関係ない)gitlabにコマンドでたくさんプロジェクト(リポジトリ)とブランチを作ってみる(2024/8/9)
- (AWSと関係ない)Java初学者へサポートする事を考えるを書きました。(2024/7/16)
- (AWSと関係ない)初心者向けPythonの課題を考える for MacOSを書きました。(2024/7/10)
- GCPで仮想サーバを作ってみたを書きました。(2024/2/23)
- Google Cloud 認定資格 Cloud Digital Leader の合格方法を書きました。(2024/1/21)
- Microsoft Certified: Azure Fundamentals (AZ-900)の合格方法の記事を書きました。(2023/9/4)
- Azureで仮想サーバを作ってみたを書きました。(2023/8/15)
- AWSのCLFの動画をつくりました。ただ最新版の試験に対応してないのと、全分野網羅してないです(作成時期忘れました)
- windows(wsl)、virtualBoxでAnsibleの開発環境を作るを書きました。(作成時期忘れました)
- wsl2上でSD-in-a-Boxを使ってローカルでScrewdriverを実行を試すを書きました。(作成時期忘れました)
- Professional Scrum Master I (PSM I) 合格体験記を書きました。(作成時期忘れました)
- Kubernetesの認定試験CKA(Certified Kubernetes Administrator)の勉強方法(新方式版)を書きました。(作成時期忘れました)
- ruby資格試験ポイントまとめを書きました。(作成時期忘れました)
- AWSの動画にチャレンジしてみました。AWS初めての方はよかったら見てね。
概要
AWSでMattermostを以下のような構成のクラウド環境で作成します。手動で行う方法と自動で行う方法を記載します。 ゴールはMattermostのログイン画面が表示されることです。作業時間は初心者の方で2~4時間程度かかると思います。画面操作に慣れれば1~2時間程度だと思います。 [f:id:ShootingBurst:20221101195039p:plain]
実施環境
- Windows 10(Macでも可能です。Macの手順は記載しておりませんので必要に応じて読み替えてください)
- WSL
- PowerShell
- VSCODE
- Chrome
- AWS
注意事項
- 本ドキュメントを参考に作業をする場合、jagisam.comは使えません。自身で取得したドメインに読み替えてください。
- 作業中はEC2を停止しないでください。IPが変わると動かなくなります。
- 手動編はEC2とRDSはシングル構成で構築します。時間短縮のためです。
- 各ページの表記方法は意図的に統一感を出してません。これはmarkdownの記事の見え方を試しているからです。
- 手順はまっさらな状態からテストはできてないので、どこかの手順でつまずく可能性があります。
構築の流れ(手動編)
なんかリンク動かなくなってるね(2024/8/10に気づいた。ページは存在している)
- [https://jagi.hatenablog.com/entry/2022/10/23/221152?_ga=2.1784946.251947318.1666442363-1104881426.1665140717:title]
- [https://jagi.hatenablog.com/entry/2022/10/23/221207?_ga=2.5838960.251947318.1666442363-1104881426.1665140717:title]
- [https://jagi.hatenablog.com/entry/2022/10/23/221221?_ga=2.5838960.251947318.1666442363-1104881426.1665140717:title]
- [https://jagi.hatenablog.com/entry/2022/10/24/212441?_ga=2.5838960.251947318.1666442363-1104881426.1665140717:title]
- [https://jagi.hatenablog.com/entry/2022/10/25/213847?_ga=2.106648640.251947318.1666442363-1104881426.1665140717:title]
- [https://jagi.hatenablog.com/entry/2022/10/26/222208?_ga=2.106648640.251947318.1666442363-1104881426.1665140717:title]
- [https://jagi.hatenablog.com/entry/2022/10/26/223147?_ga=2.106648640.251947318.1666442363-1104881426.1665140717:title]
- [https://jagi.hatenablog.com/entry/2022/10/26/223322?_ga=2.106648640.251947318.1666442363-1104881426.1665140717:title]
- [https://jagi.hatenablog.com/entry/2022/10/26/223530?_ga=2.106648640.251947318.1666442363-1104881426.1665140717:title]
- [https://jagi.hatenablog.com/entry/2022/10/28/215225?_ga=2.194097390.251947318.1666442363-1104881426.1665140717:title]
構築の流れ(自動編)
- [https://jagi.hatenablog.com/entry/2022/10/23/221140?_ga=2.201922258.251947318.1666442363-1104881426.1665140717:title]
本記事は以上です。 クラウド環境の作成の手助けになれば嬉しいです。
参考文献
本記事の作成に当たり、以下の情報も参考にさせて頂きました。ありがとうございました。
- MattermostをAWSで構築してみた
- [https://www.benjamin.co.jp/blog/technologies/lambda-1-create/:title]
その他にたくさんのページを参考にしました、急いで作ったら掲載元がわからなくなりました。
あとがき
- 筆者はいつも自動構築を実施しているので、逆に手動構築の手順が難しかったです。しんどいです。
- 実際に構築の経験させてくれる方のオファー待ってます。経験積んで週末副業に繋げるのが今の目標です。
- コストカットを取り入れてます。その方法はIPを固定しないこと。ドメインを無料で利用していること。cloudformationを利用して、リソースの作成、削除を簡単にしていること。なお、IPは固定するとかなり楽になります。
- 当ブログはこれまでの構築時のメモを元に一週間で執筆しました。構築は別途2週間程度かけて少しずつ進めました。
- どういう表現をすると見やすくなるかという点を考えながら執筆しました。いろいろ試した結果、基本は表で示し、分かりづらい場面に画面の画像で補足する形が良いと感じました。また画像はgifアニメーションにした方が分かりやすいです。
- 当ブログを執筆中に、markdown(文書)では表現しずらい箇所が多々あるのと、文書だけだとつまらないので、久々にゆっくりムービーメーカーで動画にしようかなと思いましたが、今回は一旦ここで区切りとします。
AWS Certified Solutions Architect - Associate 試験の学習計画サンプル(簡易版)
何を学習するのか(必須項目)
- AWSの基礎
なぜ学習するのか?(必須項目)
- 業務で使っているため、理解を深め、行範範囲拡大につなげたい
- 将来、〇〇の仕事がしたいので、まず◆◆の知識を得て、段階的にスキルアップしたい。
ゴール(必須項目)
資格試験SAAが合格
学習方法
- 教科書を読む
- web問題集(模擬試験)
- インターネットの合格体験記を読む
- 自分のノートを作る
学習スケジュール
◆1セット目
- day1 教科書をさらっと1周読む
- day2 模擬試験〇〇~〇〇まで実施。並行してノート作成
- ...
- dayX 模擬試験〇〇~〇〇まで実施。並行してノート作成
- dayX ノート読む
◆2セット目
- dayX 教科書をさらっと1周読む
- dayX 模擬試験〇〇~〇〇まで実施。並行してノート作成
- ...
- dayX 模擬試験〇〇~〇〇まで実施。並行してノート作成
- dayX ノート読む
◆3セット目
- dayX 教科書をさらっと1周読む
- dayX 模擬試験〇〇~〇〇まで実施。並行してノート作成
- ...
- dayX 模擬試験〇〇~〇〇まで実施。並行してノート作成
- dayX ノート読む
◆試験前準備
- dayX ノート読む
- dayX 模擬試験を通しで行う。80点以上取れればOK。取れるまでノート読みと模擬試験を繰り返す。答えを暗記してもOK。実力はついている
- dayX 試験申し込み
- dayX 会社に受験予定の届け出
◆試験
- dayX 受験
Mattermost構築の流れ(手動編)Part10 Mattermost起動後の設定
- ドキュメント書いた後に動作確認はしてません。
Mattermost起動後の設定
初期ユーザの作成(管理者ユーザの作成)
Mattermostが初めて立ち上がった画面で以下設定を行う。
| 設定項目 | 設定値 |
|---|---|
| What's your email address? | 自分のメールアドレス |
| Choose your username | admin (任意です。) |
| Choose your password | 難しめのパスワードを設定(大文字小文字記号あり) |
- この設定だけでMattermostは動かせる状態になります。他のユーザと会話がしたければこの後の設定が必要である。
- 次に進むには、
Go to System Consoleをクリック
SITE CONFIGURATION
- 以降の設定は他ユーザへのinviteメールを送信するための設定です。
前提条件
- SESが設定済であること
Notifications
- 左メニューの
SITE CONFIGURATION→Notificationsをクリック - 以下の項目だけ変更する。他はデフォルトでOK。
- 以下を設定後、
Saveボタンクリック。
| 設定項目 | 値 |
|---|---|
| Enable Email Notifications | true |
| Notification Display Name | No-Reply |
| Notification From Address | mattermost@jagisama.com |
| Support Email Address | mattermost@jagisama.com |
AUTHENTICATION
Email Authentication
- 左メニューの
AUTHENTICATION→Emailをクリック - すべてTrueにする。設定後、
Saveボタンクリック。
Signup
- 左メニューの
AUTHENTICATION->Signupをクリック。 - 以下を設定後、‘Save`ボタンクリック。
| 設定項目 | 値 |
|---|---|
| Enable Account Creation: | true |
| Restrict new system and team members to specified email domains: | 未設定でOK |
| Enable Open Server: | false |
| Enable Email Invitations: | true |
ENVIRONMENT
WebServer
- 左メニューの
ENVIRONMENT→WebServerをクリック - 以下を設定後、
Saveボタンクリック。その後Test Live URLをクリックする。成功するとTest successful. This is a valid URL.が表示されます。
| 設定項目 | 値 | 備考 |
|---|---|---|
| Site URL: | http://ec2-13-112-58-150.ap-northeast-1.compute.amazonaws.com:8065 | 作成したインスタンスのpublic DNSに読み替えること |
| Listen Address | 8065 |
- portを80に変えたかったが、単純に変えるだけではエラーになって変えられなかった。
SMTP
- 左メニューの
ENVIRONMENT→SMTPをクリック
| 設定項目 | 値 |
|---|---|
| SMTP Server: | Simple Mail Transfer Protocol (SMTP) settings画面のSMTP endpointの値を使う。例: email-smtp.ap-northeast-1.amazonaws.com |
| SMTP Server Port: | 465 |
| Enable SMTP Authentication: | true |
| SMTP Server Username: | (SMTP ユーザー名の値を使う。SESのSMTP作成時画面に表示されたものです。ファイルでダウンロードもしています。) |
| SMTP Server Password: | (SMTP パスワードの値を使う。SESのSMTP作成時画面に表示されたものです。ファイルでダウンロードもしています。) |
| Connection Security: | TLS |
| Skip Server Certificate Verification: | false |
| Enable Security Alerts: | true |
- 上記を設定後、
Saveボタンクリック。次にtest connectionボタン押下し、メールが受信できることを確認する。送信に失敗したら、エラーやServer Logsの画面ををみる。Saveボタンクリック前に実行すると動かないので注意。No errors were reported while sending an email. Please check your inbox to make sure.と表示されるとメール送信成功です。メールを確認しましょう。

これで設定は全て完了です。
Mattermostを使ってみましょう。お疲れ様でした。
inviteの操作方法メモ
左にあるメニューのInvite membersでinviteしたい人のメアドを入力する。すると相手にメールが通知され、そのメールを開くとアカウント作成画面になる。そのユーザのメアドはSESに登録しておく必要がある。
Mattermost構築の流れ(手動編)Part9 SES
- ドキュメント書いた後に動作確認はしてません。
SES
用途
- Mattermostでメール送信するために利用します。一人でMattermostを試験的に使う場合は必要ありません。
- よくわからないですが、SMTP設定とidentityというものを作り、そこにメールアドレスを登録すると利用可能になります。
- SESのデフォルト設定でメールを送信するには、事前に送信先メールアドレスの登録が必要である。Mattermostで他のユーザにinviteメール等を送るときはその人のメアド登録が必要である。当然自分のメアド登録も必要である。
画面起動
SMTP settings
- 左のメニューから
SMTP settings(SMTP設定)をクリックし、Create SMTP credentials(SMTP認証情報の作成)ボタンをクリック。(最近名前が変わった) 作成ボタンクリック- 画面に掲載された情報をテキスト等に控えておいてください。また
認証情報のダウンロードボタンをクリックし、保存しておく。 閉じるボタンをクリックすると設定完了- 最近ボタン名などが日本語化されたようですが、画像は英語となっています。

↓
この画面の以下の項目がMattermostで必要となるので軽く目を通しておく。
Create Identity(送信先のメールアドレスの登録)
設定
- 左メニューの
Verified identities(検証済み ID)をクリックし、create identity(IDの作成)ボタンをクリック

identity typeにemail addressを選択- 送信したいメールアドレスを登録する。1個だけです。
create identityボタンをクリック- このあと設定したメアドにメールが送られてくるので認証ボタンを押す。検証に成功しました画面が表示されて設定完了。
statusがVerifiedとなる

テスト
- 画面右上の
send test emailボタンをクリックし、メール受信できることを確認する
- Message details の設定項目
| 画面名 | 設定項目 | 設定値 |
| Message details | Email format | Formatted |
| From-address | 自分メールアドレス | |
| Scenario | Custom | |
| Custom recipient | 自分メールアドレス | |
| Subject | テスト件名 | |
| Body - optional | テスト本文 | |
| Configuration set - optional | デフォルトのままでOK | |
| Additional configurations - optional |
デフォルトのままでOK |
他のメールアドレスの登録
Mattermostでinviteメールを送りたい場合はもう1つ自分のメールアドレスを登録してください。inviteしない場合は必要ありません。
Create Identity(送信元のメールアドレスの登録)
Mattermostのinviteのメールを自分のメールアドレスを送信元として送るのであれば必要はない。がそれだとおもしろくない。 mattermost@jagisama.comから送れるようにしたい。そういうときの設定
設定
- 左メニューのVerified identitiesをクリックし、create identityボタンをクリック

identity typeにDomainを選択Domainにjagisama.comを設定。(toki.jagisama.comでもいいのかもしれないが試してない)- 他はデフォルトでよい
create identityボタンをクリック- この後、CNAMEレコード3つが自動で
route 53のjagisama.comに設定されstatusがVerifiedになり設定完了となる。
テスト
- 画面右上の
send test emailボタンをクリックし、メール受信できることを確認する

| 画面名 | 設定項目 | 設定値 |
|---|---|---|
| Message details | Email format | Formatted |
| From-address | mattermost@jagisama.com | |
| Scenario | Custom | |
| Custom recipient | 自分メールアドレス | |
| Subject | テスト件名 | |
| Body - optional | テスト本文 | |
| Configuration set - optional | デフォルトのままでOK | |
| Additional configurations - optional |
デフォルトのままでOK |
こうなっていればOK

Mattermost構築の流れ(手動編)Part8 S3、ASM、CodeBulid
S3
用途
- ビルドのログを保存するためにS3をバケットを作成します。
バケット作成
- AWSコンソール画面の検索窓に「S3」と入力→
S3をクリック→バケットを作成ボタンをクリック - 設定は以下の項目だけでOKです。その他の項目はデフォルトのままでOK。バケット名はlambdのときと同じで一意である必要があります。
| 画面 | 設定項目 | 設定値 |
|---|---|---|
| 一般的な設定 | バケット名 | mattermost-codebuild |
| タグ(0) - オプション | キー | Name |
| 値 - オプション | mattermost-codebuild |
- 追記 作りはしますが手動版では使ってません。書き込み権限がなくエラーになります。自動版の手順では使ってます。
AWS Systems Manager
用途
サーバの構築にはAnsibleを利用します。AWS Systems ManagerはAnsibleがEC2にSSHログインするために使う秘密鍵を保存するために利用します。AWS Systems Managerはパスワードとか機密性の高いデータを保存する場所です。
パラメータを作成
| 画面 | 設定項目 | 設定値 |
|---|---|---|
| パラメータの詳細 | 名前 | ssh_private_key |
| 説明 — Optional | Save private key to ssh to EC2. | |
| 利用枠 | 標準 | |
| タイプ | 安全な文字列 | |
| KMS キーソース | 現在のアカウント | |
| KMS キー ID | alias/aws/ssm | |
| 値 | 自分がEC2にsshするときの秘密鍵の中身を張り付ける | |
| タグ — Optional | キー | Name |
| 値 | mattermost-asm |
CodeBulid
用途
- git pushしたあとに自動で何かしてくれるものです。
- 何かでよくあるのが、コードチェック、デプロイで、今回はこの2つを行います。
buildspec.ymlの作成
ロール作成
CodeBuildからAWS Systems Managerにアクセスを許可するロールを作成します。- AWSコンソール画面の検索窓に「IAM」と入力し、
IAMをクリックする。 - 左メニューの
ロールをクリック→ロールを作成ボタンをクリック - 設定項目は以下。短時間でロールを削除してやり直す場合はエラーになることがあるので別ロール名とするか、いくらか時間を空けた方がよい。
| 画面 | 設定項目 | 設定値 |
|---|---|---|
| 信頼されたエンティティを選択 | 信頼されたエンティティタイプ | AWS のサービス |
| ユースケース | CodeBuild | |
| 許可を追加 | 許可ポリシー | AmazonSSMReadOnlyAccess |
| 名前、確認、および作成 | ロール名 | codebuild-mattermost-role |
| 説明 | This is the role that holds access to ASM and applies to CodeBuild. | |
| タグを追加 | キー | Name |
| 値 - オプション | mattermost-codebuild-role |
CodeBuildのプロジェクト作成
- AWSコンソール画面の検索窓に「CodeBuild」と入力し、
CodeBuildをクリックする。 ビルドプロジェクトを作成するボタンをクリックする。
| 画面 | 設定項目 | 設定値 |
|---|---|---|
| プロジェクトの設定 | プロジェクト名 | mattermost-codebuild ※ プロジェクト作成ボタンクリック後にThe policy is attached to 0 entities but it must be attached to a single role が表示される場合は名前を変えてください。 |
| 説明 - オプショナル | Code check and deploy for mattermost. | |
| ビルドバッジを有効にする | チェックを入れない | |
| このプロジェクトが開始できる同時ビルドの数を制限する | チェックを入れない | |
| キー | Name | |
| 値 | mattermost-codebuild | |
| ソース | ソースプロバイダ | GitHub |
| リポジトリ | GitHub アカウントのリポジトリ ※OAuth を使用して接続するを選択した後、GitHubに接続ボタンをクリックします。すると表示が変わり「GitHub アカウントのリポジトリ」を選択可能です。Githubと接続済みだと最初から「GitHub アカウントのリポジトリ」が選択可能です。 |
|
| forkしたGitHub アカウントのリポジトリ | ||
| ソースバージョン - オプショナル | main | |
| 追加設定 | (デフォルトのままでOK) | |
| 環境 | 環境イメージ | マネージド型イメージ |
| オペレーティングシステム | Ubuntu | |
| ランタイム | Standard | |
| イメージ | aws/codebuild/standard:6.X ※最新を選択すること |
|
| イメージのバージョン | aws/codebuild/standard:6.X-XX.XX.XX ※最新を選択すること |
|
| 環境タイプ | Linux | |
| (特権付与)Docker イメージを構築するか、ビルドで昇格されたアクセス権限を取得するには、このフラグを有効にします | チェックを入れない | |
| サービスロール | 既存のサービスロール | |
| ロールの ARN | codebuild-mattermost-role | |
| AWS CodeBuild にこのサービスロールの編集を許可し、このビルドプロジェクトでの使用を可能にする | チェックする | |
| (追加設定) | 環境変数(名前) | ssh_private_key |
| 環境変数(値) | ssh_private_key | |
| 環境変数(タイプ) | パラメータ | |
| 上記以外はデフォルトでOKです | - | |
| Buildspec | ビルド仕様 | buildspec ファイルを使用する |
| Buildspec 名 - オプショナル | (デフォルトのままでOK) | |
| バッチ設定 | バッチ設定を定義 - オプショナル | チェックを入れない |
| アーティファクト | タイプ | Amazon S3 |
| バケット名 | mattermost-codebuild ※自分で作ったバケット名を入力してください。バケット名は一意です。 |
|
| 上記以外はデフォルトでOKです | - | |
| ログ | CloudWatch Logs - オプショナル | チェックを入れる |
| 上記以外はデフォルトでOKです | - |
Ansible設定ファイルの修正
- 設定ファイルでEC2とRDSエンドポイントを修正する必要があります。EC2、RDSの画面からコピペします。画像にはないですが、任意作業で
alb_dnsも修正しても良いです。 - forkしたリポジトリをcloneします。URLは読み替えてください
- コマンドで
viを書いてますが、普通にテキストエディタ使っても構いません。git cloneの方法も任意です。
# git clone git clone https://github.com/tmoritoki0227/mattermost-cf-playbook.git # EC2とRDSエンドポイントの修正 $ vi inventories/prod

- この後、forkしたリポジトリに
commitとpushをしてください。
codebuild実行
ビルドプロジェクトを開く
- ビルドプロジェクトの一覧から作成したプロジェクト名をクリックします。画像は例です

ビルドを開始する
- ビルドを開始ボタンをクリック
- ビルドが始まりますので成功(ステータスが「CREATE_COMPLETE」となる)することを祈りましょう。下の方にログが出力されます。リアルタイムには出力されません。一定期間毎にログが出ます。エラーになったら対処を行って再ビルドです。
- 成功したら、少し間をおいてから https://toki.jagisama.com にブラウザからアクセスします。(URLは自分のドメインに読み替えてください。)Mattermostの初期画面が表示されれば構築完了です。次の手順書は任意作業となります。


動かないときの調査コマンド
- 大抵はALBの設定だと思います。
http://ec2-52-194-187-249.ap-northeast-1.compute.amazonaws.com:8065/ をブラウザで開く。このDNSはインスタンスのDNS。
ALBのアドレス
http://mattermost-alb-1010200182.ap-northeast-1.elb.amazonaws.com:8065/ https://mattermost-alb-1010200182.ap-northeast-1.elb.amazonaws.com:8065/ curl http://mattermost-alb-1010200182.ap-northeast-1.elb.amazonaws.com:8065
ログを見よう
sudo tail -f /opt/mattermost/logs/mattermost.log
インスタンス上で疎通確認するとき。
curl http://ec2-3-112-205-4.ap-northeast-1.compute.amazonaws.com:8065/https://toki.jagisama.com/ curl http://ec2-52-194-187-249.ap-northeast-1.compute.amazonaws.com:8065/
メモ
以下は検証中の手順です。
webhook
| 画面 | 設定項目 | 設定値 |
|---|---|---|
| プライマリソースのウェブフックイベント | コードの変更がこのレポジトリにプッシュされるたびに再構築する | チェックを入れる |
| ビルドタイプ | 単一ビルド | |
| ウェブフックシークレットキーの更新 | チェックを入れない | |
| イベントタイプ | プッシュ ※プルリクエストの対応は今度 |
|
| これらの条件でビルドを開始する | (デフォルトのままでOK) | |
| これらの条件でビルドを開始しない | (デフォルトのままでOK) |
GitHubのwebhookを設定
- 目的は
git pushするとビルドが動くことです。 - 参考:AWS CodeBuildをGitHubリポジトリで動かしてHello, World! - Qiita
手動版ではS3にファイルがアップロードできていない。
権限設定が不足している。 AWS CodeBuild で AWS S3 にアップロードする方法 | 東京都渋谷区のシステム開発・アプリ開発とサーバー構築保守運用会社
Mattermost構築の流れ(手動編)Part7 SNS、CloudWatch
SNS
用途
- これは
Simple Notification Serviceといって、通知の機能です。いろんな通知機能があるのですが、本作業ではCloudWatch(監視サービス)からメール送るのために利用します。利用するにはトピックをというものを作成する必要があります。
トピックの作成
- AWSコンソール画面の検索窓に「Simple Notification Service」と入力し、
Simple Notification Serviceをクリックする。 - 左メニューの
トピックをクリックし、トピックの作成ボタンを押下する。詳細画面が起動するので次項の内容を設定し、ページ下部のトピック作成ボタンを押下することで作成できます。
詳細
| 設定項目 | 設定値 |
|---|---|
| タイプ | スタンダード |
| 名前 | mattermost-sns |
| 表示名 - オプション | mattermost-test |
暗号化 - オプション
デフォルト設定でOK
アクセスポリシー - オプション
デフォルト設定でOK
データ保護ポリシー - オプション
デフォルト設定でOK
配信再試行ポリシー (HTTP/S) - オプション
デフォルト設定でOK
配信ステータスのログ記録 - オプション
デフォルト設定でOK
タグ - オプション
| 設定項目 | 設定値 |
|---|---|
| キー | Name |
| 値 - オプション | mattermost-sns |
作成したトピックの確認
作成されたトピックを確認します。ARNが後ほど必要になります。

サブスクリプションの作成
- トピックにメールアドレスを登録します。これでこのトピックを利用したときに登録したメールアドレスに通知を行うことが可能になります。
- 作成したトピックの名前をクリック →
サブスクリプションの作成ボタンをクリックします

| 画面 | 設定項目 | 設定値 |
|---|---|---|
| 詳細 | トピック ARN | mattermos-snsのARNを選択する |
| プロトコル | Eメール | |
| エンドポイント | 自分のメールアドレス | |
| サブスクリプションフィルターポリシー - オプション | (デフォルトのままでOK) | (デフォルトのままでOK) |
| Redrive ポリシー (デッドレターキュー) - オプション | (デフォルトのままでOK) | (デフォルトのままでOK) |
認証メール受信確認
サブスクリプションの作成ボタンをクリックした後に、AWS Notification - Subscription Confirmationというメールを受信します。メールを開いてConfirm subscriptionをクリックします。受信できない場合は、迷惑メールになっている可能性があります。



CloudWatch
CloudWatchとは何か?
監視機能です。ここではEC2のリソースを監視することに利用します。
アラームの作成
- AWSコンソール画面の検索窓に「CloudWatch」と入力し、
CloudWatchをクリックする。 左メニューの
すべてのアラームをクリックし、アラームの作成ボタンを押下する。メトリクスと条件の指定画面が起動するので次の設定をgif動画見ながら行ってください。設定内容はCPU使用率が60%を超えたらメール通知する内容となっています。設定内容(項目が多かったので大事そうなものを書いてます。書いてないものはデフォルトのままでOK)
設定画面gif版

(任意作業)CPU使用率を上げてアラートを出す方法
- 詳細は 技術メモメモ: 謎のコマンドyesの使い方(Linux標準コマンドでCPU・メモリに負荷を掛ける方法) を参照してください。
ssh EC2 # 負荷をかけるコマンド yes > /dev/null & # 確認 top # 負荷を止めるコマンド kill %1 # 確認 top
yes > /dev/null は1回でCPU使用率が60%を超えると思います。
負荷が足りない場合はCloudWatchの画面を見ながら調整してください。

メール到着まで10分ぐらいかかると思います。
- メールタイトル:
ALARM: "mattermost-cpu-alerm" in Asia Pacific (Tokyo)
- メールタイトル:
カスタムCSS設定
/* <system section="theme" selected="retropop"> */ @import "/css/theme/retropop/retropop.css"; /* </system> */ /* 画像の外枠黒線つける */ .entry-content img { border: 1px solid black; } /* 記事内の目次への連番付与 */ .entry-content ul.table-of-contents, .entry-content ul.table-of-contents ul { counter-reset: cnt; list-style: none; } .entry-content ul.table-of-contents li:before { content: counters(cnt, '-'); counter-increment: cnt; font-size: 0.9em; margin-right: 5px; } /* 記事内の見出しへの連番付与 */ .entry-content { counter-reset: cnt-h2; } .entry-content h2 { counter-reset: cnt-h3; } .entry-content h2::before { counter-increment: cnt-h2; content: counter(cnt-h2); } .entry-content h3 { counter-reset: cnt-h4; } .entry-content h3::before { counter-increment: cnt-h3; content: counter(cnt-h2) '-' counter(cnt-h3); } .entry-content h4 { counter-reset: cnt-h5; } .entry-content h4::before { counter-increment: cnt-h4; content: counter(cnt-h2) '-' counter(cnt-h3) '-' counter(cnt-h4); } .entry-content h5 { counter-reset: cnt-h6; } .entry-content h5::before { counter-increment: cnt-h5; content: counter(cnt-h2) '-' counter(cnt-h3) '-' counter(cnt-h4) '-' counter(cnt-h5); } .entry-content h6::before { counter-increment: cnt-h6; content: counter(cnt-h2) '-' counter(cnt-h3) '-' counter(cnt-h4) '-' counter(cnt-h5) '-' counter(cnt-h6); } .entry-content h2::before, .entry-content h3::before, .entry-content h4::before, .entry-content h5::before, .entry-content h6::before { margin: 0 0.3em; }
#container {
width: 980px;
}
#main
{
width: 800px;
}
#box2 {
width: 130px;
}
はてなブログのブログ横幅を変更する方法 - じょうまさふみのブログ
はてなブログでコードハイライト表示する方法 - JavaScript勉強会
cd aaa
#container { width: 980px; } #main { width: 800px; } #box2 { width: 130px; }
class Foo def bar'baz' # return baz end end
Mattermost構築の流れ(手動編)Part6 ALB
ALB
用途
ALBはユーザからのリクエストを受けて、そのリクエストはEC2に分散するものです。 ALBにEC2に直接紐づけることはできなくて、EC2が所属するグループを作ってそのグループを紐づけるやり方になってます。そのグループはターゲットグループと呼びます。 PC等からのリクエスト→ALB→TAGETGROUP→EC2といった感じです。サイトをHTTPS化するのにもALBは必要だった気がします。
ターゲットグループの作成
- ここではALBに登録するEC2のグループを作成します。
EC2の左メニューの
ターゲットグループをクリックCreate target groupボタンをクリックSpecify group details画面が起動するので以下の設定をしてnextボタンをクリック- Basic configuration
Choose a target type: InstancesTarget group name: mattermost-ec2-targetgroupProtocol - Port: HTTP 8065VPC: mattermost-vpcProtocol version: HTTP1
- Health checks
Health check protocol: HTTPHealth check path: /Advanced health check settings: (デフォルト設定でOK)
- Attributes
- (デフォルト設定でOK)
- Tags - optional
Key: NameValue: mattermost-ec2-targetgroup
- Basic configuration
Register targets画面が起動するので以下の設定をしてcreate target groupボタンをクリック- グループに追加するEC2(mattermost-server01)にチェックを入れ、
include as pending belowボタンをクリック Review targetsにチェックを入れたインスタンスが表示されるので、さらっと確認します。
- グループに追加するEC2(mattermost-server01)にチェックを入れ、
ALBのセキュリティグループの作成
- これはユーザからのリクエストをALBに受けるためのセキュリティグループです。
- AWSコンソール画面の検索窓に「セキュリティグループ」と入力→
セキュリティグループをクリック→セキュリティグループを作成ボタンをクリック
| 画面 | 設定項目 | 設定値 |
|---|---|---|
| 基本的な詳細 | セキュリティグループ名 | mattermost-alb-sg |
| 説明 | Security group applied to Mattermost ALB | |
| VPC | mattermost-vpc | |
| インバウンドルール1 | タイプ | HTTPS |
| プロトコル | TCP | |
| ポート範囲 | 443 | |
| ソース | AnywhereIPv4 | |
| 説明 - オプション | Allow inbound communication on port443 from source | |
| インバウンドルール2 | タイプ | HTTP |
| プロトコル | TCP | |
| ポート範囲 | 80 | |
| ソース | AnywhereIPv4 | |
| 説明 - オプション | Allow inbound communication on port80 from source | |
| アウトバウンドルール | - | - |
| タグ - オプション | キー | Name |
| 値 - オプション | mattermost-alb-sg |
ALBの作成
- EC2の左メニューの
ロードバランサーをクリックします。

ロードバランサーの作成ボタンをクリック(Create load balancerボタンをクリック)Application Load BalancerのCreateボタンをクリックCreate Application Load Balance画面が起動するので以下の設定をしてCreate load balancerボタンをクリック
How Application Load Balancers work
デフォルト設定でOK
Basic configuration
| 設定項目 | 設定値 |
|---|---|
| Load balancer name | mattermost-alb |
| Scheme | Internet-facing |
| IP address type | IPv4 |
Network mapping
| 設定項目 | 設定値 |
|---|---|
| VPC | mattermost-vpc |
| Mappings | ap-northeast-1にチェックをいれてSubnetはpublicのものを選択 ap-northeast-1cにチェックをいれてSubnetはpublicのものを選択 |
Security groups
| 設定項目 | 設定値 |
|---|---|
| Security groups | mattermost-alb-sg ※defaultで表示されているVPCは×で削除してください |
Listeners and routing
Listeners
| リスナー | 設定項目 | 設定値 |
|---|---|---|
| Listener HTTP:80 | Protocol | HTTP |
| Port | 80 | |
| Default action | mattermost-ec2-group | |
| Key | Name | |
| Value | alb-listerner-port80 | |
| Listener HTTPS:443 | Protocol | HTTPS |
| Port | 443 | |
| Default action | mattermost-ec2-group | |
| Key | Name | |
| Value | alb-listerner-port443 |
Secure listener settings
| 設定項目 | 設定値 |
|---|---|
| Security policy | (デフォルト設定でOK) |
| Default SSL/TLS certificate | From ACM |
| *.jagisama.com |
Add-on services
デフォルト設定でOK
Tags - optional
| 設定項目 | 設定値 |
|---|---|
| Key | Name |
| Value - optional | mattermost-alb |
Summary
デフォルト設定でOK
Route 53にサブドメイン追加
- ここはRoute53の画面の作業で、サブドメインの運用をする設定です。ALBがないと設定ができません。
- Route53の画面を開く→ 作成したホストゾーンをクリック →
レコード作成をクリックします。
| 画面 | 設定項目 | 設定値 |
|---|---|---|
| レコードのクイック作成 | レコード名 | toki ※自分の名前でいいと思います。ブラウザからここで設定する名前+ドメインでMattermostにアクセスすることになります。例:https://toki.jagisama.com)重要なので覚えておきましょう。 |
| レコードタイプ | A-IPv4 アドレスと一部のAWSリソースにトラフィックをルーティングします。 | |
| エイリアス | 〇を右側に寄せる | |
| トラフィックのルーティング先 | Application Load Balancer と Classic Load Balancer へのエイリアス | |
| アジアパシフィック(東京)[ap-northease-1] | ||
| XXXX.masttermost-alb-XXXXX.ap-northease-1.elb.amazonaws.com ※選択できるALBは1つしかないと思います。 |
||
| ルーティングポリシー | (デフォルトのままでOK) | |
| ターゲットのヘルスを評価 | はい |
この後、Route 53にサブドメインのAレコードが追加されます
(今回は実施しません)ALBでHTTPリクエストをHTTPSにリダイレクト
- なくてもいいのですが、あると少し便利なので設定します。
- 最近画面が英語表記になったようだ。画像は日本語のときのものです。
- ロードバランサーの画面で、作成したロードバランサーをクリック → Listnersの
HTTP:80をクリック →Rulesタブをクリック →Manages rulesをクリックするとルールの編集画面が表示sれます。以降は画像に沿って設定します。
↓
↓
↓
↓
↓
アクションの追加→リダイレクト先
↓
↓
↓
こうなればOK。設定がうまくいかなくてもhttpでアクセスできないだけなので大丈夫です。