Is client/server possible on Android over the internet (not LAN) ?

I want to make an online 2 player Android game without using a dedicated server.
That means having 1 Android device be the host and other Android devices having the ability to connect over the internet to the host.

Obviously not over LAN, as that is local play.

Is this possible? There isn’t much documentation that I have found to answer my question. One guy said it was impossible with Unreal in another forum, but I want to make sure as this seems like it should be a basic networking feature.

Any and all help appreciated!

You can do that but you’d need a server that connects the two devices together otherwise you’d have to type in the IP address of the device you want to connect to.

I don’t want to pay for a server as this is a personal project in which I intend to learn as opposed to make money from.

Can you go into more details about having to type in the IP address of the device you want to connect to?
Would it need to have an external IP?
Would I have to mess with portforwarding?
Is there some way to make this easier using steam or google play services?

Sorry for all the questions, I haven’t found much documentation on this topic.

These days you can get a virtual private server with full root access and dedicated IP for as low as $5/mo. Useful for learning purposes.

Which companies do you recommend?

I think Linode and DigitalOcean