AWS

Objective

This document provides instructions on how to install Volterra Node or Cluster (multi-node) on Amazon Elastic Compute Cloud (EC2) using custom Amazon Machine Image (AMI).


Prerequisites

The following prerequisites apply:

Note: By proceeding with the installation, download and/or access and use, as applicable, of the Volterra software, and/or Volterra platform, you acknowledge that you have read, understand, and agree to be bound by this agreement.


Quick Deployment Option

The quickest way to install Volterra Node(s) is by using the Quickstart tool that comes packaged with a setup script and a container with Volterra Terraform deployment scripts.

Quickstart tool requires input variables supplied through a file. The following snippet shows sample contents of the variables file.

{
    "access_key": "<AWS_ACCESS_KEY>",
    "secret_key": "<AWS_SECRET_ACCESS_KEY>",
    "region": "us-east-2",

    "machine_public_key": "<SSH_PUBLIC_KEY>",

    "deployment": "<VOLTERRA_SITE_NAME>",
    "cluster_token": "<VOLTERRA_SITE_TOKEN>"
}

To obtain AWS keys and secret, follow instructions from AWS Documentation.

Step 1 Download the Quickstart tool.

docker run --rm -v $(pwd):/opt/bin:rw docker.io/volterraio/volt-terraform:latest cp /deploy-terraform.sh /opt/bin

Step 2 Deploy the node(s) using the apply option of the Quickstart tool. Enter the ce-multi-aws template for multi-node deployments and ce-single-aws templates for single-node deployments.

./deploy-terraform.sh apply -p aws -i <absolute_path_to_vars_file> -tn ce-single-aws --tf-version 0.12 --force

Example command to desploy a single node:

./deploy-terraform.sh apply -p aws -i /var/tmp/aws.tfvars -tn ce-single-aws --tf-version 0.12 --force

Note: In case of two-interface node installation, use the ce-single-2nic-aws or ce-multi-2nic-aws template for single-node or multi-node site respectively.


Detailed Deployment Steps

You can customize the default terraform deployment steps used by the Volterra Quickstart tool. Perform the following steps for customizing your deployment.

Step 1: Run the terraform CLI container.

docker run --entrypoint tail --name terraform-cli -d -it \
-w /terraform/templates \
-v ${HOME}/.ssh:/root/.ssh \
volterraio/volt-terraform:latest \
-f /dev/null

Step 2: Enter the terraform container.

docker exec -it terraform-cli sh

Step 3: Configure AWS API access and secret key using the command below:

Note: For more information, please refer to AWS documentation.

aws configure

Step 4: Create a terraform variables file or copy one from the samples provided. For single-node deployment, change to the ce-single-aws directory. For multi-node deployment, change to the ce-multi-awsdirectory.

cd <ce-single-aws | ce-multi-aws>
cp sample-production.tfvars.json aws.tfvars.json

Note: In case of two-interface node installation, change to the ce-single-2nic-aws or ce-multi-2nic-aws directory for single-node or multi-node site respectively.

Step 5: Edit aws.tfvars.json and update the required changes to the variables.

{
    "access_key": "<AWS_ACCESS_KEY>",
    "secret_key": "<AWS_SECRET_ACCESS_KEY>",
    "region": "<REGION>",

    "machine_public_key": "<SSH_PUBLIC_KEY>",
    "machine_image": "<AWS_AMI_IMAGE_ID>",

    "deployment": "<VOLTERRA_SITE_NAME>",
    "cluster_token": "<VOLTERRA_SITE_TOKEN>"
}

Note: See the AMI Images for AWS Machine Images (AMI) per region.

Step 6: Deploy the nodes by executing the terraform commands.

terraform init
terraform apply -var-file=aws.tfvars.json

Note: The terraform init command brings up the AWS cloud resources. When the terraform apply command is executed, it prompts for user input to proceed. Enter yes to begin deploying the node(s).

Step 7: Return to the Create Site document to accept the Registration.


Destroy

Destroying the node requires you to first decomission and delete the node from the Volterra console using the Remove Site instructions.

Step 1: Login to terraform-cli container.

docker exec -it terraform-cli sh

Step 2: Destroy the deployments by executing the destroy option from within the directories of your deployment.

cd templates/<ce-single-aws | ce-multi-aws>
terraform destroy -force -var-file=aws.tfvars.json

Example command to destroy the node using the quickstart tool:

./deploy-terraform.sh destroy -p aws -i /var/tmp/aws.tfvars -tn ce-single-aws --tf-version 0.12 --force

Step 3: Optionally, remove Votlerra terraform container.

exit
docker rm -f terraform-cli

Volterra Concepts


How-to’s