Para la programación de CGI obviamente tienes que tener nociones o mas bien saber programar en C++ aunque sea en un nivel muy básico, aunque OJO, no porque yo te diga que sea en C#/C/C++ son los únicos lenguajes, también puedes utilizar Perl u otros similares...
Aquí puedes ver un pequeño artículo al respecto, pero en internet (google >.<) puedes encontrar información por montones
http://www.openroad.org/cgihelp/cgi.html http://www.google.com.mx/search?sour...gi+c%2B%2B
Personalmente, y como sugerencia yo desarrollara una aplicación de escritorio, evitas sobre todo problemas si alguna vez necesitas cambiar de hosting, crearías una conexión directa entre el PC del cliente/usuario con Amazon S3, con lo cual evitas muchas molestias o esperas en una u otra y al final seria tal vez mas cómodo entre tus usuarios