AWS Setup

Remote Rhapsody Hackathon Setup

Overview

The hackathon deployment is done on virtual instances that are provided on an Amazon Web Services (AWS) account managed by Deutsche Telekom.

Every developer deploys their workload in a separate Elastic Compute Cloud (EC2) instance and runs a local Python WSGI component that exposes a port, which the Smart Voice Hub connects to.

The compute instances are created already; every user/team will receive root access to a single AWS instance within an isolated subnet of a common Virtual Private Cloud (VPC). Direct AWS access is not required.

The provided image is an Ubuntu Server 20.04 LTS installation with a few packages pre-installed, among them:

  • python3
  • python3-pip
  • python3-virtualenv
  • pipenv

An SSH key has been pre-set and will be shared along with the IP address with the participants.

SSH Key Conversion

The SSH keys are submitted Base64 encoded.

In order to obtain the SSH keys from the Base64 encoded SSH key pair, the developer needs to decode the data and store it in files in their respective system.

The Base64 decoding can be done by one of the many available free tools on the Internet, e.g., https://www.Base64decode.org. The developer shall paste the Base64 encoded string and store the decoded content in a file. The file with the decoded key can then be used for SSH access.

Alternatively, the user can store the Base64 encoded SSH key data in files directly and use a command line tool to decode this file.

Example:

$ echo 'X1RISVNfSVNfTVlfUFJJVkFURV9LRVlfCg==' > private_key64
$ base64 -d private_key64 > private_key
$ cat private_key
_THIS_IS_MY_PRIVATE_KEY_

Connection

The participants can log into the server via SSH:

$ ssh -i ./private_key ubuntu@198.51.100.1

The private keys are password protected; the password will be shared with the key.

Private traffic cross subnets has been disabled. Inbound traffic is permitted from any destination to ports 22 and 4242.

Using the python manage.py command a WSGI server listening on inbound traffic on port 4242 can be started.

For debug purposes this can be kept running using a terminal multiplexer (e.g. tmux or screen).

Further installation instruction and also production deployment notes can be found in the SDK repository.

Contact

In case of questions please contact us via e-mail devops@automat.berlin.