How are you deploying? You 'should' push a tarball to s3 and have web nodes pull it down.
Red-black deploys via AMI changes are one way for sure, but those seem to be usually done via separate scaling groups entirely. Netflix has a lot of automation around this (see Asgard and AMInator)