Both approaches are reasonable (and there&#x27;s also a third one, ship your application in containers and replace containers instead of instances).<p>We update existing instances because in our test environment we deploy at every single new <i>commit</i> (we absolutely love that), and we have hundreds (or more) a day. At that pace, replacing instances would be more time consuming (again, for our specific use case) and less cost efficient.<p>Plus, updating existing instances is handled automatically by AWS Code Deploy, which provides a very good deploying pipeline that you can control using the aws cli tool.<p>There are other minor advantages but those are the two main ones.