I have done several attempts to run Moodle on App Engine, and it is not a easy task. Moodle itself is designed as if it was hosted on a stateful server, and uses the moodledata directory to write (and lock) lot's of files and caches. It also has some built-in mechanisms to cache static assets "on the fly", and this causes a lot of filesystem reads. This invalidates my attempt to put moodledata on a Cloud Storage bucket, that would make it work on App Engine but, due to locking and due to the HUGE filesystem access, this doesn't work neither scales well.
I ended up doing a somewhat resilient setup on Compute Engine, hosting on a g1-small machine and using a D0 Cloud SQL instance for the database. The results were reasonable, as the site does not handle a lot of traffic. You can also start with the Moodle click-to-deploy solution, and it will work on an f1-small instance as well (recommended to set up swap space!) if your site has very low traffic, so you end up with more savings and less hassle to install.
I would suggest you to put your Moodle site as a "subdomain", and implement a scalable landing page as well as some course overview pages to host on GAE. This way you have the best of both worlds: if interested students want to access the course material and data, they end up in the moodle domain that is served from the VM. And you have the App Engine front-end serving the traffic spikes of the user and bot-visible website.
Finally, you can even make the Moodle VM be served by a reverse-proxy GAE handler, say, /moodle/. This could give you more flexibility in terms of keeping user sessions, and putting some assets to be served by the GAE edge caching.
Hope this helps!