Streaming Gateway Appliance

Streaming Gateway Appliance (SGA) Installation, Upgrade, Management

Streaming Gateway Appliance

Organizations who have users on the Internet must determine how their users will access their Frame workload VMs in a private network. For these use cases, organizations can provide their users with corporate VPN access or deploy the Frame Streaming Gateway Appliance (SGA), a secure reverse proxy that supports the Frame Remoting Protocol (FRP). SGA enables organizations to grant their users secure access to their virtualized applications and/or desktops without the use of a VPN.

Considerations

Frame provides two options for deploying one or more SGAs. Administrators should review the following considerations to determine which deployment approach fits their requirements.

Manual SGA Deployment Auto SGA Deployment
Infrastructure Required for AHV-based accounts.
Supported for public cloud accounts.
Supported for public cloud accounts.
Networking Requires customer-managed networking. Requires Frame-managed networking.
  1. Auto SGA Deployment: Frame will provision all of the required network resources (e.g., SGA VPC, security groups/firewall rules, SGA VM(s), VPC/VNET peer, and SGA VMs. SGA VMs will have public IP addresses. Frame will also provision, for SGA 3.X only, a load balancer if more than one SGA VM is required).
  2. Manual SGA Deployment: Customers manually deploy and register their SGAs and configure their networking/firewall rules. They also provision and configure, for SGA 3.X only, a load balancer if more than one SGA VM is required.

Manual SGA deployments are required when customers have specifc networking requirements (e.g., inbound firewall, WAF, and/or load balancer requirements, prohibition on workload VMs having public IP addresses, outbound NAT or zero-trust Internet access requirements, etc.) that Auto SGA deployment cannot satisfy. In these scenarios, the customer ensures that all SGA and Frame VM network prerequisites are satisfied in order for users to be able to access their workload VMs via a manually deployed SGA Cluster.

IMPORTANT: Upgrading from one SGA version to the next version requires termination and recreation of the SGA VMs. Scheduled downtime may be required.

SGA Versions

SGA Version Considerations
SGA 3 (out-of-support)
  • Supports FRP7 and FRP8.
  • Requires DNS A record with a wildcard SGA domain name, TLS/SSL public key certificate with the wildcard SGA domain name, and load balancer for high-availability deployments.
  • For FRP8, each SGA VM must be accessible through its own public IP address.
SGA 4
  • Supports FRP8 only.
  • Managed within Frame Console.
  • Each SGA VM must be accessible through its own public IP address.

SGA VM Sizing

For customers who are manually deploying SGA VMs (customer-managed networking), customers should start with a configuration for each SGA VM:

This configuration ensures the VM can support ~1 Gbps bandwidth of Frame Remoting Protocol data. Frame recommends a sizing target of 500 Mbps per 2 vCPUs to allow users to burst their bandwidth consumption.

The total number of concurrent users for the 500 Mbps bandwidth per 2 vCPU budget is dependent on the bandwidth consumed for the Frame sessions. Bandwidth consumption may be estimated based on user workload profiles:

In an office productivity use case, for example, where CPU-only VMs are used with standard 1920 x 1080 displays, the default (2 vCPU, 4 GB RAM) VM configuration could support 500 concurrent users. For 1,000 concurrent users, the same organization would need to leverage at least a 4 vCPU, 8 GB RAM VM. An 8 vCPU, 16 GB RAM VM could support 2,000 concurrent users for this use case.

Customers who are deploying SGA VMs behind a load balancer for high-availability can incrementally add SGA VMs as their Frame bandwidth consumption increases.

Note

Customers manually deploying SGA VMs in public cloud (customer-managed networking) should ensure they select a non-burstable instance type with sufficient network performance. Public cloud providers may constrain CPU utilization and/or restrict network bandwidth with lower cost instance types.

SGA 4

Introduction

Streaming Gateway Appliance (SGA) 4 simplifies the deployment and management of the SGA by eliminating the need for:

SGA 4 supports:

SGA 4 can only be used with Frame Remoting Protocol (FRP) 8.

Limitations

SGA 4 Clusters and Nodes

SGA 4 introduces two new concepts for customers: SGA Cluster and SGA Node. An SGA Cluster is composed of one or more SGA Nodes, where each node is an SGA 4 VM. Each SGA Cluster is deployed in a specific public cloud region to support Frame Accounts in that region or deployed on-premises to support one or more AHV VLANs. Customers may deploy more than one SGA Cluster. A Frame Account may only be associated to one SGA Cluster.

Once an SGA cluster with one or more nodes is created with at least one node powered on, customers can then in Frame Console:

  1. Create a new Frame Account, specifying an existing SGA Cluster.
  2. Attach a previously created Frame Account to an existing SGA Cluster (to be supported in a future release).
  3. Detach a Frame Account from its SGA Cluster to ensure users can only access the Frame workload VMs in a private networking deployment model (to be supported in a future release).

Network Requirements

When deploying an SGA VM, the customer's network must: (1) allow Internet traffic to reach the SGA VM and (2) from the SGA VM to the network containing the Frame-managed workloads (e.g., Sandbox, test/production pools, Utility Servers). As a best practice, we recommend the SGA VM or VMs (if high availability is required) be deployed in a DMZ (e.g., VPC, VNET, or VLAN) network, separate from the workload VM network.

Customers who have previously configured their network for SGA 3.X will need to allow SGA 4 VMs to initiate outbound HTTPS/Secure WebSocket (tcp/443) connections to cch.console.nutanix.com for communication with Frame control plane.

Customers who are starting with a new network will need to configure their network to satisfy the Frame private networking with SGA 4 network requirements.

Consult Public Cloud with Private Networking and SGA or Nutanix AHV with Private Networking and SGA to ensure that network requirements are satisfied before continuing to SGA 4 installation and configuration.

SGA 4 VM provides Frame Platform its public IP address based on the following:

  1. For automated deployments of SGA 4, the public IP address returned from the cloud provider's Instance Metadata Service (IMDS) endpoint.
  2. For manual deployments of SGA 4, the public IP address specified by the administrator before the SGA Node is registered to the Frame control plane using the Registration Code.

    NOTE
     1. While each SGA VM must have an associated public IP address, the public IP address does not have to be   attached to virtual network interface of the SGA VM itself. Instead, the customer administrator can manually   deploy an SGA VM with only a private IP addresses and then configure a NAT rule either on their firewall, web   application firewall, or load balancer that maps the inbound public IP address of the SGA VM to the   corresponding private IP address on the SGA VM.

     2. SGA 4 no longer requires a corresponding DNS A record for its public IP address; however, customers can   create DNS records for their SGA 4 public IP addresses, if desired.

     3. SGA 4 does not support IPv6 addresses.

High Availability

With SGA 4, Frame control plane will handle load balancing user session requests across the available SGA nodes in the SGA cluster. A load balancer is no longer needed to perform the load balancing function.

High Availability SGA 4 Architecture (FRP8)

High Availability SGA 4 Architecture (FRP8)

Typical FRP8 Workflow

Frame users log in to the Frame Platform and are directed to their Launchpad. When a user clicks the desktop or an application icon in their Launchpad, Frame Platform provides the user's browser with the public IP address of the SGA VM associated with the Frame account.

The user's browser or Frame App begins communicating directly with the specific SGA VM using the provided public IP address using (or ). The SGA VM validates the session start request and then forwards the session start request to the user's assigned Frame workload VM using . The Frame Agent on the workload VM validates the session start request and begins the Frame session video/audio stream. FRP8 traffic flows back from the Frame Agent on the workload VM through the SGA VM to the user's browser or Frame App.

Internal Access to SGA-enabled Workloads

SGA 4 also supports the scenario where end users within the private network access the workload VMs of an SGA-enabled Frame account while users on the Internet are accessing workload VMs trough the SGA.

During the WebRTC Interactive Connectivity Establishment (ICE) candidate exchange between user and workload VM, FRP8 will test all ICE candidate pairs and determine the best ICE candidate pair to use. If WebRTC verifies that the user and workload VM can communicate over an internal network path, then the FRP8 stream will use that internal network path.

For internal access by users to the workload VMs of an SGA-enabled Frame account, ensure that the users within their private network can route their traffic to the workload VMs in the private network following the private networking requirements for private networking (public cloud) or private networking (AHV) between the end user and workload VMs.

Multi-Frame Account Support

An SGA 4 cluster can be configured for one or more Frame accounts. If there are Frame accounts in different regions or data centers, we recommend you deploy SGA 4 clusters in each of those different regions or data centers to minimize unnecessary network latency.

Security

SGA 4 appliances use Ubuntu 22.04.3 LTS, hardened using CIS Level 1 Server profile (https://ubuntu.com/security/certifications/docs/usg/cis/compliance). SGA administrators can only access the SGA VM command line only through the infrastructure console. SSH is disabled.

The following ports are bound on the SGA VMs:

When a user connects to an SGA 4 node, SGA validates the user session request by confirming the validity of the request with the Frame control plane, before connecting the user with the assigned workload VM.

All communication between the SGA 4 VM and the Frame control plane is conducted using a Secure WebSocket (WSS) connection. The WSS connection is initiated by the SGA 4 VM using HTTPS. During the registration process, the SGA 4 VM will authenticate itself to the Frame control plane using a registration code generated by the control plane (and manually entered by the customer administrator for manually deployed SGA VMs) and provide the SGA 4 VM-specific metadata (UUID, SGA public-private key pair, SGA VM public IP address). Once the Secure WebSocket connection is established, the Frame control plane can communicate with the SGA VM to broker new user sessions, facilitate FRP8 WebRTC negotiation, and monitor the availability of the SGA VM.

The public/private key pair is used by the SGA VM to authenticate itself to Frame control plane each time the SGA VM needs to establish a Secure WebSocket connection to the Frame control plane. The private key is used to sign the initial HTTPS GET request by the SGA VM and the digital signature is sent as one of the HTTPS headers, including the timestamp, UUID, and nonce. The control plane validates the digital signature using the SGA VM public key before agreeing to switch to a Secure WebSocket for bidirectional communication.

SGA 4 Installation

To deploy an SGA 4 Cluster, first decide if you will have Frame automatically deploy the SGA Cluster and Nodes (public cloud only) or you will manually deploy the SGA Nodes (public cloud or Nutanix AHV) of an SGA Cluster yourself.

  1. For automatic deployment, Frame will handle provisioning of all required public cloud resources in the public cloud region you designate.

    • Frame will provision the VNET/VPC, subnets, security groups, gateways, and requested number of SGA VMs.
    • When a Frame account is created using Frame-managed networking, Frame will peer the SGA VNET/VPC to the workload VM VNET/VPC. For IBM Cloud VPC, Frame will provision a Transit Gateway to connect the two VPCs.
  2. For manual deployment, you will create the SGA Cluster in Frame Console and then obtain an SGA Node Registration Code for each SGA Node you wish to create for the cluster. You will then enter the SGA Node Registration Code when you provision the SGA VM in your infrastructure console. This registration process enables Frame Platform to know the association between the new SGA Node and the SGA Cluster in Frame.

    • The customer must provision the required network resources (e.g., VNET/VPC, subnets, security groups, gateways) to hold the SGA VMs and then provision the desired number of SGA VMs.
    • When a Frame account is created using customer-managed networking, the customer must peer the network containing the SGA VMs with the customer-managed network containing the workload VMs.

Once an SGA cluster has at least one available SGA node, you will then be able to create a new Frame Account referencing that SGA cluster and/or attach an existing Frame Account to that SGA cluster.

  For public cloud, make sure that you create the SGA Cluster in the same region as the Frame Accounts you wish to attach        to the SGA Cluster. For Nutanix AHV, make sure the SGA Cluster is in the same data center as the Frame Accounts you wish    to attach to the SGA Cluster. If you do not, then users may experience unacceptable latency, limited bandwidth, and high        packet loss, resulting in poor end user experience.

Automatic Deployment

For Automatic Deploy, follow the procedure described under Create Cluster, Automatic Deployment.

Manual Deployment

For Manual Deployment, follow the procedure:

  1. Create Cluster, Manual Deployment
  2. Add Node, Manual Deployment
  3. Add additional nodes following Step 2 as desired.

SGA 4 Upgrade

Administrators need to schedule a maintenance window to upgrade their SGA VM(s) to ensure users know not to access the SGA-enabled workload VMs while the SGA upgrade is in progress. Administrators can use the Maintenance Mode feature to alert users that the account is undergoing maintenance.

Caution
  The time to perform an SGA upgrade will depend on the infrastructure your account is using, infrastructure traffic, and the      number of SGA Nodes to be deployed.


Automatically Deployed SGA Nodes

To upgrade your SGA 4 VMs, add new SGA nodes. Once the new SGA nodes are Available under Streaming Gateways page for the SGA Cluster, power off the old SGA 4 nodes to test the new SGA 4 nodes. If those new SGA 4 nodes work, then delete the old SGA 4 nodes.

Manually Deployed SGA Nodes

Add new SGA node(s) for the existing SGA Cluster in Streaming Gateways page to obtain the Registration Code(s). Then manually provision new SGA node(s) using those Registration Code(s).

Once the new SGA node(s) are availabe, power off the old SGA 4 nodes in your cloud infrastructure console to test the new SGA 4 nodes. If those new SGA 4 nodes work, then delete the old SGA 4 nodes from your cloud infrastructure console.

SGA 4 Management

Management of SGA 4 Nodes and Clusters is on the Streaming Gateway page at either the Customer or Organization entity level. The SGA management functionality will depend on whether you have deployed the SGA Cluster using Frame (Automatic Deployment) or manually (Manual Deployment).

Automatic Deployment

With automatic deployment of an SGA Cluster, Frame is responsible for the lifecycle of all network resources and the SGA VMs. The Frame Accounts must have been created using Frame-managed networking in order for administrators to use Automatic Deployment of SGA. If a Frame account was created using customer-managed networking, then the administrator must manually deploy the SGA cluster and nodes following the instructions under Manual Deployment.

  If you are creating an SGA 4 cluster with the expectation of upgrading from existing SGA 3.x Frame accounts, please ensure    you use a non-overlapping CIDR for the SGA 4 cluster. To accomplish this, enable the "Use custom CIDR range" slider in the    Create Streaming Gateway Cluster configuration form.

Create Cluster

  1. To create a new SGA cluster, go to the Frame Console and at the Frame Customer or Organization entity level, click on Streaming Gateways on the lefthand menu.
  2. Click on Create New Cluster in the upper right corner.

image.png


3. Select “Automatic” (Frame creates all resources) and then click the **Continue** button.

4. Complete the Create Streaming Gateway configuration form.

image.png


  1. Once the required field values have been specified, click on the Create button to create the SGA Cluster and the SGA Nodes. You can view the status of the SGA Cluster on the Streaming Gateways page.

After your SGA cluster and SGA nodes have been created, you can then reference the SGA Cluster when creating your Frame Account so that your newly created Frame account uses the SGA Cluster.

Delete Cluster

A SGA Cluster can be deleted only if there are no Frame Accounts attached to the cluster.

  1. To delete an SGA cluster, go to the Frame Console and at the Frame Customer or Organization entity level where the SGA Cluster is defined, click on Streaming Gateways on the lefthand menu.
  2. Click on the kebab menu to the right of the SGA Cluster and select Delete.

image.png


3. You will be asked to confirm that you wish to delete the SGA cluster. Click **Cancel** or **Delete**.

image.png


For SGA 4 clusters that were automatically deployed, Frame Console will terminate the SGA Nodes and the related SGA network resources (subnets, VPC/VNET) in the infrastructure and then delete the SGA Cluster.

Add Node

Customer administrators can add another SGA 4 Node to their SGA Cluster at any time.

  1. For automatically deployed SGA Clusters, navigate to the Streaming Gateways page and locate the SGA Cluster you wish to add a new SGA Node.

image.png


2. Click on **+ Add a Node**. Frame will provision a new SGA VM and wait for the VM to register.

image.png


3. The Status of the SGA Node will change from `Pending registration` to `Available` once the SGA Node registers.

SGA Instance types
Frame Platform will provision SGA VM(s) on the following instance/machine types. These VMs will run 24x7 since users need to be able to access the workload VMs at any time. Administrators can manually power off and power on SGA VMs that are auto deployed.

Delete Node

Customer administrators can delete an existing SGA 4 Node from their SGA Cluster at any time, except when:

  1. For automatically deployed SGA Clusters, navigate to the Streaming Gateways page and locate the SGA Cluster you wish to delete one of the existing SGA Nodes. Note that the SGA Node to be deleted must be powered off with status Unavailable.

image.png


2. Click on the kebab menu for the powered off SGA node and select **Delete**.

image.png


3. Confirm that you wish to delete the SGA Node by clicking on the **Delete node** button.

image.png


4. Once the SGA Node is deleted, the SGA Node will be removed from the list of nodes for the SGA Cluster.

image.png


Power On Node

With automatically deployed SGA 4 Clusters, customer administrators can power on an existing automatically deployed SGA 4 Node, if the VM is powered off.

  1. Navigate to the Streaming Gateways page and locate the SGA Cluster containing one or more SGA Nodes you wish to power on.

image.png


2. Click on the kebab menu and select **Start**.

image.png


3. You will be asked to confirm that you wish to power on the SGA Node.

image.png


Power Off Node

With automatically deployed SGA 4 Clusters, customer administrators can power off an existing automatically deployed SGA 4 Node, if the VM is powered on.

  1. Navigate to the Streaming Gateways page and locate the SGA Cluster containing one or more SGA Nodes you wish to power off.

image.png


2. Click on the kebab menu and select **Stop**.

image.png


3. You will be asked to confirm that you wish to power off the SGA Node.

image.png


Reboot Node

With automatically deployed SGA 4 Clusters, customer administrators can reboot an existing automatically deployed SGA 4 Node.

  1. Navigate to the Streaming Gateways page and locate the SGA Cluster containing one or more SGA Nodes you wish to power off.

image.png


2. Click on the kebab menu and select **Reboot**.

image.png


3. You will be asked to confirm that you wish to reboot the SGA Node.

image.png


Manual Deployment

With manual deployment of an SGA Cluster, the customer is responsible for the lifecycle of all network resources and the SGA VMs. The Frame Accounts must have been created using customer-managed networking in order for administrators to use Manual Deployment of SGA. If a Frame account was created using Frame-managed networking, then the administrator must follow the instructions under Automatic Deployment of an SGA Cluster.

Create Cluster

  1. To create a new SGA cluster, go to the Frame Console and at the Frame Customer or Organization entity level, click on Streaming Gateways on the lefthand menu.
  2. Click on Create New Cluster in the upper right corner.

image.png


3. Select “Manual” and then click the **Continue** button. 4. Complete the Create Streaming Gateway configuration form.

image.png


  1. Frame Console will display the newly created SGA Cluster and one SGA Node entry. Notice that Frame Console provides the Activation Code for this first SGA Node. You will need this Activation Code to register the SGA Node you manually provision.

image.png


Once the SGA Cluster has at least one registered SGA Node, you can then reference the SGA cluster when creating new Frame accounts.

 The Activation Code must be used within 30 minutes of creation. If the Activation Code expires, you may click on Generate   new code on the SGA Node line to obtain a new Activation Code.

Delete Cluster

A SGA Cluster can be deleted only if there are no Frame Accounts attached to the cluster.

  1. To delete an SGA cluster, go to the Frame Console and at the Frame Customer or Organization entity level where the SGA Cluster is defined, click on Streaming Gateways on the lefthand menu.
  2. Click on the kebab menu to the right of the SGA Cluster and select Delete.

image.png


3. You will be asked to confirm that you wish to delete the SGA cluster. Click **Cancel** or **Delete**.

image.png


If the SGA 4 cluster was manually deployed, Frame Console will delete the SGA Cluster in Frame Console. However, the customer is responsible for terminating the SGA Nodes and any related SGA network resources in their infrastructure.

Add Node

For customers who are manually deploying an SGA Cluster, you must manually provision and configure the SGA Nodes from within your infrastructure console.

Prerequisites

SGA 4 prerequisites are as follows:

Step 1: Provision the SGA Node

  1. To manually create an SGA Node, go to the Streaming Gateways page and find the Manually Deployed SGA Cluster that will have this new SGA Node. You may need to click on + Add a Node to add a new SGA Node to the SGA Cluster.

image.png

2. Look for the **Activation Code** for that unregistered SGA Node and copy it. You may need to click on **Generate new code**.

  You must enter the **Activation Code** into the unregistered SGA VM or provision the SGA VM using the SGA VM Cloud        Configuration file within 30 minutes of the Activation Code being generated. Otherwise, you will need to generate a new        Activation Code when the Activation Code expires.

The Activation Code will be provided to the SGA Node after you provision the SGA VM using your infrastructure provider's console and access the SGA VM via the serial console.

  1. For manually deployed SGA VMs on AHV only, you must add #cloud-config parameters bellow for each Backend Region

    -----US Backend-----

    #cloud-config 
    
    runcmd:
      - set_sga_env SGA_CLOUD_PROVIDER nutanix
    


    -----EU Backend-----

    #cloud-config
    
    runcmd:
      - set_sga_env SGA_BACKPLANE_URL https://hub.deu.difr.com
      - set_sga_env SGA_CLOUD_PROVIDER nutanix
    

      You will use this file during VM creation in AHV Step 10 below.

    Verify that you have #cloud-config as the first line in your SGA VM cloud configuration file.

Infrastructure Setup - AHV

The following instructions assume you have already identified the AHV VLAN that the SGA will be placed in. The VLAN containing the SGA Nodes will need to be “public” (have a route from/to the Internet) and will need network connectivity to the private VLAN where the workloads are placed.

  1. Create a new VM in Prism Central (or Prism Element), enter a name and set timezone to UTC.

    ![SGA VM Creation - VM Creation](https://docs.difr.com/uploads/images/gallery/2025-10/htjsga-ahv1a.png)
    SGA VM Creation - VM Creation

  **Warning**
  The timezone must be set to UTC.

  1. Configure Compute Details: SGA VMs should have at least two (2) vCPUs and 4GB RAM. This configuration supports up to 500 concurrent user sessions. Click **Save**.

    SGA VM Creation - VM Configuration

  2. Add the SGA disk image by clicking Attach Disk.

    image.png

  3. Specify your Frame SGA disk image. Click Save.

    image.png



  4. Under “Networks,” click Attach to Subnet to assign the appropriate VLAN to the new VM. You can set a static private IP address of the SGA VM at this point or use Option 4, as discussed below, once the VM has been provisioned.

    image.png


  5. Click on "Legacy BIOS Mode" and click the "Confirm" button.

    image.png


  6. Under Guest Customization, set Script Type to Cloud-init and enable the Custom Script option.

  1. Select Next and then click Create VM on the final Review step.

    image.png

  2. You should now be able to see the newly created VM in Prism.

    image.png


  3. Power on the SGA VM. Connect to the SGA VM by clicking on the Launch console button near the top of the Prism dashboard to access the Virtual Network Console (VNC).

    image.png


Infrastructure Setup - AWS

The following instructions assume you have already identified the AWS VPC and subnet that the SGA will be placed in. The subnet will need to be “public” (have a route from/to the Internet) and will need network connectivity to the private VPC and subnet(s) where the workloads are placed.

Before provisioning SGA VMs in AWS, ensure you enable serial console access to your SGA VMs. Otherwise, you will not be able to access the SGA VM. Consult AWS documentation on \[EC2 Serial Console\] (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-serial-console.html) for further details.

  1. Download and Import an SGA Image: With access to the AWS Command Line Interface (CLI) and an AWS Access Key, you can download and import the SGA image into your AWS account.

    1. Download the AWS SGA image file (.raw.gz) from the Downloads page.
    2. Decompress the .gz file.
    3. Create an S3 bucket and upload the uncompressed .raw file to the S3 bucket. The S3 bucket should be in the region where you plan to deploy the SGA. The image size is ~10 GB, so it may take some time to upload.
    4. Create a vmimport role as described in this documentation
    5. Create an import configuration file using the template below. Name the file “sgaimport.json” and place that file in the directory where the uncompressed raw file is. The description string can be customized. We recommend the description contain the name of the image and version number.
    [
      {
        "Description": "SGA 4.0.1",
        "Format": "raw",
        "UserBucket": {
          "S3Bucket": "<Name of SGA Bucket>",
          "S3Key": "FrameSGAAWS.aws.raw"
        }
      }
    ]
    
    
    1. Use AWS Configure to set up your AWS CLI. Ensure you choose the region used in the steps above.
    2. To import the AMI, run the command below from the same directory that the sgaimport.json and raw image files are located.
    aws ec2 import-image --description "SGA 4.0" --disk-containers "file://sgaimport.json"
    
    

    You should see a response containing:

    ...
    "StatusMessage": "pending",
    "ImportTaskId": "import-ami-031f8724e05c24af9"
    
    
    1. You can use importTaskId to check on the status of the import with the following command:
    aws ec2 describe-import-image-tasks --import-task-ids <ImportTaskId>
    
    

    Once completed, the AMI should be available for you to launch and use.

  2. Configure an Elastic IP: Deploying an SGA requires a static public IP, which Amazon calls an “Elastic IP” or “EIP.” The public IP address can be configured on your network security device with a corresponding NAT to the SGA VM's public IP address. If you wish to configure the public IP address on the SGA VM itself, you either need to obtain a static IP address from Amazon or set up a static IP addres you already own as an Elastic IP address. For more information, see AWS Official Documentation.

  3. Create a Security Group: Next, administrators will want to create a security group for the SGA(s) they plan to deploy. The security group access should allow inbound connections to the SGA on udp/3478 and tcp/3478, outbound connections between udp/49152-65535 from the SGA to the Internet, and outbound connections between udp/4503-4509 from the SGA to the workload VM network.

    image.png


  4. Create an Elastic Network Interface (ENI): Create an Elastic Network Interface that can be associated with the recently created EIP. The Elastic Network Interface should be placed in the proper subnet and assigned to the recently created security group.

    image.png


    **Important**
      Capture the ENI ID since it will need to be used later in the creation process.

    image.png


  5. Associate the EIP with ENI: Administrators should now be able to associate the newly-created EIP with the ENI.

    image.png


  6. Launch the EC2 Instance:

    1. From the Amazon EC2 console dashboard, click “Launch instance” and select the AMI.
    2. Select the instance type. Frame recommends the c5.xlarge instance type. A lower vCPU and RAM configuration can be used if you plan to have more SGA Nodes in your SGA Cluster. When configuring the instance details, select the VPC and subnet.
    3. Switch to the newly-created ENI under “Network Interfaces."

    image.png



    4. Click "Review and Launch".

  7. Once the SGA VM has been provisioned and is running, connect to the SGA VM by selecting the SGA VM instance in the Instances page and clicking the "Connect" button near the top of the AWS Console.

    image.png

  8. Select "EC2 serial console" tab and then "Connect".

    image.png


Infrastructure Setup - AZURE

The following instructions assume you have already identified the Azure VNet and subnet that the SGA will be placed in. The subnet will need to be “public” (have a route from/to the Internet) and will need network connectivity to the private VNet and subnet(s) where the workloads are placed.

  1. Download the SGA (.vhd.gz) file and and unzip.

  2. Create a new Resource Group by clicking on "Resource Groups" in the Azure portal sidebar and clicking the "+ Add" button.

    image.png


  3. Create a Storage Account and Blob Container.

    image.png


  4. Upload the .vhd file as a page blob to Azure Storage. Ensure the “Upload .vhd files as page blobs (recommended)” box is checked.


    SGA .vhd Upload

  5. Create an image from the .vhd blob. Be sure to choose Linux for the OS type, and navigate to the previously uploaded .vhd blob for the Storage blob.

    image.png


  6. Create a VM from the image.

    1. Locate your image and click on the image name.

      image.png


    2. Click the "Create VM" button in your Azure Console.

      image.png


    3. Configure your Virtual Machine by choosing a name, size (instance type), authentication model, and licensing type. Frame recommends a D4s v5 instance type. A lower vCPU and RAM configuration can be used if you plan to have more SGA Nodes in your SGA Cluster.

      You should also specify an Administrator user account (SSH public key or password) so you can administer your SGA VM in the future. Click “Next:Disks>” when you're done.

      image.png


    4. Next, configure the disks by selecting the OS disk type and encryption type.

      image.png


    5. Move on to the "Networking" tab. Configure the networking for the VM. Either choose an existing VNet or create a new VNet. Ensure you are using a /18 CIDR block or smaller, and that your SGA has a public IP address (either on the SGA VM or on the firewall).

      image.png


    6. Next, configure your management options as desired in the "Management" tab.

    7. Finish up the VM creation process by going through the rest of the wizard before the Activation Code expires.

  7. Once the SGA VM has been provisioned and is running, locate the SGA VM instance and click the "Connect" button near the top of the Azure Console.

    image.png

  8. On the Connect page, select "More ways to connect" and then "Go to serial console".

    image.png


Infrastructure Setup - GCP

The following instructions assume you have already identified the GCP VPC and subnet that the SGA will be placed in. The subnet will need to be “public” (have a route from/to the Internet) and will need network connectivity to the private VPC and subnet(s) where the workloads are placed.

  1. Download the SGA (.tar.gz) file.
  2. Create a Cloud Storage bucket. The bucket should be in the region where you plan to deploy the SGA. Upload the .tar.gz file to the bucket, following Google's official instructions.

The compressed image is under 1 GB, so it may take awhile to upload.

  1. Import the image from your bucket. This may take up to 30 minutes to complete.

  2. External IP: Deploying an SGA requires a Static Public IP address, which Google refers to as an “External IP address”. So first, we will need to reserve an External IP.

    image.png


  3. Firewall Rules: Next, we'll create a firewall rule for the SGA(s) you plan to deploy. The firewall rules should, at a minimum, allow the following:

    • Ingress connections for the SGA on udp/3478 and tcp/3478.
    • Ingress connections from SGA to the workloads on udp/4503-4509.

    image.png


  4. Create the VM Instance: Now you are ready to create the custom SGA instance. Start the official instance creation process. Frame recommends an n2-standard-4 instance type. A lower vCPU and RAM configuration can be used if you plan to have more SGA Nodes in your SGA Cluster.

    You will first want to change the boot disk for your SGA VM.

    image.png


    Choose your SGA custom image as the boot disk.

    image.png


  5. Reserve a static internal IP for your primary internal IP address, and then select your static External IP address from the drop-down menu as shown below.

    image.png

  6. Lastly, click “Create” to create the SGA VM.

  7. Once the SGA VM has been provisioned and is running, go to the VM instances page and locate the SGA VM instance. Verify that the SGA VM instance is enabled for you to connect to its serial console (under Remote access). Refer to Google Cloud documentation for further details.

    image.png

  8. On the SGA VM instance page, click Connect to serial console. Refer to Google Cloud documentation for further details.

    image.png


    Infrastructure Setup - IBM

  9. Download the SGA (.qcow2) file.

  10. Order an IBM Cloud Object Storage (Standard tier) service instance.

  11. Create a Cloud Object Storage bucket. The bucket must be in the region where you plan to deploy the SGA. Upload the .qcow2 file to the bucket.

  12. Grant the VPC Infrastructure Services service Reader and Writer access to the Cloud Object Storage service containing the .qcow2 file.

    image.png


  13. Create a custom image using the .qcow2 file in the Cloud Object Storage bucket.

    a. Make sure it is in the region you plan to create a SGA VM.

    image.png


    b. For the image source, select `Cloud Object Storage`, the Cloud Object Storage instance, Location, and Bucket where the image file is located. Select `Ubuntu Linux` as the Operating system and `ubuntu-20-04-amd64` as the Version.

    image.png


  14. Create a virtual server instance.

    a. Specify the region and zone, virtual server name.

    image.png


    b. Specify the SGA 4 custom image and profile.

    image.png


    c. Specify the VPC and subnet that will contain the SGA VM.

    image.png


  15. Under Advanced options, enable the Metadata service.

  16. Click on the Create virtual server button to create the SGA VM.

  17. Reserve a floating IP address and bind it to the SGA VM. Record the floating IP address as you will use it when registering the SGA VM.

SGA Configuration

This step is needed for any one or more of the following configuration requirements:

  The public IP address configured in the SGA VM will be provided to the Frame control plane during SGA registration. Frame    control plane provide this public IP address to users when users request access to their Frame desktops in Frame Accounts      attached to the SGA Cluster.

  1. Once the SGA VM is powered up, connect to the serial console of the SGA VM through your infrastructure portal.
  2. Log in to the SGA VM using the default credentials (username: sga, password: difr).

image.png

3. When you log in to the SGA VM, you'll see the following setup menu:

1 - Register SGA with the backplane using a unique code  
2 - Set the SGA IP  
3 - Set the SGA Relay IP  
4 - Configure networking interface IP address  
Type exit to quit the setup

 Although the menu lists these options in numerical order, you must complete them in the following sequence below to   avoid activation errors. Specifically, complete Steps 1 and 2 before entering the Activation Code in Step 3 to avoid errors.

**Step** **Wizard Option** **Action** **Details / Notes**
1 Option `4` Configure private IP, subnet, gateway, and DNS Must be completed first. If skipped or done out of order, activation code validation will fail.
2 Option `2` Set the public IP address for the SGA VM This is the IP that users will connect to. Can be updated later, but only affects future sessions.
3 Option `1` Enter the Activation Code (register with the backplane) Only works if private and public IPs are configured. Activation code errors occur if done prematurely.
4 (if needed) Option `3` Set relay IP for multi-NIC configurations Use when multiple NICs are present to forward traffic from the user to workload VMs.
  1. When you have completed configuring the SGA and verified the SGA VM is available in Step 3: SGA Verification, be sure to log out. It may take a few minutes for the SGA VM to appear as available in the Admin Console.

Step 3: SGA Verification

  1. Return to your Streaming Gateways page within the Frame Console. It may take a few minutes for the SGA Node to contact the Frame control plane and complete the registration process. Verify that the SGA Node is now available and has the expected public IP address.

image.png

2. Repeat the Add Node process to create additional SGA Nodes for a highly available SGA Cluster.

Delete Node

Customer administrators can delete an existing SGA 4 Node from their SGA Cluster at any time, except when:

Follow the procedure as described for Automatic Deployment, Delete Node. Once the SGA Node is deleted from the Frame control plane, go to your cloud provider infrastructure console and terminate the VM (and any related network resources).

Attach Frame Account

Prerequisites

Before attaching a Frame account to an SGA cluster, there are several prerequisites:

  1. Confirm there is no private IP address overlap between the network containing the SGA VMs and the network containing the workload VMs.
  2. For manually deployed SGA 4 clusters, confirm that the SGA 4 nodes have a network route to the network containing the workload VMs, as specified in the Network Requirements for Private Networking with SGA (Public Cloud) or Private Networking with SGA (AHV).
  3. Frame account must be configured for private networking or private networking with SGA 3.5. Attaching an SGA 4 Cluster to a Frame account that is already using SGA 3.5 will configure the Frame account to use the SGA 4 Cluster. The SGA 3.5 VMs are not impacted.

If the Frame account was created using a Frame-managed network and the SGA 4 Cluster was automatically deployed, then Frame control plane will automatically peer the SGA 4 network and Frame account network together. If the Frame account was created using customer-managed networking and the SGA 4 Cluster was manually deployed, the customer must configure all networking elements to allow bidirectional traffic between the SGA 4 nodes and the Frame account workload VMs.

Procedure

  1. Navigate to the Settings page of the Frame Account Dashboard.
  2. Click on the Networking tab and then Attach SGA 4.0.

image.png


3. Specify the SGA cluster you wish to attach this Frame Account to from the list of SGA 4 clusters that have at least one available SGA 4 node will available.

image.png


4. Click **Attach** to attach Frame account to the SGA 4 Cluster.

Maintenance Mode

Manually-deployed SGA 4 clusters provide the option to place one or multiple nodes into Maintenance Mode. When this mode is activated, the selected SGA node enters Maintenance status, meaning it will no longer receive new session requests. Instead, incoming sessions will be forwarded to the remaining active nodes in the cluster.

Existing sessions currently hosted on nodes in Maintenance Mode will continue to run without interruption.

To enable Maintenance Mode for your manually-deployed SGA 4 cluster, simply click the kebab menu to the right of the node name and select Start Maintenance.

image.png


The status of the node will be reflected under the **Status** column in the Nodes list.

image.png


Lastly, Maintenance Mode can be stopped by again clicking on the kebab menu to the right of the desired node and selecting **End Maintenance**.

image.png


Detach Frame Account

  1. Navigate to the Settings page of the Frame Account Dashboard.

  2. Click on the Networking tab and then Detach SGA 4.0.

image.png



3. Click Detach to detach the Frame account from the SGA 4 Cluster.

image.png

  If your Frame account was attached to SGA 3.X before the Frame account was attached to SGA 4, the SGA 4 detach                  operation will revert the Frame account to use SGA 3.X, as the above figure illustrates. This can be used to rollback to SGA      3.X if necessary (until SGA 3.X is end of life).

Automating Deployment of SGA Nodes

If you plan to automate SGA 4 VM deployment, prepare an SGA VM cloud configuration file (YAML file) that will be used when you provision your SGA VM by replacing <paste_activation_code_here> with the actual Activation Code value in the following template.

#cloud-config

runcmd:
  - set_sga_env SGA_ACTIVATION_CODE <paste_activation_code_here>

Verify that you have #cloud-config as the first line in your SGA VM cloud configuration file.

If you choose to specify the Activation Code in your SGA VM cloud configuration file for AHV, then make sure both SGA_CLOUD_PROVIDER and SGA_ACTIVATION_CODE environment variables are set in the configuration file. For example, in a manually deployed SGA 4 on AHV where the activation code is provided in the SGA VM Cloud Configuration file:

#cloud-config 

runcmd:
  - set_sga_env SGA_CLOUD_PROVIDER nutanix
  - set_sga_env SGA_ACTIVATION_CODE <paste_activation_code_here>

The YAML file contents will need to be added as a Cloud-init Custom Script (AHV), to User data (AWSIBM), to Custom data (Azure), or as the value for the user-data metadata key (GCP) as part of the SGA VM provisioning workflow.

Manual Assignment of Static IP Address

For customers who require their SGA VM to have a static private IP address (versus a DHCP-provided private IP address), administrators can login to the SGA VM via their cloud provider's serial console and run the SGA configuration utility. Alternatively, while inside the SGA VM, they can use the following procedure to configure the static IP address of the Ubuntu VM’s network interface and the DNS servers needed to resolve Frame control plane endpoints.

After connecting into the SGA 4 VM, execute the following steps at the Ubuntu command line:

  1. Create a netplan configuration file at /etc/netplan/99_config.yaml by executing:
sudo vi /etc/netplan/00-installer-config.yaml 

with the following YAML file template, modifying the template for the static private IP address of the SGA VM and the gateway private IP address:

network:
  version: 2 
  renderer: networkd 
  ethernets: 
    eth0: 
      addresses: 
        - 10.10.10.2/24 # Static private IP address of the SGA VM. 
      routes: 
        - to: default 
          via: 10.10.10.1 # Private IP address of the gateway 
      nameservers: # set DNS servers and search domains 
          search: [mydomain, otherdomain] 
          addresses: [10.10.10.1, 1.1.1.1]

      2. Execute sudo netplan apply to set the static private IP address.

      3. Execute sudo resolvectl dns ens3 8.8.8.8 8.8.4.4 1.1.1.1 to configure the DNS servers that will resolve domain
          names

      4. Verify that your DNS configuration is configured as your network requires by running sudo resolvectl

Monitoring

You can monitor the availability of the SGA Nodes and Clusters in the Streaming Gateways page at the Customer or Organization entity levels. To monitor the CPU, memory, and bandwidth utilization of your SGA VMs, use the monitoring functionality provided by your infrastructure provider.

Adjust Your SGA VM Size

After you have created your SGA VM, you can adjust the size of the VM through the console of your infrastructure hosting your SGA VM. We do recommend the following procedure in your infrastructure console:

  1. Power off your SGA VM.
  2. Change the instance type to a smaller (or larger) instance type.
  3. Power on your SGA VM.

  Since users will not be able to reach the workload VMs behind your SGA VM during the time that your SGA VM is                    unavailable, you will need to schedule a maintenance window to perform this operation if you only have one SGA VM or        have more than one SGA VM in a high-availablity configuration.

Troubleshooting

Networking

You can verify that the SGA VM can reach the Frame control plane by using the following command within the SGA VM OS:

curl -v 'https://cch.console.nutanix.com/sga/verify' -H "Content-Type: application/json" -X POST -d '{"code":"dummy_code"}' 

This is useful if you encounter issues registering the SGA VM or if the SGA VM status is Unavailable in the Frame Console.

Services

If the SGA VM is not available in Frame Console, check the status of the SGA service.

sudo systemctl status sga.service - sga elixir app status 

If the SGA node is not accepting FRP8 sessions, check the status of the coturn service.

sudo systemctl status coturn.service - coturn status 

The logs for these two services can be viewed by executing one of the following commands:

sudo journalctl -fu coturn.service - follow the logs of coturn 
sudo journalctl -fu sga.service - follow the logs of sga elixir app