Run an Ethereum Node on AWS for Free

David Zhang
Coinmonks
Published in
3 min readApr 12, 2018

--

Want to run an Ethereum node but don’t want to manage the infrastructure? Want to create a service that interfaces with the Ethereum network? There’s plenty of reasons to run an Ethereum node on AWS.

To keep things free, we will be using Parity to run our Ethereum node since Parity supports state tree pruning which will keep our storage requirements low.

New to trading? Try crypto trading bots or copy trading

If you don’t have an AWS account already, go ahead and open one, you will automatically have access to the free tier.

Launching an Instance

First we will launch an EC2 instance. We will choose the free-tier eligible Ubuntu instance since Parity’s Debian build is easy to set up.

Next we choose the free-tier eligible t2.micro instance. This hardware suffices for running an Ethereum node.

Then we specify our disk size. Since we are using Parity’s state tree pruning, we don’t have to worry about the blockchain size growing too quickly and we can stay within the 30GB allocated to the free-tier.

Lastly if we want to make our node discover-able we will expose TCP and UDP on port 30303 which is the default port used for node discovery.

If you plan on having any tokens or Ether managed by Parity or don’t want to get DoSed, do NOT expose port 8545. Port 8545 is used for the JSON-RPC but is insecure for public access. There is a bot that goes around and spams withdraw requests to port 8545, and when you unlock your account it will steal your coins. If you need to access the JSON-RPC you can either add some form of authentication layer or run everything in a Virtual Private Cloud.

After reviewing your configuration, launch your instance and then wait a minute for AWS to finish provisioning.

Installing Parity

SSH to your new EC2 instance.

ssh -i <your ssh-key for this instance> ubuntu@<your instance's public IP>

To install the latest stable release of Parity, we can run their install script.

bash <(curl https://get.parity.io -Lk) -r stable

That’s it! Now we can start fast syncing our node by running:

parity

Or if we want to play around in a development environment, Parity provides a pre-configured development network configuration, just run:

parity --chain=dev

Wrapping Up

We have successfully set up our own Ethereum node. Now we can start writing services that interact with the network or various DApps.

This is potentially the first in a series of articles! If you’re interest in a follow-up article about using Web3 to create such a service, let me know!

About the Author

David Zhang is Co-Founder and CTO at Stably Blockchain Labs.

Follow me on Twitter for the latest in tech, blockchain, and markets

--

--