We can bundle all files into an Amazon Machine Instance and upload it. But I'd like to see if there is a more efficient way to regularly upload source code on to test our app and constantly have the latest version up and running. Thanks!
I am not sure I understand your question correctly, but an Amazon Machine Instance is just like any other machine running Linux (or Windows). You can use the same tools you would use if the machine was in your network. Of course you need to do this remotely. From a windows machine you can connect to an instance using tools like Putty or WinScp - you probably know about these, if you are able to create a new image. Use these tools to configure your instance as you would have configured a machine in your local network.
A while ago I discovered an easy way to deploy PHP using Git's push. The one caveat is that the process assumes you're already using Git as your VCS, and that you've installed it on both your development machine and the server:
http://stackoverflow.com/questions/279169/deploy-php-using-git/327315#327315
it depends on what you call 'deployment'. I've seen people calling ftp-ing files over to the server 'deployment' :) in short you want your deployment be:
- automated
- atomic
- reversible
- manage db schema
longer description is here: http://blog.astrails.com/2008/12/17/deployment-process-requirements
Note that you can have most of it using deployment tools from the ruby land: