Setting up a free Minecraft server in the cloud – part 1


Warning: Illegal string offset 'status_txt' in /home/gartonhill/blog.gartonhill.com/wp-content/plugins/share-and-follow/share-and-follow.php on line 1093

Warning: Illegal string offset 'status_txt' in /home/gartonhill/blog.gartonhill.com/wp-content/plugins/share-and-follow/share-and-follow.php on line 1093

Warning: Illegal string offset 'status_txt' in /home/gartonhill/blog.gartonhill.com/wp-content/plugins/share-and-follow/share-and-follow.php on line 1093

Warning: Illegal string offset 'status_txt' in /home/gartonhill/blog.gartonhill.com/wp-content/plugins/share-and-follow/share-and-follow.php on line 1093

Warning: Illegal string offset 'status_txt' in /home/gartonhill/blog.gartonhill.com/wp-content/plugins/share-and-follow/share-and-follow.php on line 1093

Warning: Illegal string offset 'status_txt' in /home/gartonhill/blog.gartonhill.com/wp-content/plugins/share-and-follow/share-and-follow.php on line 1093

Warning: Illegal string offset 'status_txt' in /home/gartonhill/blog.gartonhill.com/wp-content/plugins/share-and-follow/share-and-follow.php on line 1093

Warning: Illegal string offset 'status_txt' in /home/gartonhill/blog.gartonhill.com/wp-content/plugins/share-and-follow/share-and-follow.php on line 1093

Warning: Illegal string offset 'status_txt' in /home/gartonhill/blog.gartonhill.com/wp-content/plugins/share-and-follow/share-and-follow.php on line 1093

Warning: Illegal string offset 'status_txt' in /home/gartonhill/blog.gartonhill.com/wp-content/plugins/share-and-follow/share-and-follow.php on line 1105

Warning: Illegal string offset 'status_txt' in /home/gartonhill/blog.gartonhill.com/wp-content/plugins/share-and-follow/share-and-follow.php on line 1132

Warning: Illegal string offset 'status_txt' in /home/gartonhill/blog.gartonhill.com/wp-content/plugins/share-and-follow/share-and-follow.php on line 1093

Warning: Illegal string offset 'status_txt' in /home/gartonhill/blog.gartonhill.com/wp-content/plugins/share-and-follow/share-and-follow.php on line 1093

Warning: Illegal string offset 'status_txt' in /home/gartonhill/blog.gartonhill.com/wp-content/plugins/share-and-follow/share-and-follow.php on line 1122

My 11 year old son is a Minecraft addict. If you don’t know anything about Minecraft you are obviously not a 10-12 year old boy or one the 11+ million registered users worldwide. To save you a Google search, it’s a multi-player game where you travel around artificial worlds digging, building and blowing things up. Just what young boys love to do… Each “world” is hosted by a server – and here’s the neat bit – anyone can setup their own server and share it with everyone or just their white-list of Minecraft buddies. Since it’s based on Java it runs quite happily on Windows, Mac or Linux boxes. As the server owner or “Op” you get to play god and do all cool god-like things … like editing your own world.

For the past few weeks my son has been hassling me to build a public Minecraft server to share with his Minecraft buddies and I of course have declined – trying to explain the risks of opening our home network to the world to an 11 year old who just didn’t understand.  Finally last month, I relented (of course) and decided to at least find out what would be involved. The recently retired Compaq R3000 laptop was looking for a new job and seemed well suited for it.

You can run a Minecraft server on Windows but running a GUI on such a small machine seemed a waste. Instead, I decided to use the latest version of Ubuntu server. I chose to use the USB install method hoping to speed up the install process. This was simple enough and within an hour we had a nice new login prompt. Following the instructions on the Minecraft wiki, we managed to get the Sun version of the Java runtime environment installed and then we proceeded with the Minecraft server install itself. Pretty soon we had a working private Minecraft server. Using the private IP address, the client connected and we were Minecraft “gods”. The next step was to make it public… A step which I baulked at again as I really did not want a whole stack of young boys poking around in my network.

Cloud computing to the rescue.

Then I had a brainwave. These days you don’t need to actually have a physical server to operate a server. You just need access to one on the internet. This is what cloud computing is all about. The “cloud” of course is the internet. I am sure all the MBA types will give you some great sounding technical hogwash as to why it’s called the cloud. But the facts are far more interesting. You see, the reason it’s called “cloud” is because that’s the pictogram nerds like me used for the telephone network and then the internet in system diagrams  - the internet (as was the telephone system before it) was just a big amorphous cloud that you connected to – management types did not need to know the details – hence the cloud – metaphorically obscuring the details. Nerds may have a weird sense of humor but it is something we all “get”. Truly.

Amazon started selling books on the internet. Now they sell just about anything to anyone anywhere in the world. This includes virtual storage and virtual computer servers – the basic infrastructure of cloud computing. Amazon have all these stupidly meaningless acronyms for their cloud products that make no sense at all other than to scare off potential customers. Nerds have a way of making others feel incompetent  and using stupid acronyms is just one favourite trick. Amazon must be full of really good nerds because they have really excelled in acronym generation. For beginners though the only two acronyms you need to remember are

  • EC2 = Elastic Compute Cloud = virtual servers
  • S3 = Simple Storage Service = virtual storage

For our Minecraft server, we will be using EC2.

With Amazon EC2 you can setup a server in the cloud. Once created it’s yours to do with as you please – you just pay for the storage and computer cycles you use. Amazon offer lots of different server types and flavors each with their own price point. At the lowest end though is the “free tier” micro server. The free micro servers on Amazon EC2 are Linux based machines with 613 MB and 10GB of storage. As a new Amazon Web Services customer you can setup, play with and test one of these for a year for free. So essentially Amazon is offering the processing power of a netbook to anyone for free for a year.

I had already set up one of these free virtual servers just for fun. It all worked (of course), but when push came to shove I could not find a good use for a free, small and pretty slow Linux box in the cloud. So I shut the server down and waited for an idea. I think you can see where this is heading…. I had already proved the process for building a Linux based Minecraft server on an old notebook. Doing the same thing in the cloud with an EC2 micro server is pretty straightforward. So here’s the first steps to making a free Minecraft server in the cloud:

1. Sign up for Amazon Web Services (AWS)

This is easy. Type AWS into Google and select the first result. On the AWS home page, click the sign up now button. If you already have an Amazon you can use it here or create a new one.

2. Sign up to EC2

Before you can create a new server you need to signup to the EC2 service separately. At this point, Amazon do some funky identity verification and prompt you to enter a phone number their computers can call you on so you can enter PIN they disply to you.

3. Create your virtual Minecraft Server

From the EC2 dashboard click the big button that says “Launch instance”.  You will then be presented with the first of many pages of the new instance wizard.

 

a. The first page asks for type of server you want to make. Choose the first one. It’s the standard Amazon Linux server.

b. The next page asks you how big you want to your server to be. Make sure you select Micro as that’s the only one which is free.

c. The next page is the advanced options. None of which we care about. Just click continue.

d. The next page lets us add some tags. Really just fancy ways to identify your server. You can use my example if you want. As you are probably going to have only one server, it doesn’t matter what you type in.

e. The next page is important. You will need to create a new key pair. Amazon EC2 does not use user names and passwords for “root” access. Instead they use keypairs. You don’t need to know the details other than once you create the keypair file, protect it as its the key to your server, anyone with access to it can login to your server. Save the keypair file in safe place – we will need it later.

f. Now you need to create a new security group. A security group is Amazon’s term for the firewall settings on your server. The settings decide which packets are allowed in and which are not. We are only going to allow two types of connections – secure shell (22) and Minecraft (25565). Once you are done your screen should look like mine.

g. Time to launch. Click launch.

h.  This is just a stupid screen that serves no purpose. Close it.

4. Create and assign your server an IP address

Now we have a server created and running in the cloud but we have no way of talking to it. To do that first we need an IP address. Amazon have really silly names for everything. It really makes you wonder why they still call books “books” rather than paper based reading devices. Anyway their stupid name for IP assignment in the cloud world is Elastic IP.

You will see the Elastic IPs option on the AWS dashboard towards the bottom under Network and Security. Click it and click allocate new address.

a. You will be prompted to confirm you really want to allocate a new address. Click yes. In a few seconds you will be allocated a real IP address.

b. Now you need to associate the new IP address with your Minecraft server. Click associate address and select your minecraft server from the dropdown list.

Record your IP address. This will be the address you give all your Minecraft buddies.

In the part 2 of this series, I will explain how to securely connect to your new server and install Minecraft. In part 3, I explain how to setup a Small Instance server but not spend too much.

20 comments to Setting up a free Minecraft server in the cloud – part 1

  • Scott

    Very informative I look forward to part 2.

  • Jack

    Cant wait for part 2

  • Thomas

    I too look forward to Part 2. Earlier this year, I hosted a Bukkit-based Minecraft server on my home DSL…Unfortunately, I’m on 0.8Mbps and when I got 5+ of my friends online, things were chugging along very slowly.

    I’m investigating Amazon EC2 to host it – my hardware at home is a very-capable ThinkPad T61p with 4GB of RAM and core 2 dual-core CPU. What is the performance like on MC on the Amazon free instance? If I could walk my laptop to a data center and plug it in, I would prefer that lol but unfortunately, my net speed is the limiting factor. Also, does Amazon offer you the ability to install your own OS? I haven’t looked deep into it so if the answer is right on their FAQ, my apologies…Again, I’m still curiously looking into hosting on Amazon.

    Thank you for the informative article. Hope to see part 2 soon. :D

    • Ben

      Thomas, I just posted part 2.

      In response to your questions, the free Micro server is only barely big enough to host a handful of players simultaneously. It is a good way of proving the technology and deciding if you want to fork out for one of the larger servers. As far as I know, when you set up a server on EC2 you must choose from one of the existing AMIs. There are a lot to choose from and you may be able to create your own. Not sure why you’d bother given the standard Linux AMI works fine for Minecraft.

  • Just for reference, Amazon Web Services was the 2nd result on Google for me. Here’s the link: http://aws.amazon.com/

  • Unfortunately, though, Minecraft is not Multi-threaded. The cloud computing system relies on spreading the computational load of a server system over multiple physical servers. Thus a website hosted in the cloud can use hundreds of processors yet have one address. This requires the process to be multi-threaded, though. Being multithreaded, simply put, means that it can operate in multiple threads (and therefore CPUs). Since minecraft isn’t multithreaded, it’ll only be able to take advantage of one computer.

    The reason that the EC2 instance is free, though, is that it’s really several thousand low-end servers connected together. For a multithreaded process, that is great because each machine contributes 2 GHz or so, and you end up with 2000GHz of processing power, far more than a single machine could offer (at reasonable prices). If it’s not multithreaded, it’ll be stuck on one of those 2GHz cores, and therefore won’t have very good performance.

    The best way to host a minecraft server is to have a dedicated machine with as high GHz as possible with dual core. Quad core and 8-core will not help a minecraft server, only GHz will. Minecraft itself will only take up 1 core, and the other core can be used for things such as OS and Bukkit plugins.

    Also, visit my minecraft server! :D IP: fusioncraft.org:25565

  • Matt W.

    Why not use the 64 bit server?

  • TechyGuy4198

    thx man u helped me a lot!

  • John

    I’m using the 64-bit – purely because the web-based McMyAdmin has a 64-bit executable. It runs well with 4 players. I added swap and it has helped a lot.

  • Devon

    Thank you so much for posting these guides to getting Minecraft set up on AWS, Ben! I had zero problems and had my son up-and-running in 15 minutes. Now it’s on to getting screen configured.. :) Thanks again!

  • Could you show us another example from other host? or link to other host?

  • Todd

    Great Blog!! Thank you.
    My son has been asking me to set up a minecraft server for months. I finally decided to do it with a spare computer but at the last minute decided to see if anyone tried it in the Amazon cloud. This hit the mark, and I’m sure there are 1000s of Dads all over the world grateful for you taking the time to put this on line. All the best. I’d look forward to more in-depth articles from you on this. Great job! Thanks from Chicago!

  • Niklas

    Hey,
    great post man. Just started my own minecraft server in the same way you did thanks to your informing formunpost. Thanks!

    What im wondering is if and how i save my server to my computer locally? So it wont get lost, lets say after the free one year and i dont want to use the AWS services anymore, and wants to set up a own server at home with same map.

    And how do i change the world? i dont want the current regenerated world cause it seemd boring.

    this is my first ever contact with putty linux based servers and commands.

    Thanks again for a great Post!

  • Veronica

    Thank you for this! As a mom who is tech-savvy but no programmer, it is the closest thing I have found to “Minecraft Server Setup for Dummies” — but I am still in need of a little MORE dumbing down and some related, even more basic questions.

    Here’s the deal: my 9-year-old son and his similarly Minecraft-obsessed buddies (he is high-functioning autistic/Aspergers and goes to a special school for same, and if you think the average boy is into Minecraft, you should see these kids) would very much like to be able to play together from their home computers. Unsurprisingly, we parents are unwilling to allow them to participate in any public/open servers, or to open up their own accounts to all and sundry. But we would love to allow them this opportunity for social interaction/friendship building, however mediated by technology it might be.

    SO: I feel like this post and the following one give me some of the mechanics to accomplish this, but I’m still not sure whether they might not just have invitation-only worlds hosted from their own computers? Or would it be better to have a cloud-based shared system? And if we create a cloud-based server, is there a way to make it password-protected or invitation only?

    I’m sorry to hijack your post for something so tangential… but I am a little bit desperate at this point, as all Minecraft resources seem to assume so much knowledge and sophistication already. I have told my husband that if we get this figured out I will have to create a web-based “Parents’ FAQ for Minecraft” or some such.

    Thanks in advance!

    • Dave

      Hi Veronica,
      I was just reading through this awesome tutorial and saw your comment. If you’re not up to installing your own minecraft server instance, you might prefer instead to pay some folks a relatively small amount of money (especially when you think of it in terms of dollars-per-hour-of-entertainment!) to take care of the details for you. Especially your remark about “worlds hosted from their own computers”. Take a look at servecraft.co (which seems to have lower price-points for fewer simultaneous users) or some of the other options that show up if you search “hosting a minecraft server”. Best wishes! (P.S. Big surprise, I’m on the same hunt for the same reason. My son has just turned 11, and has been bugging me at least since March!)

    • Dayton

      minecraft has a new update! when u open a single player game click Esc on the top left side of the keyboard! then click open to lan! this should give u an IP: adresss the address should be a bunch of numbers wright them down as u see them! this will make u the host! ur sons buddies on their computers will click multiplayer on their minecraft home screen! then click direct connect it will ask for the ip address! (the numbers you wrote down) and then clcik “join server” what this will do is allow ur sons friends to play! but will only allow those who have the ip address elimanating people that join and use bad language and cause greif to ur sons creations! if u are looking to allow kids from all over the world to play together then i can suggest some great ips for u to try! but hosting ur own minecraft server for the everyone around the world to play on is no such a great idea….u need a high end computer and u will be paying $100s of dollars! and not to mention u need great computer knowledge!
      i hope i helped and i hope ur son is doing well! its great he found such a simple game amusing and fun!

  • daragh

    THANK YOU! My son thanks you! His friends thank you!

    Worked great, with craftbukkit and 64-bit instance. Added auto-backup with https://github.com/benjick/Minecraft-Autobackup

    Cheers!

    Daragh

  • Josh

    As a 13 year old this was helpful i was safely able to set up my own minecraft server thx alot
    and i also look forward to part 2

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>