The only way I would approach a problem like this is with NixOS and nixosTest/runTest. Development iterations can be against local VMs, and then you can fire it at AWS when you're confident it works correctly.