Always use an instance with EBS support . Repeat: always use an instance supported by EBS.
When changing the code, you must apply a new instance supported by EBS from a snapshot of the current one. Do not add it to your load balancer.
Apply code changes.
Create a new EBS snapshot. This is your golden standard snapshot for the current round of code changes.
Launch new instances supported by EBS, if necessary, from a snapshot of the new gold standard.
Run the script that gets to your site in new instances that do not yet receive real traffic in order to warm them up (get the PHP classes loaded in APC).
Switch the load balancer so that new instances accept all direct traffic.
Complete old instances.
All of this can and should be automated with an update script. Be sure and enable error checking in your script along the way (for example, I sometimes could not start a new instance due to resource limitations in the availability zone).
The ability to create and destroy new instances as needed is one of the great things about the cloud.
source share