Having said that, you can do something on all matching instances with:
ssh2ec2 --tag foo=bar --all-matching-instances /some/commandHaving said that, you can do something on all matching instances with:
ssh2ec2 --tag foo=bar --all-matching-instances /some/commandAs previously covered multiple times, some innovative startups don't even enable SSH for their servers as SSH doesn't fit nicely in the immutable infrastructure paradigm.
But then there's the real world.
If you want to address a unique instance, do it by instance ID. If you want to address all of them, use the command example Mike put forth. To add an index is redundant. Use fabric if you're interested in that level of control.
Not SSHing to your instances works just fine, until you need to tweak a knob without launching a new instance, or get logs that you didn't know you needed to get. If you feel the need to get on the immutable infrastructure hype train though, go for it.