Map you AWS VPC deployment using graphviz/dot

Daniel 7f22d4c6cc Merge pull request #1 from SDFE/master 3 years ago
images 45e5e37dd2 Added asgs 3 years ago
.env 014a47ba68 init commit 5 years ago
.gitignore 3af55b312c Adding cacheing 5 years ago
LICENSE edc55053a2 Initial commit 5 years ago
README.md 36493d141d Added docs 5 years ago
explorer.py 342206ffa2 added explorer 5 years ago
mapall.py f74ff77121 SDFE-1931: Ensure all available data is rendered with labels 3 years ago
requirements.txt 9464be4bf2 Merge branch 'master' of github.com:SDFE/aws-map 3 years ago

README.md

aws-map

Generate basic graphviz/dot maps of your AWS deployments.

installation

$ pip install -r requirements.txt
$ sudo apt-get install graphviz

running

$ ./mapall.py | dot -Tpng > aws-map.png
$ eog aws-map.png

Options include specifying just one VPC to draw with: ./mapall.py --vpc vpc_123456

Or specifying a subnet to draw with: ./mapall.py --subnet subnet_123456

Iterating

You can generate a map of each vpc or subnet individually. This is very useful if you have a large and complex setup where putting it all on a single page becomes spaghetti.

$ ./mapall.py --iterate vpc
$ ./mapall.py --iterave subnet

Security Groups

Normally security groups get in the way and obscure what you want to see so they aren't included. You can add them back with --security. Note that if you only want to map a single subnet you shouldn't turn security groups on as there is no easy way to determine which subnet a security group operates on - so it draws them all - leading to potentially huge, unusable maps.

Cacheing

The program will write the results of the aws query to a .cache directory and use that unless you specify --nocache. Cacheing is much faster than querying AWS everytime but obviously won't react to changes that are made.