I can only answer to the first question since we use amazon on linux instances.
In our CI environment (teamcity) we specify artifacts in the build configuration -> general settings tab -> edit artifacts:
path/to/build => latest.zip.
Teamcity figures out that it will zip the folder based on artifact extension. Then we upload the zip file to S3.
The second question i cannot answer because we use linux. But we simply creates an virtual image which at boot fetches the latest.zip file from S3, unpacks it and restart the webserver.
Edit: If you decide to deploy in another way, make sure to create artifact dependency to the latest.zip file. You can also create builds with custom build parameters to deploy the build.