How to play Minecraft with someone far away without a server?

I want to play with my friend from MA (i'm in and) with a parkour map I made. We can't afford our own server, but if it comes to that- I will. I'd like to save my money, so if I could find a way to play without a server but just us two, or to get a really CHEAP server, that'd be great.

Run the server through Hamachi, which is an internet VPN that makes the computer think its connected to other computers via LAN. Each Hamachi room is password locked and there are settings that you can use to review people who try to join (so no random person who guesses the password correctly can get in).

How it works is that it gives you an IP address next to your name that you would use. Depending on who's hosting the server, they'll have to port the default port of Minecraft. This makes it so you don't have to pay for anything (unless you want a Hamachi room bigger than 5 slots, and you can just make new rooms).

Open LAN and just have them join.

If you have a spare laptop or something lying around, you can hook that up as a server. If not, there are all kinds of empty servers you can build a world on. You may be able to find someone who has a server already to put your world on it, or at least the part you want. Other than that, server hosting is the solution.

You don't have to pay for a mc server