Prerequisites

This document details the minimal requirements that must be met by the VM(s) on which you intend to set up the ScaleGrid Enterprise Server installation. If you have already set the machines up, please proceed to Controller Installation.

If you are looking for a simpler, less verbose guide, please have a look at our Quick Start Guide

Minimum System Requirements

  • Architecture: x86_64 only
  • RAM: >= 16 GB
  • CPU: >= 2 cores
  • Disk space: >= 120 GB free on the root volume; the entire 120GB free space must be available in the root partition.

Supported Operating Systems

ScaleGrid Enterprise Server currently supports the following operating systems

  • CentOS 7
  • RHEL 7
  • AWS Linux 2

Network Requirements

  • The machines must have outbound internet connection during installation.
  • All machines must be able to communicate with each other (preferably via private IPs)

Security Configuration

ScaleGrid server requires ports used by the following services to be opened/enabled:

Port

Notes

TCP 443

Used for HTTPS access to the web UI. Needs to be open to all clients that wish to access the ScaleGrid UI

TCP 80
TCP 443
TCP 5671

All deployed database servers need to be able to reach back to the ScaleGrid Enterprise Server on these ports

TCP 4369
TCP 5671
TCP 5672
TCP 15672
TCP 25672
TCP 55672
TCP 35672 - 35682
TCP 3306
UDP 5405

These are needed only for multi-node ScaleGrid controller deployments. These ports need to be open between the controller nodes.

🚧

If your VMs are behind a security group, please ensure to open the relevant ports for ingress in the security group. The ScaleGrid installation process will update iptable/firewalld appropriately on the VMs.

Disable GPG Armour

The ScaleGrid installation scripts need to enable the EPEL repository. Since the EPEL repo does not support GPG Armour on server side yet, please run the following command on all nodes →

sudo sed -i -e '$arepo_gpgcheck=0' /etc/yum.conf

Alternately, you can enable EPEL repo yourself.

Backup Configuration

It is important to take regular backups of your ScaleGrid Enterprise Server, and store them away from the primary system. For this reason, the installation process will set up automated backups that run every night. We strongly recommend these backups be stored on an NFS share. Please create and mount a NFS share before proceeding further.

The backup will be executed on the node where you are running the installation from. If this node goes down/needs to be replaced, please reach out to ScaleGrid Support to ensure uninterrupted backups.

User Configuration

To perform a single-node installation, you will need a user who can

  • Acquire sudo privileges on all the VMs, without specifying a password.

To perform a multi-node installation, you will need a user who can

  • SSH into all the VMs as themselves (i.e. the user must exist on all the machines with the same user-id)
  • Acquire sudo privileges on all the VMs, without specifying a password.

Please note, we do not allow running the script as root, since SSH-access for root should be locked down for security reasons.

SSH Configuration

📘

This is only required for multi-node, HA installation. If you are setting up a standalone system, you can skip this section

For multi-node deployments, each VM must have passwordless SSH set up. If you need help with setting up password-less key-based SSH access, please refer to this tutorial. We recommend using a different key for each node, for maximum security.

The installation scripts depend on automated SSH access, without having to explicitly specify the keys. To enable this, select one node where you will run the installation scripts from. On that node,

  1. Copy the private key for each node (including itself) to a file under ~/.ssh. Each file should contain one key.

  2. Update the permissions on the file(s), so only the owner has read-access.
    For example:
    chmod 400 ~/.ssh/key_for_node1

  3. Add the files to your SSH configuration, so it is automatically tried during SSH.
    For example:
    echo "IdentityFile /home/centos/.ssh/key_for_node1" >> ~/.ssh/config

Now you are ready to proceed to installation. Before you jump into it, you might want to take a look through the input parameters that’ll be required.

[Optional] Setting up a subdomain in Route53

ScaleGrid Enterprise Server uses AWS Route53 to automatically assign DNS names to your database servers. For this, we recommend setting up a sub-domain of your main domain on AWS Route-53 for use with your database servers, .e.g dbservers.<mydomain>.com

📘

Using ScaleGrid Enterprise Server without DNS

You can specify the --noDNS flag during installation to configure ScaleGrid Enterprise Server to skip DNS entry creation. Some HA deployments would require a virtual IP instead. In such installations, Route-53 details are not required - you can proceed directly to Controller Installation

  1. Navigate to the Route53 tab in the AWS console
723723
  1. Create a “Hosted Zone” in Route53 by choosing a name for the subdomain
619619
  1. Once the zone is created note down the ID of the zone and the 4 dns servers associated with your zone
681681
  1. Now add a NS record to your main DNS server to point the subdomain to the four DNS servers for the zone hosted in AWS
  2. Add a dummy DNS record to the new zone and make sure it resolves

Creating an IAM user to edit the newly created DNS subdomain

Create an IAM user with the following policy. This policy gives the user full access to edit only this subdomain

{
    "Version": "2018-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "route53:*"
            ],
            "Resource": "arn:aws:route53:::hostedzone/<zoneid>"
        },
        {
            "Effect": "Allow",
            "Action": [
                "route53:GetChange"
            ],
            "Resource": "arn:aws:route53:::change/*"
        }
    ]
}

Download the IAM keys of the user and enter Access and Secret key when prompted by ScaleGrid setup

And that's it - now you are ready to perform Controller Installation!