ネットワーク解析ツールのBatfishをAWS上に起動する

# はじめに
ネットワーク解析ツールのBatfishをAWS上に構築するための記事です。
諸事情でDockerをインストールできない場合に使えます。

# インストール方法
## 1 VPCの作成
後に諸々を起動させるため、VPCを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507183/21a7b0c5-9c90-376b-d78b-e7792c75e0e0.png)
VPCを作成ボタンを押し,

次の設定を入れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507183/c72f286c-062e-1727-4feb-573e0c1545e4.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507183/c96bcf8d-89ef-be89-610a-729a75ba12d8.png)

意識して設定してほしいのは
・アベイラビリティゾーン (AZ) の数が2以上
・パブリックサブネットの数が2以上
です。
それ以外はBatfish構築には影響がないため好きに設定して大丈夫です。

## 2 ECSの設定
続いてECSの設定を行います。
ECSでは「クラスター」「タスク定義」「サービス」「タスク」といった言葉が出て来ます。
それぞれ以下のイメージで理解してください。
・タスク・・・・コンテナファイル（今回はBatfish）を動かすEC2単体のこと
・サービス・・・タスクの集まり。コンテナファイル（Batfish）を動かす集まりのこと
・タスク定義・・サービス/タスクの起動方法などを記すテンプレート。
・クラスター・・いくつかのサービスの集まり。

### 2-1 クラスター作成
ECS ⇒クラスターの作成 に入ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507183/a9b082c9-ac42-7eab-d52b-07589d9d9c5c.png)

先ほど作成したVPCを指定し、
2つの"パブリックサブネット"を選択しましょう

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507183/7e70eb64-ea3f-48d1-4571-184a5128658e.png)

### 2-2 サービス作成＆タスク定義作成
続いてサービスを作成します。
2-1で作成したクラスターの中に入り、サービスの作成を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507183/040888fc-3b45-1aae-bc78-b3847f7216d9.png)

下を参考に設定を入れます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507183/e86bf758-0522-cb3e-a268-3d53ac0125a7.png)

デプロイ設定のタスク定義のところには、
設定したタスク定義を選ぶ必要があります。
ここでリンクからタスク定義を行いましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507183/5a1656f0-075b-4c75-05bd-f821b3c25b08.png)

Batfishは8888,9996,9997のポートを使うため、
ポートマッピングにも同じ設定を入れています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507183/8e8c6db1-ad07-7ae2-325e-1a002f13ee34.png)
次のページは初期設定のままで大丈夫です。

タスク定義が終わり、サービス設定に戻ります。
先ほど作成したタスク定義を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507183/08e82dd9-67a4-14cb-66a4-a925681a5809.png)

ネットワーキングには作成したVPCとサブネットを選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507183/9ea7887b-4eb6-90c5-a065-733a1c6ca24e.png)

セキュリティグループの設定は後で行います。
とりあえず新たなセキュリティグループの作成と名前だけ入力しましょう。

サービスの作成を押すとタスクが生成されています。
クリックするとパブリックIPアドレスが閲覧できますが、
この時点ではセキュリティグループの設定に拒まれアクセスできません。
このIPアドレスは後程使うので控えておいてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507183/50eb0246-bae3-17d3-cbce-cd74c22c1d8b.png)


##3 セキュリティグループの変更
先ほど作成したセキュリティグループを
Batfish用に修正します。
VPC ⇒　セキュリティグループ　⇒　作成したセキュリティグループ名
を選択します。

インバウンドルールの修正を押し、下記の設定に変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507183/fbc78823-c470-60bd-435d-abe2a1309ad2.png)

ルールを修正したら、先ほどタスクのところで控えたIPにアクセスします。
ただし「（IPアドレス）:8888」と入力し、8888ポートにアクセスしてください。
※batfishは8888にアクセスすることで利用できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507183/b5de6453-cc79-b986-6fab-729363562462.png)

トークンの入力が求められます。
こちらはECS⇒クラスタ⇒タスク⇒ログ の
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507183/02926565-6a19-898b-8079-c00ee6e2b090.png)
こちらの部分に記されています。

入力しこちらの画面に移ればBatfishの利用ができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/507183/7b4f52c0-d428-70a2-0bd3-6b6090181ca1.png)