What is the best solution in python, to monitor CPU, memory, and bandwidth usage per domain?
This solution has to also work on multiple instances.
CPU can be monitored by CloudWatch using the built-in metrics. For memory you can use custom metrics with the AWS command line tools or write powershell/ruby scripts with the official AWS SDK.
You can monitor anything that's easily quantifiable using the AWS SDK. To monitor bandwidth usage per domain I'd recommend something like ntop.
Monitor bandwidth, memory, cpu per domain on EC2