you can make very cheap to maintain peer to peer solutions
you can use a STUN server to discover your public IP and use a method called UDP hole punching to open a port others can connect to. STUN servers are very cheap to run: they don’t actually handle the data; just provide a kind of handshake service in the middle for coordinating
this is often used for peer to peer video chat etc