# Deploying Sisense on Amazon EKS

> How to Deploy Sisense on Amazon EKS

*Source: https://docs.sisense.com/main/SisenseLinux/deploying-sisense-on-amazon-eks.htm*

---

Last updated: June 10, 2026

|  |  |
| --- | --- |
| [Tier](https://www.sisense.com/pricing/#pricing) | [Deployment](https://docs.sisense.com/main/SisenseLinux/introduction-to-sisense-cloud-managed-services.md#ComparisonofManagedCloudandSelfHosted) |
| Enterprise | On-Prem |

Sisense can be provisioned on an existing Kubernetes cluster on Amazon EKS.

To provision Sisense, you must download and extract the Sisense Linux archive. This archive includes a configuration
YAML file, which contains all the configuration settings for deploying a multi-node cluster on Amazon
EKS.

Note:

This archive includes a configuration YAML file containing all the settings required to deploy a cluster on Amazon EKS. While single-node deployment is technically supported, it is limited and not recommended for production use.

You can customize your installation by setting various parameters in the cloud configuration YAML file. Once the
parameters have been defined, you run the script to deploy Sisense, and then retrieve the URL to access the Sisense
application online.

A Workers node group should be placed on a private subnet and use a managed EKS node group. For ALB support, you must
have at least 2 public subnet additions.

## Support for EBS Volume Types GP2 and GP3

Deploying the cluster on AWS gives you the option to select either the GP2 or the GP3 EBS volume type.

**Note:**

GP2 is the default EBS volume type option used in the installation.

If you wish to switch to GP3, **prior to installation**:

- Edit the file `installer/extra_values/installer/installer-values.yaml` and change the toggle `ebs_csi.enabled` from `false` to `true`. (Leaving the configuration set to `false` means the GP2 volume type will be used.)
- Follow the instructions found in [Implementing Amazon EBS CSI Driver for GP3 Volumes](https://docs.sisense.com/main/SisenseLinux/implementing-amazon-ebs-csi-driver.md).

## Auto Scaling

Sisense supports auto scaling for your EKS nodes.

When **cloud\_auto\_scaler** is set to **true**, Sisense manages the scaling of nodes as
needed. If a node fails or your load is higher than normal, additional nodes can be added.

**Note:**

If you are deploying Sisense on EKS offline, the Sisesne Auto-Scaler is not supported. You can implement your own
EKS auto-scaler for your subnets.

## ulimit Setting

You must increase the default ulimit setting, see [Increasing Docker ulimits](https://docs.sisense.com/main/SisenseLinux/increasing-docker-ulimits.md).

The Docker ulimit restricts a program's resource utilization so a run-away bug or security breach cannot cause
your system to shut down. The default limit for Amazon AWS is 1024, which is not enough for Sisense to run
properly.

## Prerequisites

Before you deploy Sisense, your deployment should meet the prerequisites below:

- Supported Linux OS (Ubuntu / Amazon Linux 2 / CentOS / RedHat7 / Amazon Linux 2023\*)

Note:

When using EKS with node groups on AL 2023, the FSX Lustre version must be 2.15 or newer.

- AWS CLI: [Installing, updating, and uninstalling the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)
- Deployed cluster that meets the minimum requirements
- You must mark your worker nodes with labels recognized by Sisense, see [Autoscaling and Linux](https://docs.sisense.com/main/SisenseLinux/autoscaling-and-linux.md)
- Nodepools/Nodegroups, etc. must be labeled in the deployed k8s cluster with Sisense related labels (`node-${NAMESPACE}-Application=true`, `node-${NAMESPACE}-Query=true`, `node-${NAMESPACE}-Build=true`; for example: `node-sisense-Application=true`, `node-sisense-Query=true`, `node-sisense-Build=true`) if autoscaling is enabled. For some cloud providers, not all autoscaling is enabled by default; this must be done before installing, otherwise when nodes are recycled, new nodes will lose the labels added by the Sisense installer.
- For FSX for Lustre storage\_type
- Create a new Security Group with inbound port 988 to the EKS node groups and attach it to the FSx on the
  creation step
- Only if you use a Custom DNS service within EKS, such as a custom CoreDNS, you must add .sisense zone as a
  conditional forward
- See [Creating a Service Account for the EBS CSI Driver on EKS](https://docs.sisense.com/main/SisenseLinux/creating-a-service-account-for-the-ebs-csi-driver-on-eks.md).

**Notes:**

- Sisense does not currently support working with AWS Fargate.
- EFS performance is not sufficient for building ElastiCubes on it. If EFS is a core requirement, use the Build/Query on local feature or Live models only.

### Minimum IAM Policy that Allows **Eksctl** Main Actions

[Minimum IAM policies - Eksctl User Guide](https://docs.aws.amazon.com/eks/latest/eksctl/minimum-iam-policies.html)

### Minimum IAM Policy that Allows Clusters to Manage Nodes

[Amazon EKS cluster IAM role - Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/cluster-iam-role.html)

[Copy](javascript:void(0);)

```
{  
  "Version":"2012-10-17",  
  "Statement": [  
    {  
      "Effect": "Allow",  
      "Action": [  
        "ec2:CreateTags"  
      ],  
      "Resource": "arn:aws:ec2:*:*:instance/*",  
      "Condition": {  
        "ForAnyValue:StringLike": {  
          "aws:TagKeys": "kubernetes.io/cluster/*"  
        }  
      }  
    },  
    {  
      "Effect": "Allow",  
      "Action": [  
        "ec2:DescribeInstances",  
        "ec2:DescribeNetworkInterfaces",  
        "ec2:DescribeVpcs",  
        "ec2:DescribeDhcpOptions",  
        "ec2:DescribeAvailabilityZones",  
        "ec2:DescribeInstanceTopology",  
        "kms:DescribeKey"  
      ],  
      "Resource": "*"  
    }  
  ]  
}
```

### Minimum Permissions to Create an Amazon EKS Cluster

[Create a Kubernetes cluster on the AWS Cloud](https://docs.aws.amazon.com/eks/latest/userguide/security-iam-id-based-policy-examples.html#policy-create-cluster)

[Copy](javascript:void(0);)

```
{  
    "Version":"2012-10-17",  
    "Statement": [  
        {  
            "Effect": "Allow",  
            "Action": "eks:CreateCluster",  
            "Resource": "arn:aws:eks:us-west-2:111122223333:cluster/my-cluster"  
        },  
        {  
            "Effect": "Allow",  
            "Action": "iam:CreateServiceLinkedRole",  
            "Resource": "arn:aws:iam::111122223333:role/aws-service-role/eks.amazonaws.com/AWSServiceRoleForAmazonEKS",  
            "Condition": {  
                "ForAnyValue:StringEquals": {  
                    "iam:AWSServiceName": "eks"  
                }  
            }  
        },  
        {  
            "Effect": "Allow",  
            "Action": "iam:PassRole",  
            "Resource": "arn:aws:iam::111122223333:role/cluster-role-name"  
        }  
    ]  
}
```

## Deploying Sisense on Amazon EKS

1. Download a Sisense version package. Contact your Sisense Customer Success Manager for a link to the latest version.  
   `wget $sisense_url`
2. Create a new FSx in the same VPC of the EKS environment.
3. Extract the Sisense package.  
   `tar zxf $package_name`
4. Navigate to the directory where you extracted the tar.gz file.  
   `cd sisense-$sisense_version`
5. Access the config.yaml file.  
   `vim cloud_config.yaml`
6. Edit the following values in the `cloud_config.yaml` file.

   **Note:**

   The `cloud_config.yaml` contains many parameters that must be defined when provisioning Sisense on Linux. This table only describes the mandatory parameters when provisioning Sisense on Amazon EKS. For a full explanation of the `cloud_config.yaml` file, see
   [Installing Sisense on Linux](https://docs.sisense.com/main/SisenseLinux/installing-sisense-on-linux.md).

   | Parameters | Value |
   | --- | --- |
   | ``` k8s_nodes: - { node: node1, roles: "application, query" }  - { node: node2, roles: "application, query" }  - { node: node3, roles: "build" } ``` | K8S node/nodes are the set of machines that will run Sisense.  **node:** Enter the name of your nodes to be included in the cluster. You can retrieve their values with the command:   ``` kubectl get nodes ```   **roles****:** Define the role of the node with one of the following values:  - Query - Application - Build **Note:**  Node names may not include uppercase letters. Node names can only include lowercase letters, digits and hyphens. Hyphens cannot be the last character in the node name.  The installation machine is only used during installation to run the installation scripts. The Installation machine can be one of the K8S nodes, but it can also be a different machine (remote installation). |
   | ``` deployment_size: "small" ``` | Set to **large** to increase pod resource limits allocated for the application. |
   | ``` cluster_visibility: true ``` | For security restrictions that revoke cluster role permissions, set to false to disable the following Sisense workflows. - Watching Sisense Nodes that exist or are added to the cluster (for example, for the   data-groups feature). In this case, a customer should use manual labeling method - Updating the logging system with the customer registered owner ID. |
   | ``` offline_installer: false ``` | (Optional) Only required if you are using an offline installer.  Enter **true** when you are using an offline installer. |
   | ``` #docker_registry: "" ``` | Enter your server's address. |
   | ``` #pull_secrets_name: "" ``` | (Optional) Only required if you have entered a value for the docker\_registery parameter  Enter the docker secret name if your registry is private. |
   | ``` update: false ``` | Enter **true** if you are upgrading Sisense.  Otherwise, use false as the default value |
   | ``` Notify_On_Upgrade: true ``` | If set to true, the Sisense application will not be accessible during upgrades. Instead, a system maintenance notification will appear. |
   | ``` is_kubernetes_cloud: true ``` | Enter **true** if you already have a Kubernetes cluster. |
   | ``` kubernetes_cluster_name: "" ``` | Enter the Kubernetes cluster name. |
   | ``` kubernetes_cluster_location: "" ``` | Enter your Kubernetes cluster location.  For Amazon EKS, the value should be your region. |
   | ``` kubernetes_cloud_provider: "" ``` | Enter **aws**. |
   | ``` cloud_load_balancer: false ``` | Enter **true** if you have defined a load balancer on your Sisense Linux cloud instances to automatically distribute traffic across multiple nodes.  For more information, see [Setting Up a Load Balancer](https://docs.sisense.com/main/SisenseLinux/setting-up-a-load-balancer.md) |
   | ``` cloud_load_balancer_internal: false ``` | Set this to **true** to set an internal load balancer. Set this to **false** to set an internet-facing load balancer.  For more information, see [Setting Up a Load Balancer](https://docs.sisense.com/main/SisenseLinux/setting-up-a-load-balancer.md). |
   | ``` cloud_auto_scaler: false ``` | Enter **true** if you want Sisense to integrate with EKS node auto-scaling when needed. |
   | ``` high_availability: true ``` | **True** means that Sisense is scaled for service redundancy. **False** means that Sisense will not scale its services. |
   | ``` application_dns_name: "" ``` | Enter the DNS name.  - If no DNS name is entered, the default value is the external IP of the first   node in the cluster. - If the is\_ssl parameter is set to true, enter the Common Name for this   parameter. - If an external load balancer is used for the Common Name, add the `http://` or   `https://` prefix to the entry. **Note:**  You can only define this parameter when installing or upgrading Sisense. After defining this value, you can view this value under General Settings in the Sisense Admin page. |
   | ``` linux_user: "" ``` | Enter the name of the Linux user.  This user must not be the "root" user, but should have sudo privileges, and all the other privileges as a root user. |
   | ``` ssh_key: "" ``` | Enter the SSH key if you have a secure connection to your server. The SSH key of the Linux user-defined in the linux\_user parameter.The SSH key must be in .pem format. |
   | ``` storage_type: "" ``` | Enter **fsx** for Amazon EKS for using Amazon FSx cluster. You must also enter values for `fsx_dns_name` and `fsx_mount_name`. |
   | ``` fsx_dns_name: "" ``` | This is relevant for FSx implementations  If your system uses AWS FSx services, enter the associated DNS name. |
   | ``` fsx_mount_name: "" ``` | This is relevant for FSx implementations  If your system uses AWS FSx services, enter the mount name for the file system.  If you are using Scratch 1, enter **fsx**. |
   | ``` mongodb_disk_size: 20 ``` | Enter the amount of disk space allocated for the Sisense application database.  This value should be multiplied by the number of nodes used in your deployment.  It is recommended to leave the default of 20GB. If only metadata is stored in the MongoDB, there is no need to increase the size. |
   | ``` zookeeper_disk_size: 2 ``` | Enter the amount of disk space allocated for the ZooKeeper service.  This value should be multiplied by the number of nodes in your deployment.  It is recommended to leave the default of 2GB. If only metadata is stored in the Zookeeper service, there is no need to increase the size. |
   | ``` timezone: "UTC" ``` | data-pm-slice='1 1 ["table",null,"tableRow",null,"tableCell",null]'>Enter the system time zone.  Applicable to the time zone of the relative date-time filters.  Format: [TZ database name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) (i.e., UTC, US/Central, Asia Tokyo, Etc/GMC+6). |
   | ``` namespace_name: sisense ``` | Enter the name of the Kubernetes namespace. By default, the namespace is Sisense.  If you have multiple deployments, you should have a unique namespace for each deployment. For example, there might be a development and production environment.  Additionally for multiple deployments:  - Each environment must have a unique `gateway_port` value. - Each deployment after the first, the value of the update should be set to true. **Note:**  Kubernetes ports should be released (Non-listening mode). |
   | ``` gateway_port: 30845 ``` | Enter the port of the API gateway for your deployment. Do not set this port to 443 if setting up SSL.  If you are not implementing SSL, this is the port used to connect to Sisense. |
   | ``` is_ssl: false ``` | Enter **true** for secure connections to Sisense.  Enter **false** if you have not implemented SSL.  If you enter true, see [Setting Up SSL for Sisense on Linux](https://docs.sisense.com/main/SisenseLinux/setting-up-ssl-for-sisense-linux.md). |
   | ``` ssl_key_path: "" ``` | If you connect to your server securely, enter the SSL keypath.  When the SSL is defined, the Sisense API Gateway Port will be 443 and not the value defined in the `gateway_port` parameter. |
   | ``` ssl_cer_path: "" ``` | If you connect to your server securely, enter the SSL certificate path (.cer file). |
   | ``` internal_monitoring: true ``` | Enter **false** to disable a Prometheus supported Grafana dashboard from monitoring your deployment. See [Monitoring Sisense on Linux](https://docs.sisense.com/main/SisenseLinux/monitoring-sisense-on-linux.md). |
   | ``` uninstall_sisense: false ``` | Enter **true** to uninstall Sisense services, but leave your Kubernetes infrastructure unchanged, in case it's needed in the future. |
   | ``` remove_user_data: false ``` | Enter **true** to delete all user data.This deletes your ElastiCube models, application database, message broker, and add-ons. |
   | signature\_validation: false | Enter **true** to enable [Image Signature Validation](https://docs.sisense.com/main/SisenseLinux/image-signature-validation.md). |
7. Run the configuration script.  
   `./sisense.sh cloud_config.yaml`

   Your configuration settings are displayed with a message to confirm that you want to deploy Sisense with these settings.
8. Enter **Yes** to confirm that you want to deploy Sisense or enter **No** to abort the deployment.

   If you entered **Yes**, the script deploys Sisense. If there are any issues, you can view the installation logs here:  
   `[installation-dir]/sisense-ansible.log`
9. To access Sisense, enter the address displayed in the endpoints listed in the CLI into your browser.

   You can also retrieve the address from the sisense-ansible.log file in the installation directory.

   - See the Sisense App line for the Sisense access address
   - See the Kubernetes dashboard line for the k8s dashboard URL
   - The k8s dashboard URL must be installed in your cluster. For instructions, see the tutorial at [Deploy the Kubernetes Dashboard (web UI)](https://docs.aws.amazon.com/eks/latest/userguide/dashboard-tutorial.html).
