Create AWS VPC Site

Objective

This guide provides instructions on how to create AWS VPC and deploy sites there using the guided wizards in VoltConsole. For more information on Volterra site, see Volterra Site.

Volterra uses terraform to perform the site deployments. The wizard presents option to perform automatic deployment or assisted manual deployment with guided steps. In case of assisted deployment, Volterra generates the required terraform variables that can be downloaded and used in deploying using terraform.

Using the instructions provided in this guide, you can create an AWS VPC object with single-interface or two-interface nodes in VoltConsole. You can also perform site deployment using the created VPC object.


Prerequisites

The following prerequisites apply:


Configuration

The following video shows the AWS VPC creation and site deployment workflow:

AWS VPC creation and management requires performing the following sequence of actions:

Phase Description
Create AWS VPC Object Create the VPC object in VoltConsole using the guided wizard.
Deploy Site Deploy the sites configured in the VPC object using automated or assisted method.

Create AWS VPC Object

The wizard to create the site object in AWS VPC guides you through the steps for required configuration. This document covers each guided step and explains the required actions to be performed for each step.

Perform the following steps:

Step 1: Log into the VoltConsole and start AWS VPC site management object creation.

Select Manage from the configuration menu in the system namespace. Select Site Management -> AWS VPC Site from the options. Click Add AWS VPC Site. Enter a name for your VPC object in the metadata section.

Step 2: Configure the VPC and site settings.

Go to Site Type Selection section` and perform the following:

Step 2.1: Set region and configure VPC.
  • Select a region in the AWS Region drop-down field.
  • Select an option for the Select existing VPC or create new VPC field and configure as per the following guidelines:

    • For the New VPC Parameters option, enter the name tag in the AWS VPC Name Tag field and enter the CIDR in the Primary IPv4 CIDR blocks field.
    • For the Existing VPC option, enter an existing VPC name in the Existing VPC field.

vpc nodetype
Figure: VPC and Node Type Configuration

Step 2.2: Set the node configuration.

Select an option for the Select Ingress Gateway or Ingress/Egress Gateway field and perform one of the following steps accordingly.

Step 2.2.1: Configure ingress gateway. For the `Ingress Gateway (One Interface)` option, perform configuration as per the following guidelines:
  • Select an option for the AWS AZ name field that matches the configured AWS Region.
  • Select Existing Subnet or New Subnet for the Select Existing Subnet or Create New field and enter a subnet address in the IPv4 Subnet or Existing Subnet options accordingly. Ensure that the subnet is part of the CIDR block set in the previous step.
  • Enter a value in GiB for the Cloud Disk Size field.

Note: The AWS Certified Hardware is set to aws-byol-voltmesh by default. You can add more than one node using the Add item option.

Step 2.2.2: Configure ingress/egress gateway. For the `Ingress/Egress Gateway (Two Interface)` option, click `Edit` to open the two-interface node configuration wizard and enter the configuration as per the following guidelines.
  • Select an option for the AWS AZ name field that matches the configured AWS Region.
  • Select Existing Subnet or New Subnet for the Select Existing Subnet or Create New field in the Subnet for Inside Interface section. Enter a subnet address in the IPv4 Subnet or Existing Subnet options accordingly.
  • Select Existing Subnet or New Subnet for the Select Existing Subnet or Create New field in the Subnet for Outside Interface section. Enter a subnet address in the IPv4 Subnet or Existing Subnet options accordingly.

    two int nodes
    Figure: Ingress/Egress Gateway Settings

  • In the Site Network Firewall section, optionally select Active Network Policies in the Manage Network Policy field. Select an existing network policy or click Create new network policy to create and apply a network policy. After creating the policy, click Continue to apply.
  • Optionally select Active Forward Proxy Policies in the Manage Forward Proxy Policy field. Select an existing forward proxy policy or click Create new forward proxy policy to create and apply a forward proxy policy. After creating the policy, click Continue to apply.

    twoint nwf
    Figure: Network Firewall Configuration for Node

  • In the advanced configuration section, enable the Show Advanced Fields option. Select Manage Static Routes for the Manage Static Routes for Inside Network field and click Add item for the Static route list field. Perform one of the following steps:

    • Select Simple Static Route and enter a static route in the Simple Static Route field.
    • Select Custom Static Route and click Configure under the Custom Static Route option and perform the following steps:
    • In the Subnets section, select IPv4 or IPv6 option for the Version field. Enter a prefix and prefix length for your subnet. You can use the Add item option to set more subnets.
    • In the Nexthop section, select a next-hop type for the Type field. Select IPv4 or IPv6 for the Version field in the Address section and enter an IP address accordingly. Click Select interface object and select a network interface or click Add new network interface to create and apply a new network interface. Click Select interface object to apply the interface.
    • In the Attributes section, select supported attributes in the Attributes field. You can select more than one from this list.
    • Click Apply to add the custom route.
  • Select Manage Static Routes for the Manage Static Routes for Outside Network field and click Add item for the Static route list field. Follow the same procedure as that of managing the static routes for inside network.
  • Click Apply.

Note: The AWS Certified Hardware is set to aws-byol-multi-nic-voltmesh by default. You can add more than one node using the Add item option.

Step 2.3: Set the deployment type.

Select an option for the Select Automatic or Assisted Deployment field and perform further actions as per the following guidelines.

  • For the Automatic Deployment option, select an existing AWS credentials object or click Create new aws cred option to load new credential creation wizard. Create the new credentials as per the following guidelines:

    • Enter a name in the metadata section. Optionally set labels and enter a description.
    • Select AWS Secret Key in the Select Cloud Credential Type field. Enter the AWS access ID in the Access Key ID field and click Configure under the Secret Key field.
    • Select an option for the Secret Info. If you select Blindfold Secret, enter the secret in the Location field. If you select Clear Secret, enter the secret in the Clear Secret field in either ASCII or base64(binary) formats. To encrypt your secret using Blindfold, see Blindfold your App Secrets. Click Apply.
    • Click Continue to add the new credentials.
  • For the Assisted Deployment option, obtain the AWS parameters after this VPC object is created in VoltConsole and perform the site deployment as per the instructions in the AWS Installation guide.

    auto deployment
    Figure: Deployment Configuration

Step 3: Set the site node parameters.

Go to the Site Node Parameters section and enable the Show Advanced Fields option. Perform the following:

  • Set the AWS instance type by selecting an option for the AWS Instance Type for Node field.
  • Set a scaling limit for the worker nodes by configuring a value for the Auto Scale Limit field.
  • Enter your SSH key in the Public SSH key field.

    site node params
    Figure: Site Node Parameters Configuration

Step 4: Complete the AWS VPC site object creation.

Click Continue to complete creating the AWS VPC site.

Note: The Status field for the VPC object shows Generated. You can navigate to the created AWS VPC object using the Manage -> Site Management -> AWS VPC Site option.

Step 5: Optionally, perform the terraform plan activity.
  • Navigate to the created AWS VPC object using the Manage -> Site Management -> AWS VPC Site option.
  • Find your AWS VPC object and click ... -> Plan (Optional) for your AWS VPC to start the action of terraform plan. This creates the execution plan for terraform.
Step 6: Download the terraform variables in case of assisted deployment.
  • Navigate to the created AWS VPC object using the Manage -> Site Management -> AWS VPC Site option.
  • Find your VPC object and click ... -> Terraform Parameters for it.

Deploy Site

Creating the AWS VPC object in VoltConsole generates the plan and terraform objects required for deployment. You can deploy the site using automatic or assisted deployment, depending on your VPC object configuration.

Navigate to your VPC object and perform one of the following:

Automatic Deployment: Deploy the site using the automatic deployment method.

Perform this procedure in case you created the VPC object with automatic deployment option.

  • Navigate to the created AWS VPC object using the Manage -> Site Management -> AWS VPC Site option. Find your AWS VPC object and click Apply under the Actions column. The Status field for your AWS VPC object changes to Applying.
  • Wait for the apply to complete and the status to change to Applied.
  • Navigate to Sites -> Sites List. Find your site from the displayed list and verify that the status is ONLINE.

Note: It takes a few minutes for the site to be deployed and status to become ONLINE.

Assisted Deployment: Deploy the site using the terraform obtained from the VPC object.

Perform this procedure in case you created the VPC object with assisted deployment option.

  • Download Volterra quickstart utility.
docker pull volterraio/volt-terraform
  • Run the terraform 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
  • Copy the downloaded terraform variables file to the container. The following example copies to the /var/tmp folder on the container.
docker cp /Users/ted/Downloads/system-aws-vpc-a.json terraform-cli:/var/tmp
  • Enter the terraform container.
docker exec -it terraform-cli sh
  • Configure AWS API access and secret key.
aws configure

Note: For more information, refer to AWS documentation.

  • Change to the VPC template directory and set the environment variable for API credentials password.
cd /terraform/templates/views/assisted/aws-volt-node
export VES_P12_PASSWORD=<api_cred_password>

Note: See the Generate API Certificate for information on API credentials.

  • Deploy the nodes by executing the terraform commands.
terraform init
terraform apply -var-file=/var/tmp/system-aws-vpc-a.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) and wait for the deployment to complete.

  • Navigate to Sites -> Sites List. Find your site from the displayed list and verify that the status is ONLINE.

Note: It takes a few minutes for the site to be deployed and status to become ONLINE.


Delete VPC

You can delete the VPC object from the VoltConsole. Perform the following to delete the VPC object:

  • Navigate to the created AWS VPC object using the Manage -> Site Management -> AWS VPC Site option.
  • Find your AWS VPC object and click ... -> Delete.
  • Click Delete in the confirmation window.

Note: Deleting the VPC object deletes the sites and nodes from the VPC and deletes the VPC.


Concepts


API References