How to Setup an Amazon AWS EC2 for a NEM Supernode

*The NEM team would like to thank Malek for contributing this blog.* ##Introduction This guide will cover the basic setup of an Amazon AWS account including sign up, creation and configuration of an EC2 instance. Note: This article follows the basic structure of the Guide [How to Setup an Azure account for a NEM Supernode]( written by Patrick. It would also be useful to familiarize yourself with the original tutorial and forum topic on how to set up a [Supernode](, or the other tutorials on how to configure a regular node on [Windows](, [Mac](, or [Ubuntu]( To create an Amazon AWS account, you need: - e-mail address - credit card - phone number To follow this guide, you will need these additional software [downloads]( - putty.exe for SSH connection - puttygen.exe to create keys for login - pageant.exe to load the created keys ## Key creation Before we start with Amazon AWS, let's create our login keys with puttygen.exe. ![puttygen]( 1. Start puttygen.exe. Choose RSA and 2048 bits from the bottom. 2. Click on "Generate" 3. Choose a "Key comment" (for example: name of your node) 4. Choose a "Key passphrase" and confirm it 5. Save the public key & private key files 6. Close puttygen ## Signup Open the Amazon [AWS signup website]( and click "Create an AWS Account". ![Start]( Choose "I am a new user," and enter your e-mail address. ![e-mail and password]( Type your e-mail address again and enter your password. ![e-mail and password]( Enter your contact information and agree to the terms of service. ![contact information]( Enter your payment information. ![payment information]( Enter the security check characters and your telephone number. After pressing the button "call me now" you will see a code and receive a phone call. Enter this code on your telephone's keyboard. ![identity verification]( After entering the right code, you will see this screen. ![verification complete]( Select a support plan. For expample "basic". ![verification complete]( Before logging in the first time, wait until the "Welcome to Amazon Web Services" email arrives. ![wait for confirmation email]( ## First log in Click on the link "Getting Started Resources" in the email you received. ![getting started]( You can also use this link []( Click on "Sign in to the Console". ![sign in to the console]( Enter your email and password. ![login]( ## Importing a Public Key Select "EC2" in the "AWS Services" box. ![aws services overview]( Select "Key Pairs" in the "Network & Security" Section. ![network & security]( Select "Import Key Pair". ![import key pair]( Select your public key file (**created in the begin of this guide with puttygen**). ![select key pair file]( Define a key pair name and press "Import". ![import the public key]( ## Launch an EC2 Instance Move to the "EC2 Dashboard" and press "Launch Instance". ![launch instance]( Go to "AWS Marketplace", search for "Debian" and select it from the list. ![Choose an Amazon Machine Image AMI]( Choose "Debian GNU/Linux 8 (Jessie)" and click create. ![debian 8]( Choose an instance type. For operating a Supernode, we recommend using at least a "t2.small" instance. To continue, click on "configure instance details". ![instance type]( Use the default settings and click on "add storage." ![instance details]( Use the default settings and click on "add tags". ![add storage]( Click to "add a name tag". ![name tag]( Enter your desired server name in the value column. E.g. "Supernode" To go on click "Configure Security Group" ![server name]( Add the following rules: Type: Custom TCP, Port Range: 7890, Source: Anywhere (for NIS) Type: Custom TCP; Port Range 7880, Source: Anywhere (for servant) Type: Custom TCP, Port Range 7778, Source: Anywhere (for light wallets) **Notice: For security reasons, you may restrict SSH access by entering your IP-address instead of in the first row.** ![configure security group]( Now select the key pair you have uploaded in the "importing a public key" section of this guide and click on the checkbox to acknowledge that you have access to the private key file (you already created the private key in puttygen in the first section of this guide). Finally, click on "Launch Instance"! ![select an existing key pair]( After launching, you will see a screen indicating the launch status. Click on "View Instances". ![launch status]( Write down the Public DNS. E.g. ![public dns]( ## Connecting to your new EC2 Instance After setting up the instance, we will try to connect to our server. Start pageant.exe and open "View Keys" from the tray icon. ![pageant]( Click on "Add Key" and select your saved private key (.ppk) you created earlier with puttygen. After the key is loaded, you can minimize pageant to tray (but don't shut it down, it needs to run in the background). Start putty.exe. ![pageant]( Start putty and navigate to "Connection - SSH - Auth". Browse for your private key file (.ppk). ![putty auth key]( Navigate to "Connection - Data" and input "**admin**" in the auto-login username field. ![putty data]( Go to "Session" and enter your instance **Public DNS** (E.g., not your instance IP-address) in the "host name" field. Save the session (optional) and click "Open". ![putty host name]( A console will open. A username and password are not needed, it will automatically load your username from putty and your key from pageant! ### Root access By default, the user root is deactivated. To activate, log in as a standard user. Type the following in the console: ``` sudo su - ``` Set a root password with: ``` passwd ``` **After setting a password, the root user is activated.** To login to your EC2 instance you will still need the standard user (with RSA-key login), but as soon as you are logged in, you can change to root with: ``` su ``` ## Install Supernode The EC2 instance is now ready for installation. For the Installation, we will use [Paul's guide (click here)](, since it has covered everything. **There is one value which you have to change:** From section **1.3** change: ``` Java -Xms768M -Xmx768M ``` to: ``` Java -Xms1024M -Xmx1024M ``` Other than that you can follow the guide, and your supernode will be set up correctly!


German translation:

Dieser Guide beschreibt beschreibt ausführlich wie ein Amazon AWS Konto eingerichtet wird und wie eine EC2 Instanz für den Betrieb einer Supernode konfiguriert werden kann.

Hinweis: Der Aufbau dieses Guides richtet sich nach dem Guide How to Setup an Azure account for a NEM Supernode verfasst von Patrick. Sinnvoll ist es auch, sich mit dem Original Tutorial und Forum Topic wie man ein Supernode einrichtet, oder auch andere Tutorials wie ein regulärer Node auf Windows, Mac oder Ubuntu installiert werden kann befasst.

Um einen AWS Account zu erstellen brauchst du folgendes:

  • E-Mailadresse
  • Kreditkarte
  • Telefonnummer

Für diesen Guide brauchst du folgende zusätzliche Software-Downloads.

  • putty.exe für SSH-Verbindungen
  • puttygen.exe um Schlüssel für den Login zu generieren
  • pageant.exe um die generierten Schlüssel zu laden

Generierung eines Schlüssels

Bevor wir mit Amazon AWS starten, erstellen wir unsere Schlüssel mit puttygen.exe.

  1. Starte puttygen.exe. Wähle RSA und 2048 bits in der unteren Ecke.
  2. Klicke auf “Generate”
  3. Wähle einen Kommentar bei “Key comment” (zum Beispiel: Name der Node)
  4. Wähle ein Kennwort bei “Key passphrase” und bestätige es
  5. Um deinen öffentlichen und privaten Schlüssel zu speichern, drücke auf “Save the public key” und " Save private key"
  6. Schliesse puttygen


Öffene die AWS signup website und klicke auf “Create an AWS Account”.

Wähle “I am a new user” und gib deine E-Mailadresse ein.

Gib deine E-Mailadresse erneut ein und gib ein Kennwort ein.

Gib deine Adressedaten ein und akzeptiere das “AWS Customer Agreement”.

Gib deine Zahlungsdaten ein.

Gib die angezeigten Zeichen ein und gib deine Telefonnummer ein. Nachdem du auf “Call me now” gedrückt hast, wirst du einen Code sehen und einen automatischen Telefonanruf erhalten. Gib den angezeigten Code mit deiner Telefontastatur ein.

Nachdem du den richtigen Code eingegeben hast, wirst du diesen Screen sehen.

Wähle einen Support-Plan, z.B. “Basic”.

Bevor du dich zum ersten Mal einloggst, warte bis die “Welcome to Amazon Web Services” E-Mail eintrifft.

Erster Login

Klicke auf den Link “Getting Started Resources” in der E-Mail die du erhalten hast.

Du kannst alternativ auch diesen Link nutzen:

Klicke auf “Sign in to the Console”.

Gib dein E-Mail und Kennwort ein.

Öffentlichen Schlüssel importieren

Wähle “EC2” in der “AWS Services” Box.

Wähle “Key Pairs” im “Network & Security” Bereich.
network & security

Wähle “Import Key Pair”.

Wähle deine Datei, die den öffentlichen Schlüssel beinhaltet (wurde zu beginn dieses Guides mit puttygen erstellt).
select key pair file

Definiere einen Namen für den Schlüssel bei “Key pair name”.
import the public key

Eine EC2 Instanz starten

Wechsle nun zum “EC2 Dashboard” und drücke auf “Launch Instance”.

Gehe zum “AWS Marketplace” und suche nach “Debian” und wähle es aus.

Wähle “Debian GNU/Linux 8 (Jessie)” und drücke auf “Continue”.

Um weiterzufahren klicke auf “configure instance details”.

Nutze die Standardeinstellungen und klicke auf “add storage.”

Nutze die Standardeinstellungen und klicke auf “add tags”.

Klicke auf “add a name tag” um einen Namen zu vergeben.

Gib den gewünschten Servernamen in der Spalte “value” ein. Zum Beispiel "Supernode"
Um weiterzufahren klicke auf “Configure Security Group”

Füge folgende Regeln hinzu
Type: Custom TCP, Port Range: 7890, Source: Anywhere (für NIS)
Type: Custom TCP; Port Range 7880, Source: Anywhere (für servant)
Type: Custom TCP, Port Range 7778, Source: Anywhere (für light wallets)

Hinweis: Aus Sicherheitsgründen empfiehlt es sich den SSH-Zugriff zu beschränken. Hierzu kannst du deine eigene IP-Adresse anstatt in der ersten Zeile eingeben.

Wähle nun das Schlüsselpaar aus, welches im Abschnitt “öffentlichen Schlüssel” dieses Guides hinterlegt wurde. Aktiviere die Checkbox um zu bestätigen, dass du Zugriff auf das private Schlüsselfile hast (den privaten Schlüssen hast du im ersten Absatz dieses Guides bereits erstellt). Um deine Instanz zu starten klicke nun auf “Launch Instance”!

Nach dem Starten wirst du einen Screen sehen der dir den aktuellen Status anzeigt. Klicke auf “View Instances”.

Schreibe dir die Adresse in der Spalte “Public DNS” auf. z.B.:

Verbindung zur EC2 Instanz herstellen

Nach dem Aufsetzen der Instanz versuchen wir nun eine Verbindung mit dem Server aufzubauen.

Starte pageant.exe und öffene “View Keys” in der Windows-Benachrichtungsleiste.


Klicke auf “Add Key” und wähle deinen bereits mit puttygen erstellten privaten Schlüssel (.ppk). Nachdem der Schlüssel geladen wurde, kannst du pageant minimieren (aber nicht komplett beenden, es muss im Hintergrund weiterlaufen).

Starte putty.exe.


Gehe zu “Connection - SSH - Auth”. Wähle deinen privaten Schlüsse aus (.ppk).

putty auth key

Gehe zu “Connection - Data” und gib “admin” als “Auto-login username” an.

putty data

Gehe zu “Session” und gib deine Public DNS-Adresse (E.g., nicht deine Instanz IP-Adresse) in das Feld “host name” ein. Um die Session zu speichern klicke auf “save” (optional). Um die Verbindung zum Server herzustellen klicke nun auf “Open”.

putty host name
Nun wird sich ein Konsolenfenster öffnen. Einen Benutzernamen und ein Kennwort wirst du nicht benötigen, da diese Daten automatisch von putty (Benutzername) und von pageant (privater Schlüssel) geladen werden!

Root Zugriff

Standardmässig ist der Root User deaktiviert. Um ihn zu aktiveren, logge dich als normaler Benutzer ein.
Gib folgenden Befehl in der Konsole ein

sudo su -

Setze ein Kennwort mit:


Nachdem ein Passwort gesetzt wurde, ist der Root Benutzer aktiv.
Um dich uf deiner EC2-Instanz einzuloggen wirst du weiterhin den standard Benutzer benötigen (Login mit privatem Schlüssel). Sobald du aber eingeloggt bist kannst du mit folgendem Befehl zum Root User wechseln:


Supernode installieren

Die EC2-Instanz ist nun bereit für die Installation.
Für die Installation nutzen wir Paul’s guide (hier klicken), da dieser sämtliche Aspekte abdeckt.

Beachte: Ein Wert muss geändert werden:
Im Abschnitt 1.3 ändere:

Java -Xms768M -Xmx768M


Java -Xms1024M -Xmx1024M

Bis auf diese Ausnahme kannst du der Anleitung folgen, um deinen Supernode korrekt einzurichten.