きっと、うまくいく~非IT業界をスクラムで変えるための系譜~

一人のPO見習いが業界を変えるために奔走する様子をただただ綴るブログです。

AWS構成図自動作成ツール比較 ~CloudMapper編~

注意事項

このエントリーは2019/1/25時点の情報です。 検討する際は、最新の状況を確認してください。

現状検討できる選択肢

主に下記が選択肢として上がります。

今回は Cloud Mapperを試してみました。

Cloud Mapperとは

  • AWSの構成図を自動で作成できる
  • 無料で使える(Githubで公開されている)
  • 新しい。結構盛んにやり取りされている
  • First Commit :2018/1/20
  • Commit件数:299
  • issue件数:86
  • 最終Commit:2日前(2019/1/25時点)

検証対象、環境

  • 今回はMacのローカル環境で実行しています。

導入手順

リポジトリをクローンする

$ git clone git@github.com:duo-labs/cloudmapper.git

必要なものをインストール

$ brew install autoconf automake libtool jq awscli pyenv pipenv

Python3のインストール(導入済みの方はスキップしてください。)

  • python 3 (3.7.0rc1 is known to work)とのこと

pyenvのパスを通す

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
$ sourcce ~/.bash_profile
$ which python
  • pyenvの場所を参照して入ればOK

pyenv で Pythonをインストールする

$ pyenv install 3.7.0
$ pyenv rehash

使うPythonを指定

$ pyenv global 3.7.0
$ python --versions
* 3.7.0が選択されていればOK

pipenvをインストール

  • pipenvとはPython公式が正式に推薦するPythonパッケージングツールで、簡単に作業環境を作れる方法を提供するためのツール

プロジェクトディレクトリに移動

$ cd cloudmapper/

pipfileインストール

$ pipenv install --skip-lock

シェル起動(仮想化)

$ pipenv shell

設定ファイルコピー

$ cp config.json.demo config.json

設定ファイルの編集

{   
    "accounts" : [
        {
            "id" : "123456789012", 
-            "name" : "demo", 
+            "name" : "[~/.aws/credentialsに記載する環境名]", 
            "default" : true
        }
    ],
    "cidrs" : {
        "1.1.1.1/32" : {
            "name" : "SF Office"
        },
        "2.2.2.2/28" : {
            "name" : "NY Office"
        }
    }
}

AWS Credentialsの設定

$ vi ~/.aws/credentials
  • credentials
[環境名]
aws_access_key_id = ******************
aws_secret_access_key = **********************************

実行

AWSから情報取得

$ ./collect_data.sh --account [~/.aws/credentialsに記載する環境名] --profile [~/.aws/credentialsに記載する環境名]

解析実行

$ python cloudmapper.py prepare --account [~/.aws/credentialsに記載する環境名]

構成図描画の為に,CloudMapperのサーバを起動する

$ python cloudmapper.py webserver
CloudMapper serving on 127.0.0.1:8000

描画結果を確認

  • 127.0.0.1:8000にアクセスする
  • 実際の出力結果がこちら

f:id:HirokiHachisuka:20190125175258p:plain

所管

良い点

  • 導入が簡単。
  • アイコンも公式なのでわかりやすい
  • 自分で追加編集ができそう

微妙な点

  • 現状集められるリソースが少ない    - VPC  - AZ  - subnet  - EC2  - RDS  - ELB  - ALB  - security  - network interface  - VPC peering

 → ただ、issueがたくさん上がっていて活発なので、時間の問題かも * 繋がれる線の並びが見辛い

次回予告

次はCacooを試してみます。