I think the best answer is the Hamachi one.
However I will share my experience with the task, it may be useful for someone:
In the past I've moved my single player world to a server and hosted it on my computer or used some cheap minecraft server hosting site.
It greatly depends on the capabilities of your computer and what kind of internet connection your internet service provider provides to you.
In my case I have a static IP address and full access to my home router.
I had to:
download and configure the minecraft server application
copy my singleplayer world in the server's world folder and change the server config to use my world,
log into my home router, assign a static local IP to my computer and configure port forwarding for port 25565 (default minecraft server port) to my local IP
setup my computer's firewall to allow the java server on the internet
check my external IP and share it with my friends
connect myself to the server by entering my local IP (i think the external one worked as well)
As you can see, you need to do a lot of stuff to get it working and there are a lot of things that can go wrong. You can google tutorial for doing all of the steps but if you are not tech savvy I don't recommend even trying it.
Cheap Minecraft server hosting:
This is a little easier approach but it's not for free.
Find a cheap minecraft server hosting. There are some that offer free hosting for a few days. I've paid around 3$ - 5$ for a basic package with 1 GB RAM.
It should have a server panel webpage where you can configure some of the server settings without having to edit the config file and should also have FTP access.
Install FileZilla or another FTP client program, use the ftp credentials to connect to the server and upload your singleplayer world folder
In the server settings (preferebly in the server pannel) change the world name to your world's name
Share the server IP and port with your friends
Connect to the server from minecraft by entering the same IP you gave to your friends
As you can see this in this case you don't have to "install" the server and deal with nasty networking stuff and the server config part is easier. Also most of the server hostings sites have a support team that you can ask for assistance. However the server could be far away from both you and your friend so you can have lag issues, also the cheap hosting provides low resources (CPU, RAM..) to the server so it could struggle. I've played with 3-5 people this way and it was ok.