Set Up A Jamulus Server On AWS
Friday, April 17th, 2020After seeing my post about how we did band-practice online, I was asked for more detailed help in setting up a server.
I published the Amazon Machine Image (the server template) that I built which we’ve been using and sent these instructions. Apparently they were good enough that it was possible for someone fearing they weren’t technical enough who had never before used Amazon Web Services or hosted any kind of server at all or done any programming.
Running a server costs a few quid per hour. Way less than renting a practice room.
Before you start you need to have registered with Amazon Web Services and logged in to their main page.
1) My machine-image is available only in London data-center, so we need to pick “Europe (London) eu-west-2” from the drop-menu on the top-right of the header-bar.
[If anyone outside London really needs it, apparently it is possible for me to copy it to another region. Let me know, pre @ dalliance.net ]
[EDIT: It’s been copied to Asia Pacific, Tokyo and Singapore as well.]
2) We want to use “Elastic Compute Cloud”, known as EC2. So pick “Services” menu, top-left. Click “EC2” to get the service for rending Elastic Compute Cloud servers.
3) Click “Launch Instance” in Orange at the bottom.
4) Click “Community AMIs” (AMI = Amazon Machine Image) in the left hand side dropbox to try and find the one I made.
5) The server I made was assigned the random ID: “0a8cb6a239f6c2f0d” so type that in to the search.
Hopefully it comes up in the search results as “JamulusServer – ami-0a8cb6a239f6c2f0d”
[
EDIT: It has been copied to these other zones:
Asia Pacific, Tokyo: ami-0d1a691dc2c7dd410
Asia Pacific, Singapore: ami-079b02a7786cdf5f6
US East, North Virginia: ami-0fd7e3fa3d50deb8b
Europe, Frankfurt: ami-0a4703f3c89847901
]
“Runs a Jamulus server. Your security group should open port 22124”
6) Click the “Select” button next to that.
7) Select a “t3.medium” server from the list of types of server. I have no idea if that’s more power than
is really needed, probably it’s overkill, but I am sure it is enough
Click “configure instance details” at the bottom for the next page.
8) Instance detail defaults are all fine here, click “Next: Add Storage”
9) Storage default is 8GB which is fine, click “Next: Add Tags”
10) Don’t need any tags, click “Next: Configure Security Group”
11) We need to open up the firewall on the server to allow users to contact it on the UDP port upon which it listens: 22124
Click “Add Rule”, select in each field (don’t type the quotes):
“Custom UDP Rule” / “UDP” / 22124 / “0.0.0.0/0, ::/0”
Leave the right column blank.
The second time you do this, if you’re doing it again, you may instead choose “Select an existing security group” and then select the one you created this time with that rule already in place.
If you give the Security Group Name a good name and description you’ll find it easier to do so. Call it “Jamulus” or something.
At some point it may scare you saying something like “Your server is open to the public! This might be a security issue!”. It is possible here to get the address of everyone in your band and add that to the server firewall so that only your band can connect to the server.
But it’s a pain, and the chances of a random stranger wondering into your un-advertised server are almost zero. If they do, just jam with them and drop me a line saying how it went.
Click “Review And Launch”
12) Review if you want, then click “Launch”
13) Key-Pairs are like a password used to get in touch with the server to make changes to it.
You won’t want to make any changes to it, but it won’t let you launch without a key-pair.
Select “create a new key pair” then “Download key pair” and save the file, or throw it away. Doesn’t matter.
The second time you might select to just reuse the one you downloaded this time.
Click “Launch Instances”
14) It’s launching the server now. Click “View Instances” to see it.
15) One of the servers in the list should be “initializing”.
Click that one and the bottom part of the screen will show details about it.
Its address is the “Public DNS (IPv4)” on the top right of that section.
If you move the mouse over that you will see an icon popup with a “copy to clipboard” option.
If you click that the name of the server will be copied to your clipboard.
16) Paste that name into the Jamulus client running on everyone’s machines as the server address to connect to that server.
You can then play together!
17) When you are finished, you will want to close the machine down, or else Amazon will continue charging you a few dollars an hour for it.
Click the server in the list so its details are on the bottom half of the page, then click “Actions”, at the top of the page. Click “Instance State”, and “Terminate”
It’ll then close down and Amazon will stop charging you at the end of the hour.