背景
最近お仕事の方でAWSを触る機会が増えてきた。
「ここはEC2上で動作していて、S3でこれがこうなるとLambdaが起動して…」
難しい。構成図がないと全体像をまったく掴めない。
また、自分がAWSで構築を行うときに「今どんな構成になってるんだろう」
というのを逐一簡単に確認できたら便利だな、と。
(先に構成図描いておけばその通りになっているかの確認にもなるし)
ということで、CloudMapperというツールを使ってみた。
CloudMapperとは
CloudMapperとは
・AWSの環境を解析して、ネットワーク構成図を自動で作成
・ブラウザで確認
ができるツールである。
環境
EC2(CentOs7)
設定手順
1.ソースのダウンロード
$ git clone git@github.com:duo-labs/cloudmapper.git
2.CentOSにPythonの実行環境を作成
CentOs7には標準でPython2.7がインストールされているが、
Python3.xはyumのリポジトリでは提供がされていないため別のリポジトリ(IUS Community Project の yum リポジトリ)からインストールしてくる。
$ yum install -y https://centos7.iuscommunity.org/ius-release.rpm $ yum search python35 $ yum install -y python35u python35u-libs python35u-devel python35u-pip $ python -V Python 3.6.5 $ sudo pip3.5 install pipenv $ pipenv install --skip-lock $ pipenv shell
3.IAMユーザ作成
CloudMapperを利用するにあたり、AWS内の情報を収集するためのIAMユーザを作成する必要がある。
※ここで作成したIAMのシークレットアクセスキーを紛失しないように!
$ aws iam create-user --user-name cloudmapper $ aws iam put-user-policy --user-name cloudmapper --policy-name cloudmapper_readonly_policy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "*", "Action": [ "ec2:DescribeRegions", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcPeeringConnections", "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "rds:DescribeDBInstances", "elasticloadbalancing:DescribeLoadBalancers" ] } ] } $ aws iam create-access-key --user-name cloudmapper
4.構成図を作成するAWS環境の設定
インストール先のcloudmapper配下にデモ用の設定ファイルがあるのでconfig.jsonという名前でコピー。
このファイルにAWS ID、アカウント名を記入。
$ cp -p config.json.demo config.json $ vi config.json { "accounts": [ { "id": "xxxxxxxxxxxx", ← AWS ID(12桁の数値)を入力 "name": "cloudmapper1", ← アカウント名を明記(任意の名前) "default": true } ], "cidrs": {} }
5.AWSの構成情報を取得
$ python cloudmapper.py collect --account cloudmapper1
ここでエラー
ModuleNotFoundError: No module named 'pyjq'
ここから色々モジュールが足りないと言われ続けるので、
その都度pipでインストール。
6.取得したAWSの構成情報を解析
python cloudmapper.py prepare --account cloudmapper1
7.Webサービスを起動
python cloudmapper.py webserver --public
8.アクセスし確認
http://【EC2のパブリックIP】:8000でアクセスし確認
見れた!
これはこれからも使いそう。
ちなみに
なんかdockerでのインストールもできるらしい…?
先に見ればよかったかも…。
qiita.com