App Engine can be thought of as a managed servlet container (e.g. like Tomcat, but supporting several other languages than Java). You can use this for just about any purpose you can imagine for a web app.
Many other services (e.g. AWS) manage the infrastructure for you, but leave it to you to deploy the server architecture on top of the base OS distribution. App Engine is more specialized than that, which can be both more convenient and (on occasion) more limiting.
You don't need any special paid software to do the programming, though you do need a local development environment.
- Kris