Not comfortable with this code. It's dangerous because subsequent calls to `obtain(flags)` with different flags will use the same flags as the first call. That will be a problem for things where it asks to open ports / set up security-groups: the first caller will get its ports, and subsequent callers won't. So our 3-tier app example would fail if using this to provision to a single machine on aws-ec2.