ジャギ様のAWSチャレンジ

awsに関したことを書きます。

Mattermost構築の流れ(手動編)Part5 EC2

EC2

用途

Masttermostを動かすサーバとして利用します。

EC2のセキュリティグループの作成

  • これはEC2がALBと作業者のsshのアクセスを受けるためのセキュリティグループです。
  • AWSコンソール画面の検索窓に「セキュリティグループ」と入力→セキュリティグループをクリック→セキュリティグループを作成ボタンをクリック
画面 設定項目 設定値
基本的な詳細 セキュリティグループ名 mattermost-server-sg
説明 Security group applied to Mattermost EC2
VPC mattermost-vpc
インバウンドルール1 タイプ SSH
プロトコル TCP
ポート範囲 22
ソース AnywhereIPv4
説明 - オプション Allow inbound communication on port22 from source
インバウンドルール2 タイプ カスタムTCP
プロトコル TCP
ポート範囲 8065
ソース AnywhereIPv4
説明 - オプション Allow inbound communication on port8065 from source
インバウンドルール3 タイプ HTTP
プロトコル TCP
ポート範囲 80
ソース AnywhereIPv4
説明 - オプション Allow inbound communication on port80 from source
アウトバウンドルール - -
タグ - オプション キー Name
値 - オプション mattermost-server-sg

  • port22はsshを繋ぐためです。
  • port8065はALBからmattermostに繋ぐためです。
  • port80は不要かもしれません。ALBからのヘルスチェックで必要かもしれません。とりあえず入れておきましょう。

EC2の作成

  • AWSコンソール画面の検索窓に「EC2」と入力→EC2をクリック→インスタンスを起動ボタンをクリック
  • EC2は1台作成します。

名前とタグ

設定項目 設定値
名前 mattermost-server01

アプリケーションおよび OS イメージ (Amazon マシンイメージ)

設定項目 設定値
アプリケーションおよび OS イメージ
(Amazon マシンイメージ)
Amazon Linux
Amazon マシンイメージ (AMI) デフォルト(Amazon Linux 2 AMI(HVM) Kernel 5.10, SSD Volume Type)
アーキテクチャ 64ビット(x86)

インスタンスタイプ

設定項目 設定値
インスタンスタイプ t2.micro

キーペア (ログイン)

設定項目 設定値
キーペア名 (自分で使っているものを選択)

ネットワーク設定

  • 編集ボタンをクリックしてください
設定項目 設定値
VPC - 必須 mattermost-vpc
サブネット mattemost-subnet-public1-ap-northeast-1a
パブリック IP の自動割り当て 有効化
ファイアウォール (セキュリティグループ) 既存のセキュリティグループを選択する
共通のセキュリティグループ mattermost-server-sg
高度なネットワーク設定 (デフォルトのままでOK)

ストレージを設定

デフォルトのままでOK

高度な詳細

  • EC2作成時にコマンドも実行できる、ということを示すために実行してます。
設定項目 設定値
ユーザーデータ #!/bin/bash -xe
amazon-linux-extras install nginx1 -y
systemctl start nginx
上記以外はデフォルトでOKです -

EC2からデータベースのデータを作成・確認する方法

  • 前の手順でLambdaでデータを作成している場合は作業不要です。
  • ここまでにデータベースの作成が完了している必要があります。

作成したインスタンスへのSSHログイン

SSHクライアントを使ってインスタンスにログインします。

mysqlクライアントのインストール

sudo yum install mysql -y

データベース接続

mysql -h <replase me> -P 3306 -u admin -p

上記の<replase me>はRDSのエンドポイントです。RDSの画面を見て確認してください。ライターインスタンスのエンドポイントです。パスワードはadminadminです

データ作成

  • 作成済の場合はskipしてください。
# ユーザ名がmmuser。パスワードがadminadminでユーザ作成を行う。
create user 'mmuser'@'%' identified by 'adminadmin';

# mattermostというデータベースを作成
# 作業不要です。これはRDS作成時に作成済のためです。
# create database mattermost;

# mmuserというユーザにmattermostというデータベースの全権限を付与する
grant all privileges on mattermost.* to 'mmuser'@'%';

# 続いて確認作業をする場合はskipしましょう。
exit;

確認

select user, host from mysql.user;
show grants for 'mmuser'@'%';
show databases;
exit;

データベースを消したい場合

  • 削除する必要がある場合に実施します。通常は実施しません
drop user 'mmuser'@'%';
drop database mattermost;
exit;