You'll need a static IP on the machine making the connection, and the machine must be able to make the connection. Given that this is a low level network task, you'll need to user Managed VMs or Compute Engine, rather than App Engine, yes. For Compute Engine, you can
set a static IP address. In Managed VMs, once the VM is switched to "User Managed", this is also possible, although I believe the address will be voided on restart of the instance - you may want to check this.
There is currently a
Public Issue Tracker issue with feedback which seems to suggest that the ability to pin static IP addresses to Managed VMs may be changing, in fact. It might be worth making a feature request which specifically mentions that PIT issue and which represents a feature request to clarify that static IPs on Managed VMs is desired.
If the Beta nature of Managed VMs is not desirable, I'd suggest just making the VPN connection through a regular Compute Engine instance.