Hello Christos,
There is no direct way of simply copying a whole app to a different location and IP with a single command. It has to be re-created by making use of its available programming code.
So, in reply to your question 1: the way to proceed, taking into account the above considerations:
- Create a new app in the region of your choice using the console, mark its newly created ID.
- Replace the old ID of your existing app in the app code, wherever applicable, with the new, desired app ID, then deploy it as if the old code belongs to a new app.
- Access the newly deployed app at new_location_specific_app_id.appspot.com, that now works from its new location.
In following the above steps, you may encounter issues related to the Datastore. Datastore is a multi regional resource. Still, it is not truly global, as it remains in fact confined within a region group. One cannot change datastore location, after the initial choice, as stated in the “Google Cloud Datastore Locations” documentation page. A possible way to transfer data to the newly re-created project is by backing up in the old project and then restoring it where needed, i.e. in your newly re-created project, at the second location.
In reply to your question 2: you can choose a custom domain of your liking, to use in place of *.appspot.com, as detailed in the “Using Custom Domains and SSL” documentation page.