Split recipe into network and EC2 responsibilities.

This allows testing of the network component in isolation.