platform

Voicegain Enterprise Speech-to-Text Platform (API, Portal, etc.)


Project maintained by voicegain Hosted on GitHub Pages — Theme by mattgraham

Deploy Voicegain into AWS

Step by step guide how to deploy Voicegain Speech-to-Text Platform into AWS —- Under the hood: This guide will have you do the following:

At step 4 we describe the option of using Vacuum CLI tool. This tool is not yet publicly available. We will modify this document as soon as we make it available with instructions on how to download it.

Table of Contents

Step 1: Request GPUs from AWS

This may take a while so it is smart to do this at the very beginning

Step 2: Create a User

Under IAM:

* NOTE: Console Access and Password creation not required for Vacuum CLI users.

IAM Create Group

Add User Step 1

Add User Step 2

Add User Step 3

Step 3: Create Roles

Method A

  1. Create Amazon EKS worker node role in IAM console: see AWS User Guide
  2. Create Amazon EKS Service role in IAM console: see AWS User Guide

Create Role Step 1

Create Role Step 2

Caveat: The EKS Role will not appear available in Cluster Creation until you either completely refresh the page or close and renavigate to Cluster Creation. (Navigating away and back to Cluster Creation has not ever worked in all of our tests.)

Alternatively, you can create Roles using method B

Method B

Create a role in Amazon IAM with the following 5 policies:

With the following Trust Relationship:

{
  "Version": "2020-01-01",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "eks.amazonaws.com",
          "ec2.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Step 4: Choose Between Automated or Manual K8s Setup

Either:

Provision Amazon K8S cluster using Vacuum tool

Recommended: Set up ‘vacuum’ tool on your administration system, you will need your AWS credentials, EKS Worker Role, and subnet IDs from AWS.

Create Edge Cluster via Voicegain Portal and retrieve ClusterID, then

vacuum k8s provision -t cluster_name -u Cluster_ID

Then skip to Step 12

Provision Amazon K8S cluster manually

Sign out of AWS Console and Sign In with the IAM User created in Step one. You will sign in with your Account ID, Username, and password.

Then proceed with Step 5

Step 5: Create Cluster

Create Cluster w/ EKSServiceRole:

Create Cluster

Step 6: Create NodeGroup

Create NodeGroup

Node Group

When creating the NodeGroups, Voicegain will require GPU’s, thus choose the Amazon Linux 2 GPU Enabled (AL2_x86_64)) AMI type and a g4dn EC2 Instance Type. Minimum 2xlarge (32 GiB memory) w/ minimum 2 nodes.

Step 7: Install Kubectl

Local system setup, install Kubectl following these instructions from kubernetes website

Step 8: Install and Configure awscli

Install and configure awscli:

If using Python:

python -m pip install awscli --user
aws configure

You can test for successful configuration with:

aws eks list-clusters

Step 9: Get kubeconfig

Retreive kubernetes configuration file:

aws eks update-kubeconfig –name YOUR_CLUSTER_NAME

And test access with the following:

kubectl get nodes

Step 10: Give Voicegain Access to K8s

Provide Voicegain with access to the Kubernetes (k8s) cluster:

Create a file on the local system named voicegain-auth.yaml with the following content:

data:
  mapUsers: |
    - userarn: arn:aws:iam::977776626189:user/VoicegainAgent
      username: vg_user
      groups:
        - system:masters

And patch the aws-auth configmap with the following command:

kubectl -n kube-system patch cm aws-auth --patch "$(< voicegain-auth.yaml )"

Step 11: Upload kubeconfig to Voicegain

If not using Vacuum: Install the Voicegain API access libraries (at this point please send email to support@voicegain.ai to obtain them) and use your JWT token to upload your kubeconfig file, now located at ~/.kube/confg to our portal.

Step 12: Allow Access to Voicegain-Portal on AWS

Allow access to Voicegain-Portal on AWS by editing the Cluster’s Security-Group (Inbound Rules):

EKC Cluster Configuration

Cluster Security Group

Add a new Inbound Rule w/ Custom TCP Port 31680 and Source of “My IP” (or any IP’s you want to be able to reach your cluster management portal):

Edit Inbound Rules

Step 13: Start Deployment of Chosen Features

From the Voicegain Portal, choose the features you wish to utilize and submit.

Step 14: Wait for Deployment to Finish

You can watch the progress of your cluster deployment via:

watch `kubectl get po`

Step 15: Start Using Voicegain in AWS

Once the deployment has settled, follow the Customer-portal link on your Edge Deployment page on portal.voicegain.ai , log in, and begin transcribing!

All done!


Goto: top of document