1. Install the Cardano node

I started with two fresh t2.large AWS Ubuntu EC2 instances using AMI ami-0ff4c8fb495a5a50d, each with a 60Gb data volume.

Perform these steps on each of the instances.

1.1. Mount the data volume

sudo mkfs -t xfs /dev/xvdh
sudo mkdir /data
sudo mount /dev/xvdh /data
sudo chown ubuntu:ubuntu /data

1.2. Setup some environment variables

echo "export PATH=\"~/.local/bin:$PATH\"" >> ~/.bashrc
echo "export LD_LIBRARY_PATH=\"/usr/local/lib:\$LD_LIBRARY_PATH\"" >> ~/.bashrc
echo "export PKG_CONFIG_PATH=\"/usr/local/lib/pkgconfig:\$PKG_CONFIG_PATH\"" >> ~/.bashrc
echo "export CARDANO_NODE_SOCKET_PATH=\"/data/Pool/node/db.socket\"" >> ~/.bashrc
echo "export CABAL_VERSION=3.2.0.0" >> ~/.bashrc
echo "export CARDANO_TAG=1.29.0" >> ~/.bashrc
echo "export GHC_VERSION=8.10.2" >> ~/.bashrc

source ~/.bashrc

1.3. Install some dependencies

sudo apt-get update -y
sudo apt-get install automake build-essential pkg-config libffi-dev libgmp-dev libssl-dev libtinfo-dev libsystemd-dev zlib1g-dev make g++ tmux git jq wget libncursesw5 libtool autoconf -y

1.4. Install Cabal

mkdir /data/Downloads
cd /data/Downloads

wget https://downloads.haskell.org/~cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz
tar -xf cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz
rm cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz cabal.sig

mkdir -p ~/.local/bin
mv cabal ~/.local/bin/
cabal update

1.5. Install GHC

wget https://downloads.haskell.org/ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-deb9-linux.tar.xz
tar -xf ghc-$GHC_VERSION-x86_64-deb9-linux.tar.xz
rm ghc-$GHC_VERSION-x86_64-deb9-linux.tar.xz
cd ghc-$GHC_VERSION
./configure
sudo make install

1.6. Install libsodium

cd /data/Downloads
git clone https://github.com/input-output-hk/libsodium
cd libsodium
git checkout 66f017f1

./autogen.sh
./configure
make
sudo make install

1.7. Build the Cardano node

cd /data
git clone https://github.com/input-output-hk/cardano-node.git
cd cardano-node
git fetch --all --tags
git checkout tags/$CARDANO_TAG
cabal build all

1.8. Copy the binaries

cp -p dist-newstyle/build/x86_64-linux/ghc-$GHC_VERSION/cardano-node-$CARDANO_TAG/x/cardano-node/build/cardano-node/cardano-node ~/.local/bin/
cp -p dist-newstyle/build/x86_64-linux/ghc-$GHC_VERSION/cardano-cli-$CARDANO_TAG/x/cardano-cli/build/cardano-cli/cardano-cli ~/.local/bin
cardano-cli --version

1.9. Get the config files

cd /data/Pool
mkdir node
cd node

wget https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/download/1/testnet-config.json
wget https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/download/1/testnet-shelley-genesis.json
wget https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/download/1/testnet-byron-genesis.json
wget https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/download/1/testnet-topology.json
wget https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/download/1/mainnet-config.json
wget https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/download/1/mainnet-byron-genesis.json
wget https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/download/1/mainnet-shelley-genesis.json
wget https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/download/1/mainnet-topology.json