AWS EC2(CentOS7)でRocketChatを構築する。　～インスタンス作成まで～

# 経緯

社内のコミュニケーションツールがメールもしくは、「IP Messenger」程度しかなく、
「Slack」の使用が禁止されているという悲しい現状を改善するために、何かできることはないかと考えていました。:sweat_smile:

そこで、オンプレ利用が可能で、かつ金のかからなさそうなツールはないかと探していたところ、
いい感じの[「RockeChat」](https://rocket.chat/)というチャットツールを発見しました。

今回はこのOSSチャットツール「RocketChat」が現場レベルで使えるかどうかを自分自身で検証するために、
AWS上でサーバーを構築してみたので、その内容を書いていきます。

※基本的には、[公式サイト](https://rocket.chat/install)にインストール方法は記載されています。(英語ではありますが、、)

# 記事内容

私がAWS初心者・Linux初心者・RochetChat初心者であるため、
RochetChatの導入までを、3部の記事に分けて記載します。

- 第1部(今回)
  - AWSでEC2インスタンス(CentOS7)の作成
  - EC2インスタンスに対するセキュリティーグループ設定


- [第2部](https://qiita.com/TomTam/items/ec60d06a06cb045fcdfe)
 - Linuxサーバ操作方法
 - RocketChat事前準備(便利パッケージのインストール)


- [第3部](https://qiita.com/TomTam/items/ec4ca24d61db470c849b)
 - RocketChatのインストール

# 実施環境

- 私のPC環境・使用するツール
 - OS　　 : Windows 10 Home
 - ツール：[Git Bash](https://gitforwindows.org)　※インストール方法についてはググってもらえれば出てきます。

# 前提

1. AWSアカウントの作成が完了していること
2. EC2の作成が可能なIAMユーザの作成が完了していること
3. VPCの作成が完了していること

このあたりは公式サイトが充実しているので、参考にしてみてください。

1. → [アカウント作成](https://aws.amazon.com/jp/register-flow/)
2. → [IAMユーザ作成](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_users_create.html)

    → [IAMユーザ権限](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/UsingIAM.html)
      　設定する権限：PowerUserAccess・AmazonEC2FullAccess
3. → [VPC作成](https://docs.aws.amazon.com/ja_jp/directoryservice/latest/admin-guide/gsg_create_vpc.html)

# 本編


## AWSコンソールへのログイン


![01_IAMユーザログイン画面.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/61c12d30-963a-98b8-2a12-1b91d75416ea.png)

以下を入力
『アカウント』
　→「アカウントID」または「アカウントエイリアス」

『ユーザー名』
　→　IAMユーザー名

『PW』
　→　IAMユーザのパスワード


![02_AWSコンソール画面.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/85a4d2ea-b88f-c184-d2be-35aed538090e.png)

## EC2サービスへのアクセス

![03_AWSEC2画面_01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/7b3558ee-7b20-b8e3-402a-b2d5638e0075.png)

![03_AWSEC2画面.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/fc4c4887-0aca-e188-b95c-434cb5a63c49.png)

## インスタンス作成・設定

### AMIの選択

インスタンス作成ボタンを押下後、
検索項目に『CentOS』を入力し、『AWS Marketplace』を選択してください。

その後、表示された「CentOS7」を選択してください。


![04_AWSEC2_AMI選択画面.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/6b66fb8f-a1c4-df83-a207-7e34f78bbd1e.png)

![05_AWSEC2_AMI選択画面_1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/f7f3a187-3b0a-5048-33a7-ed3199dbb214.png)


### インスタンスタイプの選択


今回は、
無料枠内で済ませるために、タイプを「t2.micro」にします。

![06_AWSEC2_インスタンスタイプ画面.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/03acf9c5-cecf-07fd-cb0f-1cad41b58b41.png)

### インスタンスの設定

デフォルト設定の状態で構いません。

![07_AWSEC2_インスタンス設定画面.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/fad9bcfa-a679-e088-258c-5587cc46c9a4.png)

### ストレージの追加

デフォルト設定の状態で構いません。

![08_AWSEC2_ストレージ追加画面.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/f69eff3e-9e8b-4858-0292-f5785de7a2e5.png)

### タグの追加

特に設定が必要というわけではありませんが、
作成段階でインスタンス名や概要の記載などが行えます。

![09_AWSEC2_タグ追加画面.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/11e59c0d-9201-9eb9-ac17-77d249d1c244.png)

### セキュリティグループの設定

※重要
このセキュリティグループの設定では、
作成したインスタンスに対する外部からのアクセス(インバウンドアクセス)に関する設定を行うことができます。

警告が出ている通り、
デフォルトの設定だと、すべてのIPアドレスからのsshアクセスが可能になっています。
そのため、まずは自分のPCからのアクセスのみを許可するようにしましょう。
『ソース』列のプルダウンで「マイIP」を選択すると自動で、自分のPCのIPアドレスを設定してくれます。


![10_AWSEC2_セキュリティーグループ画面_01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/77acf15d-b765-3966-a949-c96c2531e168.png)

![10_AWSEC2_セキュリティーグループ画面_02.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/85ef287e-fcc6-2060-3462-265c3dc256a7.png)

![10_AWSEC2_セキュリティーグループ画面_03.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/574a90c1-b29f-5a6d-1fac-eb113caf7b98.png)

また、同時にRocketChat用のportも開放しておきましょう。
デフォルトでは3000番が使用されるため、下記の画像のようにします。

![10_AWSEC2_セキュリティーグループ画面_04.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/e21bdbec-f5fe-7e25-bcf0-1e362f46548a.png)

### 作成

![11_AWSEC2_作成画面_04.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/eff724c3-6f1f-5a8f-0e01-304d3a5ae3b1.png)

sshでのアクセスに必要なキーペアを作成します。

![12_AWSEC2_キーペア作成画面_04.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/c6a0ab1c-3184-ff5c-6353-675ae68b98cd.png)

![13_AWSEC2_キーペア作成画面.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/1178cade-6a41-d999-ed3d-f93dcd8a59f6.png)



![14_AWSEC2_キーペア作成画面.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/ecdbbf92-4a5a-4441-5c2f-3f17d2aa54b1.png)

## インスタンス管理画面からの確認

『インスタンスの状態』が『running』となっているので、
インスタンスは無事に起動しています。

![15_AWSEC2_kidoukakuninn 画面.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/9b047a2a-acdd-cca1-0469-2f4c31d83e9a.png)

## インスタンスへのアクセス

GitBashを立ち上げ、下記を入力してください。
(IPv4 パブリック IP)はインスタンス管理画面に記載されています。

```
ssh -i ~/.ssh/hogehogeKey.pem centos@(IPv4 パブリック IP)
```

![16_AWSEC2_GitBush画面.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/44d4a5b5-e677-ee2a-be99-787865a89820.png)


下記の表示がされれば、無事にsshアクセスできる状態になっています。

```
[centos@ip-(プライベートIP) ~]$
```

![17_AWSEC2_GitBush画面.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265314/bd8b514d-1ea3-0c12-43df-f50a21abd737.png)