Skip to main content

Command line tool to visualize your EC2 infrastructure

Project description

Getting Started

You’ll need graphviz installed, and optionally imagemagick to use the --preview functionality.

On Ubuntu:

$ sudo apt-get install graphviz imagemagick

Install cloudily from PyPI like so:

$ sudo pip install cloudily

Run cloudily:

$ cloudily --ec2 instances,elb --conns --preview

Open montage.png in your favourite image viewer:

$ qiv montage.png

The --preview makes a montage of the various graphviz layouts available. Depending on your network usually ‘dot’ produces the cleaner layouts, but others may work better / look cooler.

Visualizing EC2 hosts

Use the --ec2 option to visualize your EC2 instances and ELBs. Run:

$ cloudily --ec2 instances,elb --conns --png myarch.png

You need to set your Amazon credentials as environment variables: AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY or configure them in ~/.boto. For more information see:

--ec2groups may be used to filter by security group. This accepts a comma- separated list of multiple groups. eg. --ec2groups group1,group2


There are various ways Cloudily can discover the connections between your hosts.

--arp: Looks at the IP addresses in the arp cache. This has limited use inside EC2, since hosts are usually on different subnets, but maybe useful for other setups.

--conns: Looks at the currently open UDP and TCP connections for each host. If the system is active or there is connection pooling (eg. most database libraries) you should see everything, otherwise there’s a chance you’ll not see connections through inactivity.

--logins: Includes logins by username in the diagram so you can see who logs in to which hosts.

Other options

With --conns you can also limit to a selection of ports using --connsports 80,3306. This is handy if you’re only interested in specific services.



  • Robustify code to missing values. Fixes #3
  • Add –ec2groups option. Fixes #1
  • Fix for internal ELBs. Fixes #2


  • .ssh/config optional


  • Fix defaults


  • First release

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
cloudily-0.1.4.tar.gz (7.1 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page