Qlik Sense On AWS Deployment Guide
Qlik Sense On AWS Deployment Guide
Deployment Guide
Contents
1. Abstract
2. Introduction
a. Qlik: A Primer
3. Qlik: A Primer
4. Qlik on AWS – High Level Architecture
5. Installation
6. Scalability and Sizing
7. Connectivity
8. Creating a new Qlik Sense Application
9. Reference Architecture
10. Storage and Access Patterns
11. Security and Authentication
12. Operations
a. Using the Qlik Management Console
d. Schedule Tasks
e. Publishing Applications
b. Load Balancing
Amazon Web Services (AWS) is a flexible, cost-effective, easy-to-use cloud computing platform. Qlik
Sense is a platform that delivers visual analytics to where they deliver matter the most value – the point at
which decisions are made. Qlik’s platform is widely deployed on AWS Cloud infrastructure to support
analytics and visual analysis at various levels within organizations. Running Qlik Sense solutions on
Amazon Elastic Compute Cloud (Amazon EC2) is a great option for organizations of any size that want to
deliver SaaS (software as a service) solutions to internal and/or external users with cost effective, high-
performing operations on any number of data sources. SaaS solutions based on Qlik’s platform and
delivered through AWS Cloud infrastructure enable individuals and teams to easily create and share
applications with a wide number of users across multiple devices.
This Deployment Guide provides an overview on how to deploy and implement the Qlik Sense platform
on the AWS Cloud infrastructure including architectural considerations and configuration steps that
explain how Qlik Sense can leverage various AWS services such as Amazon Redshift, Amazon Elastic
Compute Cloud (Amazon EC2), Amazon Virtual Private Cloud (Amazon VPC), AWS Directory Service,
and Amazon Relational Database Services (RDS) to run scalable, secure and reliable analytical
solutions.
Introduction
AWS provides an infrastructure with all the services and computing power needed to provide global
solutions that can reliably perform as needed, regardless of unexpected changes in demand and
concurrency across various levels of any organization. Qlik® Sense is a next-generation visual analytics
platform that empowers everyone to see the whole story that lives within their data. It supports a full
spectrum of BI use cases including self-service visualization for everyone, centrally deployed guided
analytics apps and dashboards, embedded analytics, and reporting, all within a governed framework that
drives enterprise scalability and trust for IT. This gives everyone the ability to answer not just ‘what
happened’, but ‘why’ and ‘what it is likely to happen next’. Qlik is the first and only analytics software
vendor that can do this by providing a fully integrated, simple and intuitive visual analytics platform,
powered by Qlik’s patented in-memory associative data indexing engine that delivers analytics and
therefore insight right to the point of decision. Qlik delivers a complete analytics solution, including:
Qlik is a Business Intelligence platform which provides “Managed Analysis” and Data Visualization
capabilities allowing people to navigate and filter freely on any of the data elements in a rich multi-sheet
dashboard. All visible objects are recalculated after a user performs selections (highlighted in green)
causing associated data to be clearly distinguishable (highlighted in white) from non-associated data
(highlighted in grey). This is usually referred as ‘the associative experience’ and it is the foundation for the
data discovery capabilities within Qlik. Basically, the ability to understand the data and make new
discoveries in a visual way. Qlik is able to deliver visual analytics in a variety of ways, each a category in
its own right.
• Self-Service Data Visualization empowers all users to create and explore visual analytics in a
self-service manner, whether it’s a local spreadsheet or large datasets from multiple systems-of-
record. For some, this could mean starting from scratch to look at ad-hoc combinations of data to
investigate a hunch, or confirm a theory. For others, it simply means re-using pre-constructed and
re-usable analytics applications, with the ability to modify to suit their individual needs. The
advantage with Qlik is that Qlik solutions don’t trade off agility for trust and scalability. Users have
easy-to-use, drag-and-drop self service capabilities, while still operating in a framework of
security and trusted data models that lead to trusted insights.
• Guided Analytics provides data driven applications and dashboards -typically developed by IT or
technical business analysts-, for consumption by others within their day-to-day operational
processes. An example of guided analytics app would be an interactive dashboard where users
can search and filter information in a structured manner, and use pre-defined navigation options
to move to different views to support better decision making with less complexity for the end user.
• Embedded Analytics provides the ability to insert analytics and visualizations into any workflow
or application. This furthers the goal of delivering analytics and insight exactly where and when it
is needed, to improve understanding and decision making throughout the organization.
• Custom Analytics Application provides the ability to create custom mashups that leverage out-
of-the-box as well as custom design visualizations for various types of analytics. These custom
applications and mashups can be easily deployed as standalone solutions and/or as part of a
larger application while still providing the same associative experience as a traditional Qlik
application.
To learn more about such component services and how to architect a Qlik Sense environment, visit the
following links:
http://help.qlik.com/en-
US/sense/June2017/Subsystems/PlanningQlikSenseDeployments/Content/Deployment/Architecture.htm
http://help.qlik.com/en-
US/sense/June2017/Subsystems/PlanningQlikSenseDeployments/Content/Deployment/Services.htm
Cloud based solutions are prevalent in almost every single Industry and Qlik’s customers are eager to
implement Qlik Sense environments on AWS infrastructure so they can rapidly deploy new applications
in a simple, cost-effective and scalable manner. The difficult and lengthy procurement process for on-
premises equipment makes it hard to meet deployment timelines, but customers can spin up new AWS
infrastructure on demand in minutes. For those customers, the AWS based approach is ideal for SaaS
solutions. This guide will help customers pursuing this approach so that they understand the different
aspects of AWS and Qlik that will be involved in the setup and configuration of the environment.
Some of the characteristics that tend to be similar across Organizations that go with Qlik and AWS
implementations are:
• Pre-requisites:
- Tight timeline to develop and deploy Qlik Sense applications
- Proactive support and stewardship from IT (i.e. Active Directory extract which can be used by an LDIF,
Direct Connect, etc.)
• Competencies
- Good understanding of AWS architecture and services (i.e. AWS EC2, AWS VPC, AWS Elastic IP,
AWS S3, AWS RDS, AWS EMR, AWS Redshift, AWS Cloud formation, etc.) within the team
- Internal resources that can maintain and manage the Qlik and AWS environments are available
- Ability to setup a QA environment within AWS and appropriate time for testing is available
• Constraints
- Data complexity is not too high
- Volume and frequency of data updates will not interfere with the cloud-based approach (i.e. clear
strategy on nightly incremental feeds)
• Amazon Redshift
While this document covers general steps for Qlik Sense product installations and software configuration
tasks, careful consideration on configuration topics is strongly recommended when you are planning and
deploying Qlik Sense Solutions on AWS Cloud in Production environments. For more advanced
scenarios, consult with Qlik Professional Services and/or one of Qlik’s Solution Integrator partners. For
generic Qlik Sense software configuration guidance and best practices, consult the Qlik product
documentation available at http://help.qlik.com . If you are new to AWS, see the ‘Getting Started’ section of
the AWS documentation (which provides high level references and links to specifics areas of
documentation) at: http://docs.aws.amazon.com/gettingstarted/latest/awsgsg-intro/intro.html
Installation
In order to install Qlik Sense on AWS, you should download Qlik Sense Enterprise from
http://www.qlik.com/download (a Qlik account will be needed in order to access the download site). Before
you launch an AWS EC2 instance (to learn more visit: http://aws.amazon.com/ec2/) where you can install
Qlik Sense Enterprise, follow the next steps:
1. Create a security group for Qlik Sense (the name could be something generic such as Qlik
Sense) with the rules in the following screenshot.
Using the left navigation panel within the AWS Management Console, go to EC2 > Security
Groups. Click “Create Security Group”.
If you are using VPC, the VPC ID can be entered here at this time, or it updated later once it is
available. In the diagram, both HTTP and HTTPS are selected, but in most installations, you
would choose one of them (typically only HTTPS).
3. Launch a Windows Server 2012 R2 Base instance. Using the AWS Management Console, go
to EC2 > Instance and click “Launch Instance”. This will start a seven step process to create the
instance.
a. Choose AMI: Using the Quick Start option use Windows Server 2012 R2 Base. Click ‘Next’ to continue.
If for whatever reason you have already an AMI available that will be used for this purpose, typically, the
following characteristics are desired as a minimum:
• Clean O/S
• .Net 4.5.2 installed and updates applied (default is 4.5 for Windows 2012)
Notice that other larger instances are available and could be used. Some of the larger servers
may require an email to AWS support first, depending on your organization’s current usage and
limits. If a larger server may be needed, please refer to the next section: “Sizing and Scalability”.
Note: while it is better to go through all the steps, if the ‘Review and Launch button is clicked at
this point, a warning about security groups will come up. Change from the default security group
to “Qlik Sense” security group that was previously created.
c. Configure Instance: this section will show the default configuration options. On this screen, the new
instance could be assigned to the default VPC network or to a new one if needed. Set your VPIC, or if
there are no changes, click ‘Next’ to continue.
d. Add Storage: this section will show the default storage assigned to the new instance. Typically, the
default disk type assigned (general purpose SSD) will be sufficient. For any scenario other than a
simple proof of concept, we recommend you increase the size of the root volume to at least 100GB+. If
the instance is going to be used for a Production environment where large volumes of data will be
handled with frequent reload of Qlik Sense applications, the speed of the disk may become a
bottleneck. In this case you may need to increase the size that was allocated to the Qlik Sense system.
While Qlik's engine is primarily memory intensive, larger configurations require appropriate
disk I/O resources as well. Should you need to increase disk performance, the following link
provides some guidance for selecting the appropriate disk configuration (including attaching
additional EBS volumes for extra storage with the similar configuration).
http://aws.amazon.com/ebs/details/#piops
The following link describes the process of adding an EBS volume to an existing instance:
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-attaching-
volume.html?icmpid=docs_ec2_console
After selecting the ‘Qlik Sense’ security group, the Inbound rules configured will be
displayed:
g. Review: in this last section, the configuration of the instance can be reviewed before being launched.
Any modification needed can be made by either using the Back button or the links on the top. Click
‘Launch’ when ready.
5. (optional) Create an Elastic IP so that the server IP address doesn’t change even when the
instance is stopped and started again. Please notice that there is a cost associated with this step,
hence it is marked as optional.
• Create an elastic IP via EC2 > Elastic IPs > Allocate New Address > Yes, Allocate
6. Go back to the EC2 console and wait for the new instance to say “running” and “2/2 checks
passed”
8. Given that the new instance is not part of an existing domain, some local users need to be set up
in order to use Qlik Sense as well as a Service Account to run Qlik Sense Server. In order to
create a Service Account, follow the next steps. Note that this account will be used during the
installation of Qlik Sense
a. On the new instance that is going to be used as the Qlik Sense server, open the Computer
Management window
b. Find the Users folder, then click Action > New User
f. Click Create
g. Double click on 'QSAdmin'
i. Click Add
j. Type 'Administrators'
m. Click 'Users'
n. Click 'Remove'
o. Click 'OK'
In order to create local users, follow the next steps. These are the users that will be used to log into Qlik
Sense.
a. On the new instance that is going to be used as
the Qlik Sense server, open the Computer
Management window
h. Click 'Create'
9. It is typically recommended to document the setup of all accounts in a table format to make it
easy for administrators to keep control of such accounts. For example, the table below is a way in
which such information can be documented. All security rules for password creation that are
specific to an environment, should always be reinforced in Qlik as well.
Optional Accounts
10. Once all users have been created, install Qlik Sense Enterprise.
a. Using a local administrator account on the instance, download the latest version of Qlik Sense
Enterprise from http://www.qlik.com/download
c. Choose “Full Installation” (unless you need to install to a different path, then choose custom install)
e. Choose “Central”
g. Enter the service account user and password. In the case that the instance would be running as part of
a then the format for the domain account would be DOMAIN\USER. Given that a local account is being
used, the format is MACHINENAME\USER. Remember this is a Local Admin account.
h. The following is a critical step, so follow the instructions carefully. Enter the machine name without
the domain name as shown below (replace the machine name with the one below). Avoid using the fully
qualified name.
For example:
• IP address - 10.1.123.234
j. Upon confirmation that all the services are up and running, click ‘Finish’
If the QMC doesn’t come up the first time, wait at least 30 seconds, as the services may still be
starting. A security warning may come up. If so, click through it. If you are prompted to login to the
QMC, login with the same local Administrator account used to RDP into the Qlik Sense Server. If
you cannot connect, make sure that the right security group is being used.
12. Once the QMC opens, it will prompt for the license information. Enter it and click Get LEF from
server. The validation of the license will require internet access. If the server doesn’t have internet
access, contact a Qlik representative to acquire the LEF.
Once validated, a message that tokens have been successfully allocated will appear.
http://help.qlik.com/en-US/sense/June2017/Subsystems/ManagementConsole/Content/manage-QMC-
resources.htm
d. Typically in development and testing environments, it comes handy to have anyone connecting to Qlik
Sense Server being able to get a license. This approach may not be adequate for production
environments. To learn more on how to manage a production environment, visit the following link:
http://help.qlik.com/en-US/sense/2.2/Subsystems/ManagementConsole/Content/manage-license-
and-tokens.htm
In order to grant access for users, either a User Access Rule or a User Directory could be
leveraged. In order to create an access rule, click on the Start button on the top left
corner of the QMC > License and Tokens > User Access Rules >
f. Click “Basic”
i. Creating a User Directory (rather than adding individual rules) allows to have the rules on how to assign
tokens based on such User Directory. In the simplest scenario, a User Directory Connector would be
created. The local Directory could be called anything (i.e. QLIK):
And then a User Access Rule could look like the following:
To learn more about User Directory Connector, visit the following link:
http://help.qlik.com/en-US/sense/June2017/Subsystems/ManagementConsole/Content/create-user-
directory-connector.htm
14. Using the QMC, a proxy can be set up in order to enable HTTP access on Qlik Sense Server and
allow access to Qlik Sense Server over alternate URL formats. For example, to use HTTP instead
of HTTPS in your browser and avoid security warnings. To learn more about the Proxies section
of the QMC, visit the following link:
http://help.qlik.com/en-US/sense/June2017/Subsystems/ManagementConsole/Content/proxies-
overview.htm
Follow the next steps to enable HTTP and add the machine name as part of the proxy values:
a. Open the QMC > click on the Start button on the top left corner > Proxies > Central > Edit
d. Click Apply (a message saying that the proxy will be restarted will show up. Click OK)
e. Click on the Start button on the top left corner > Virtual Proxies > “Central Proxy (Default)” > Edit
f. Click Advanced
g. Scroll down, add values to Host white list to add the following four values
h. If an Elastic IP address was created (optional), add the elastic IP address of the Qlik Sense Server
(external IP address found in EC2 > Instances > Machine > Public IP/Public DNS/Public Domain fields)
n. Add the Public Domain (found in EC2 > Instances > Machine > Public IP/Public DNS/Public Domain
fields)
o. Click Apply. A warning saying that the proxy will have to be restarted will appear. Click OK. If any DNS
entries has been created (e.g., qlikbi.company.com), add these to the whitelist. If using HTTPS, import
a SSL certificate. Adding the values to the Websocket Origin Whitelist allows Qlik to accept URLs of
these formats.
15. The QMC and Qlik Sense HUB should be fully functional at this point. In order to perform a quick
test, the two shortcuts that were created on the Desktop of the AWS Instance could be used. The
Qlik Sense HUB is the single point of entry for all users to perform a number of different activities
such as create new applications, access existing applications, etc. To learn more about the Qlik
Sense HUB, visit the following link:
http://help.qlik.com/en-US/sense/June2017/Subsystems/Hub/Content/Hub/hub.htm
You will know Qlik Sense Server is setup correctly if the browser gives no security warnings.
Notice that the shortcuts that were automatically created will be in the form of:
http://MachineName/hub
http://MachineName/qmc
These addresses will only work locally within the AWS VPC where the Qlik Sense Server
instance was created. In order to enable external access using other URL formats that were
configured during the Qlik Sense Server setup, it is needed to open up some ports. The following steps
explain how to do so:
a. Go to the Windows Firewall with Advanced Security settings (go to Control Panel and search for
Windows Firewall and then go to the Advance Settings).
b. Click on ‘Inbound Rules’ in the left panel, then click on ‘New Rule’ in the right panel.
g. Give the rule a name such as ‘Qlik Sense’ and then click ‘Finish’. This will now allow traffic on those
ports through the firewall to the operating system.
https://AWSPublicDNS /hub
https://AWSInstancePublicIP/hub
https://AWS PublicDNS/qmc
https://AWSInstancePublicIP/qmc
These forms (in case that HTTP was enabled during the configuration) would prompt for the Qlik
Sense user’s credentials (i.e. Administrator, QlikUser1) and direct users to either the Qlik Sense
HUB or QMC:
http://AWSPublicDNS /hub
http://AWSInstancePublicIP/hub
http://AWS PublicDNS/qmc
http://AWSInstancePublicIP/qmc
17. If the request for access is being made from a device running iOS, notice that as of iOS version 8,
untrusted certificates are not allowed. This means that the self-signed certificates that Qlik Sense
Server uses out of the box are not sufficient to enable Qlik Sense HUB nor QMC access on iOS
devices. To learn more about how Qlik Sense Server leverages certificates for authentication
purposes, visit the following links:
http://help.qlik.com/en-
US/sense/June2017/Subsystems/PlanningQlikSenseDeployments/Content/Deployment/Server-Security-
Authentication-Certificate-Trust.htm
http://help.qlik.com/en-
US/sense/June2017/Subsystems/PlanningQlikSenseDeployments/Content/Deployment/Server-Security-
Authentication.htm
As an option, the request could be made using HTTP instead of HTTPS. Another option would be to
install a customer provided certificate on the Qlik Sense Server with private key from a trusted root
certificate authority (e.g. Symantec, GoDaddy, Thawte, DigiCert, or many others) and add this certificate’s
security thumbprint to the thumbprint text box in the Proxy configuration. Installing a trusted certificate in
AWS EC2 requires additional configuration. If a Client Provided Browser Certificate is available, the
certificate could be imported into the Qlik Sense Sever environment by following the next steps:
a. Generate Certificate Signing Request for Trusted Certificate. If a certificate from a Trusted Certificate
Authority is not available yet, visit the following link for instructions on how to generate the CSR.
https://community.qlik.com/docs/DOC-15740
I. Click Start > type MMC > Right Click > Run as Administrator
III. Click Certificates > Click Add > choose My User Account
IV. Click Certificates > Add > choose Computer Account > choose Local Computer
V. Navigate to each folder listed below and import the customer provided certificate
• Certificates - Current User > Trusted Root Certification Authorities > Certificates
• Certificates (Local Computer) > Trusted Root Certification Authorities > Certificates
II. On the right hand side of the screen, click Security to enable additional properties.
e. As a precaution, also enable HTTP traffic (see Proxy Setup section) if you haven’t already for testing
purposes. This will ensure that if this process has issues there is still a way to access the QMC.
Qlik Sense’s services are the cornerstones of the Qlik Sense architecture and are configured to support a
variety of enterprise-ready deployment scenarios. As environments grow in terms of number of users,
number and size of applications, number of data sources, etc., it is important to understand how to size
the environment correctly and how to scale the environment accordingly. Resources need to be allocated
correctly across the following Qlik Sense Services:
• Engine Service – The QIX engine, provides in-memory Associative Data Indexing and
calculation supporting analysis
• Proxy Service – Manages authentication, handles user sessions and load balancing
• Repository Service –Manages Qlik Sense applications, controls access, and handles
configuration
• Scheduling Service – Manages reloads of Qlik Sense applications and other scheduled tasks
• Service Dispatcher – Launch and manage the data profiling service for data load model,
migration service to make sure the app can run in the installed version of Qlik (runs on the
Central Node only) and Chart sharing between two users
* Advanced: Another source that is highly recommended is Qlik’s YouTube channel. There is a series of
3 videos that talk more about Qlik Sense Scalability Tool:
https://www.youtube.com/watch?feature=player_embedded&v=8H0JJYyUft8
https://www.youtube.com/watch?feature=player_embedded&v=GiSF1yV9D9g
https://www.youtube.com/watch?v=3uPuCi7jzN0&feature=player_embedded
Below is the link to the Qlik® Sense Performance Benchmark Technical Brief:
http://www.qlik.com/en/resource-library/qlik-sense-performance-benchmark
As mentioned earlier on this document, Amazon Web Services is a collection of web services that
collectively make up a cloud computing platform. Compared to buying and building a physical server
farm, the three key benefits of Amazon’s cloud platform are:
• Ease of use – a platform can be constructed in hours, unlike acquiring a physical server which
may take weeks
Under the AWS banner, Amazon offers a number of webs services that can be used as data stores where
Qlik Sense applications can pull data from in order to build applications. Such services include:
• Amazon DynamoDB – NoSQL database
http://aws.amazon.com/dynamodb/getting-started/
Qlik Sense server leverages various connectivity mechanisms in order to connect to different kind of
sources. Whether it is an ODBC connection, OLE DB connection, REST API connection or a native
connector to a specific source (i.e. SFDC, SAP, etc.), Qlik Sense will leverage that connection in order to
model, read, parse and load the source data into analytical applications. Qlik Sense applications can
leverage various type and number of sources simultaneously within the same application. Some common
scenarios would be:
• an application that uses both; data stored in Amazon RDS and Amazon Redshift
• an application that uses data coming from an AWS data source as well as a combination between
flat files and web based data sources (i.e. a web service data feed)
• an application that uses data stored in AWS data sources as well as data stored on premises
(this would be called a hybrid application)
To learn more about how Qlik Sense application connect to different data sources, visit the following link:
http://help.qlik.com/en-US/sense/June2017/Subsystems/Hub/Content/LoadData/connect-data-sources.htm
Qlik Sense is great for data sources outside AWS as well. Qlik Sense can connect to these data sources
from the cloud by leveraging a VPN connection (i.e. using a virtual private gateway attached to the
Amazon VPC that talks to a gateway located where the data source(s) in question reside). AWS Direct
Connect is a service that allows enterprises to establish a dedicated network connection from their
datacenter, office or colocation environment to AWS. AWS Direct Connect allows you to bypass the
public Internet when connecting to AWS, which in many cases can reduce your network costs, improve
bandwidth throughput and provide a more consistent and secure network experience. With each AWS
Direct Connect connection, customers can enable one or more logical connections that allow access to
public AWS resources (such as S3 buckets) and private VPC networks. AWS Direct Connect is
compatible with all AWS services, including Amazon Elastic Compute Cloud (EC2), Amazon Virtual
Private Cloud (VPC), Amazon Simple Storage Service (S3), and Amazon Relational Database Service
Once the ODBC driver, has been installed, follow the next steps to create the ODBC DSN that will be
used by Qlik Sense Server:
1. Start the “Data Sources (ODBC) 64-bit” program from the Control Panel in Windows
3. In the System DSN tab, highlight the Sample Amazon Redshift DSN that has been automatically
created during the installation and click the “Configure” button
5. Once all the settings have been set accordingly, click on the ‘Test’ button to make sure that the
connection has been created correctly.
While this document does not cover every single AWS data source, each AWS data source provides
native connectivity that would be leveraged in a similar way by Qlik Sense Server. Depending on the
source in question, AWS provides a number of very good references on how to tune the environment to
achieve the best performance possible from Qlik Sense Server. For example, below are some references
that can be used for Amazon Redshift. Typically, Qlik recommends to leverage the processing power of
AWS Redshift to execute complex SQL queries (i.e. multiple sub-selects, complex join, etc.) and send the
resulting data set to Qlik applications via ODBC. Here are some pointers for designing AWS Redshift
Data Warehouse to get optimal performance to work well with Qlik Sense Server:
• Understanding and analyzing explain plans
http://docs.aws.amazon.com/redshift/latest/dg/c-optimizing-query-performance.html
• Compression
http://docs.aws.amazon.com/redshift/latest/dg/t_Compressing_data_on_disk.html
• Data: when a Qlik Sense application connects to a specific data source, it only captures each one
of the distinct data points once within each field, table, and data source, which allows for
extremely efficient processing. Based on the data structure of the different data sources, the
application automatically builds an associative data model that enables the discovery experience
within the application. Based on the associative data model, different measures and dimensions
can be optionally defined with the app and leveraged throughout various visualizations and
analytics. To learn more about the Qlik Sense associative engine as well as the data loading
process, visit the following links:
http://help.qlik.com/en-US/sense/June2017/Subsystems/Hub/Content/Selections/associative-
selection-model.htm
http://help.qlik.com/en-US/sense/June2017/Subsystems/Hub/Content/Scripting/introduction-data-
modeling.htm
There are many public sources that can be leveraged to learn more about how to build a new application
in Qlik Sense from scratch. These great sources for guidance are: Qlik Community site (registration on
the site is required), the Qlik Help site and Qlik’s YouTube channel. We strongly recommend the first
three links below for those that are getting started with Qlik.
https://community.qlik.com/docs/DOC-7155
https://community.qlik.com/docs/DOC-7156
https://www.youtube.com/watch?v=i5-6v3NqarE
http://help.qlik.com/en-US/sense/June2017/Subsystems/Hub/Content/Visualizations/create-apps-visualizations.htm
https://www.youtube.com/watch?v=WW6tNTH2H5o&list=PLW1uf5CQ_gSrO7bIgP1xF0HowDXnG1S6l&index=3
For more thorough training resources, visit the training section on the Qlik website (under the Training
section):
http://www.qlik.com/services/training/qlik-sense-training
Whether Qlik Sense is deployed to AWS manually or by leveraging AWS Marketplace, the following
components should be deployed and configured as part of the reference architecture:
• An Amazon VPC: Amazon Virtual Private Cloud (Amazon VPC) lets you provision a logically
isolated section of the Amazon Web Services (AWS) cloud where you can launch AWS
resources in a virtual network that you define. You have complete control over your virtual
networking environment, including selection of your own IP address range, creation of subnets,
and configuration of route tables and network gateways. To learn more AWS VPC, visit the
following link: http://aws.amazon.com/vpc/
• Subnet: at least one subnet (either public or private) within the VPC. In the case of just one, it
would be considered the default one
• NAT instance (optional): although not required, in the case of having a public subnet within the
VPC, a NAT instance deployed into the public subnet and configured with an Elastic IP address
(EIP) for outbound Internet connectivity. The NAT instance is used for Internet access if any
Amazon EC2 instances are launched within the private network.
• Instance: A Windows 2012 Server instance deployed in the default subnet for Qlik Sense Server.
• Security groups: one for each instance or node within the environment with restricted access.
Information on the protocols and ports opened will be part of the definition. At the very least, one
group that goes with the VPC
• AWS Identity and Access Management (IAM): depending on the expected administration of the
environment, an AWS IAM may be needed in order to manage fine-grained permissions for
access to various AWS services involved in the deployment process. To learn more about AWS
IAM, visit the following site:
http://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html?icmpid=docs_iam_console
• Qlik Sense: a Qlik Sense node (cluster in the case of the multimode deployment. Multi-node
deployments are outside the scope of this document) configured based on compute and storage
requirements.
As stated earlier, the scope of this document is for a Qlik Sense single node deployment within a single
region within AWS. Hence, one option is to launch the Qlik Sense node within a public subnet providing
direct Internet access. Alternatively, another option is to deploy the Qlik Sense node in a private subnet.
In the case that a configuration file or cloud formation template is being use to manage the deployment,
the configuration file can manage whether the Qlik Sense node should be deployed to a public or private
subnet. The decision on public vs. private deployment is typically based on the overall solution
requirements. The diagram below represents a reference architecture where Qlik Sense is within its own
private subnet and various AWS data sources are leveraged as part of the environment running within
their own private subnet as well.
As mentioned earlier in the section about the installation process, part of the process of creating your
AWS configuration is to allocate enough storage space for the Qlik Sense node. Qlik Sense Server uses
storage for a number of different things, such as storing applications (QVF files), storing metadata
information, storing logging information and logging user sessions. There are three main ways to architect
the storage for this application:
• Ephemeral storage: part of the configuration process of the EC2 instance that is used for the
Qlik Sense server is to determine the amount of storage use the storage within the EC2 instance
before without having to add extra volumes for further storage. Once it is determined the
expected storage space needed, then the storage can be allocated accordingly. This option
provides plenty of storage space, (up to 16 TB - https://aws.amazon.com/about-aws/whats-
new/2015/03/amazon-ebs-increases-maximum-performance-size/ ). This is usually the lowest
cost option.
• EBS (Elastic Block Store): EBS provides persistent block level storage volumes for use with
Amazon EC2 instances in the AWS Cloud. Each EBS volume is automatically replicated within
its Availability Zone to protect you from component failure, offering high availability and durability.
It is important that as part of the planning process, the expected needed storage is determine ahead of
time so then the AWS environment can be configured accordingly from the beginning and avoid storage
issues down the road.
After a standard Qlik Sense installation, all security and authentication settings are managed directly from
the Qlik Sense Management Console. As far as the different components of Qlik Sense Server, it is a
module within the Qlik Sense Proxy Service (QPS) that handles authentication of Microsoft Windows
users. Other authentication methods are available, and it is also possible to implement customized
solutions for different authentication scenarios. Here are some of the things that can be managed directly
from the Qlik Sense Management Console (QMC):
• Admin roles to grant QMC users administrator level access to various sections
• Proxy certificate settings for communication between the web browser and the proxy component
• Virtual proxies to allow different modules based on the URI to be used to access Qlik Sense environment
• Access control and security rules to grant users access to Qlik Sense resources
To learn more about the different security configuration options, visit the following link:
http://help.qlik.com/en-US/sense/June2017/Subsystems/ManagementConsole/Content/configure-security.htm
There are different authentication options that can be leveraged to grant users access to different
applications and functionality based on the user’s identity, as well as preventing unauthorized users to
have access to such applications and functionality. Authentication is often used in conjunction with a
single sign-on (SSO) system that supplies a reverse proxy or filter for authentication of the user. To learn
more about the different configuration settings involved in the different authentication mechanisms, visit
the following link:
http://help.qlik.com/en-US/sense/June2017/Subsystems/ManagementConsole/Content/authentication-methods.htm
Here are some of the most frequently options used for authentication:
a. NTLM/Kerberos: After a default installation of Qlik Sense Server, the Qlik Sense Proxy Service
(QPS) includes a module that handles authentication of Microsoft Windows users. The module
supports the use of Kerberos, NTLM, and basic authentication. The default authentication module
requires that the proxy that handles the authentication is part of the Microsoft Windows domain in
question.
b. Security Assertion Markup Language (SAML): Qlik Sense Server can leverage SAML to
enable single-sign-on (SSO) and minimizes the number of times a user has to log on to cloud
applications and websites. For example, the following series of videos explain how to set up Qlik
Sense Server SAML with Active Directory Federation Services:
https://www.youtube.com/playlist?list=PLRWKt1LuYZ7m-zu9x-sQXnQP94UgyEi2G
This approach leverages the following entities in the authentication process:
• The user
• The identity provider (IdP) which is used for authentication. When the identity provider has asserted
the user identity, the service provider can give the user access to their services. Because the IdP
has enabled SSO, the user can access several service provider sites and applications without
having to log into each site. In the authentication process, Qlik Sense Server plays the role of a
service provider. When a user logs into Qlik Sense Server, the login is transferred to the identity
provider that handles the actual SSO authentication.
http://help.qlik.com/en-US/sense/June2017/Subsystems/ManagementConsole/Content/anonymous-
authentication.htm
d. Session/Ticket API: Once the user’s credentials have been identified, it is necessary to transfer the user to
Qlik Sense. In order to do so, Qlik Sense Enterprise can leverage its own Session and Ticket API. For
example, one option is to bring the user and user’s properties with a one-time ticket. Another option is to use
an external module that can transfer web sessions that identify the user and the user’s properties to Qlik
Sense. To learn more about these options, visit the following links:
http://help.qlik.com/en-
US/sense/June2017/Subsystems/PlanningQlikSenseDeployments/Content/Deployment/Server-Security-
Authentication.htm
http://help.qlik.com/en-
US/sense/June2017/Subsystems/PlanningQlikSenseDeployments/Content/Deployment/Server-Security-
Authentication-Solutions-Session-Solution.htm
http://help.qlik.com/en-
US/sense/June2017/Subsystems/PlanningQlikSenseDeployments/Content/Deployment/Server-Security-
Authentication-Solutions-Ticket-Solution.htm
While setting up security and authentication on the Qlik Sense Server side, the AWS Directory Services
can be leveraged. AWS Directory Services makes it easy to setup and run Microsoft Active Directory
(AD) in the AWS cloud, or connect your AWS resources with an existing on-premises Microsoft Active
Directory. AWS Directory Service provides you with three directory types to choose from including AWS
Directory Service for Microsoft Active Directory (Enterprise Edition), also referred to as Microsoft AD, as
well as Simple AD, and AD Connector. AWS Directory Services makes connecting to an on-premises
directory and leveraging the connection while using existing corporate credentials to grant access to
AWS resources easy. This option leverages Microsoft Security Support Provider Interface (SSPI) to read
the Windows user name and password. Upon successful reading of the user’s credentials, the
experience and process to gain access is similar to a single-sign-on experience. In the case that there
are multiple nodes in the Qlik Sense Server environment, all nodes need to be part of the same domain.
To learn more about AWS Directory Services, visit http://aws.amazon.com/directoryservice/
Once a Qlik Sense Server environment has been configured, there are a number of tasks and activities
that typically take place right away as soon as the users start leveraging the environment. Aside from
creating new applications and establish connectivity to various data sources (which has been described
earlier in the document), this section provides and overview and description of the following activities:
• Importing/exporting applications
• Creating new Streams
• Scheduling tasks
• Publishing applications
https://www.youtube.com/playlist?list=PLW1uf5CQ_gSpUIEWu0-0TzzEaNVQo346i
Additionally, there are other great sources of reference on various topics from overviews, to Qlik
Connectors to advanced topics for developers. For users that are new to Qlik, it is highly recommended to
go through some of the links below to learn more about Qlik’s technology:
https://www.youtube.com/channel/UCFxZPr8pHfZS0n3jxx74rpA
https://community.qlik.com/docs/DOC-6932
https://community.qlik.com/docs/DOC-7144
Import:
http://help.qlik.com/en-US/sense/June2017/Subsystems/ManagementConsole/ Cont ent/import-apps.htm
Export:
http://help.qlik.com/en-US/sense/June2017/Subsystems/ManagementConsole/ Cont ent/export-apps.htm
Once a stream has been created, it is easy to edit and modify its configuration. To learn how to edit a
stream, visit the following link:
http://help.qlik.com/en-US/sense/June2017/Subsystems/ManagementConsole/Content/edit-streams.htm
Deleting streams is also possible, to learn how to do so, visit the following link:
http://help.qlik.com/en-US/sense/June2017/Subsystems/ManagementConsole/Content/delete-streams.htm
Once a stream has been created, the access rights to such stream can be managed through the Qlik
Sense Management Console. To learn how to do so, visit the following link:
http://help.qlik.com/en-US/sense/June2017/Subsystems/ManagementConsole/Content/create-access-rights-for-
streams.htm
The following video summarizes the concepts about streams described above:
https://www.youtube.com/watch?v=fM85UttVzrM&index=4&list=PLW1uf5CQ_gSpUIEWu0-0TzzEaNVQo346i
Schedule Tasks
Qlik Sense comes with a services called Qlik Sense Scheduler Service (QSS) that can be used to
schedule tasks incorporating time and event based triggers. Typically, tasks are used to perform a wide
variety of operations and can be chained together in just about any pattern. The tasks are handled by the
Qlik Sense Scheduler Service (QSS). There are two types of tasks:
• Reload: it fully reloads the data in an app from the source. Any old data is discarded.
• User synchronization: A user synchronization task imports the users and the users' information
from a user directory. When you create a new instance of a user directory connector (UDC) a
synchronization task with a scheduled trigger is created by the system.
To learn how to create, view, edit, delete, enable/disable, start and stop tasks, visit the following link:
http://help.qlik.com/en-US/sense/June2017/Subsystems/ManagementConsole/Content/manage-tasks-and-
triggers.htm
The execution of a task is initiated by a trigger or manually from the tasks overview page. You can create
additional triggers to execute the task and there are two types of triggers:
• Scheduled: they can be applied to both reload tasks and user synchronization tasks
Publishing Applications
Qlik Sense applications that include sheets and stories can be published to streams to make content
available to other users that have access to the stream in question. When an application is first
published, the sheets and stories in it will be accessible by everybody that has access to the application
itself. Additional sheets and stories can be published as a part of an app that is already published.
Access Rights control which users are allowed to publish different kinds of content. To learn more about
how to publish new sheets and stories and what you can do within an application that is already
published vs. an application that has not been published yet, visit the following link:
http://help.qlik.com/en-US/sense/June2017/Subsystems/Hub/Content/Publishing/Publish.htm
You can create an application in Qlik Sense Server Hub, if you have the appropriate access rights.
Alternatively, in order to publish an application that was created with the Qlik Sense Desktop client,
the application must be first imported by using the Qlik Sense Management Console. The security
rules applied to the application, stream, or user, determine who can access the content and what the
user is allowed to do. The application is locked when published. Content can be added to a published
app through the Qlik Sense hub in a server deployment, but content that was published with the original
app cannot be edited. The following link lists the steps on how to publish and app that has not been
published yet:
http://help.qlik.com/en-US/sense/June2017/Subsystems/ManagementConsole/Content/publish-apps.htm
Qlik Sense Server is architected to scale up (vertically) by adding more resources (RAM and CPU cores)
to the server node as well as to scale out (horizontally) by adding more nodes to an existing cluster. In
the case of a deployment on AWS, this topic becomes especially
relevant given how easy it is to add more resources to an existing
deployment in order to scale massively. In the simplest scenario with a
single node environment, the different Qlik Sense services run within the
same AWS EC2 instance:
Multi-node deployments
While the scope of this document is for a single node deployment, the
following section describes at a high level some of the considerations for
a multi-node deployment. Qlik Sense architecture is extremely flexible.
Hence, when a multi-node environment is being considered, different
configurations are possible. The Qlik Sense Server components can be
split in different ways depending on what the overall goal is. One
common way to look at a multi-node environment is by considering the
following layers: data access, application and web front-end. In such
When considering then the different layers (front-end, application, management and back-end), there
would be various possible configurations. For example, in one end of the spectrum, all services could be
running off the same node (scenario #1 below). As some of the services are assigned to different nodes,
there could be multiple layers. A classic example is having a front-end layer with the proxy service, a mid-
tier layer running the engine and a back-end layer acting as the central node and running the scheduler
service (scenario #4 below). Each layer can have one or more nodes (scenario #5 below). And whether it
is a single node environment or a multi-node environment, multiple environments could leverage a
centralized location of files that contain applications (QVF files) as well as data files in the form of QVD
files (scenario #8 below). The are other scenarios depicted below:
Load Balancing
When multiple nodes exist in the Qlik Sense Server environment, then a Load Balancer will be needed to
provide the role of distributing users to servers (note that the Load Balancer must support WebSocket
communication):
It is also possible to utilize a third party Load Balancer by configuring in the QMC the Virtual Proxy to use
a “Load balancing module base URI” under the Integration settings. Further detail is available on
Appendix A of this guide.
Having a multi-node environment allows for a more robust strategy for High Availability scenarios as well
as a DR strategy. Qlik Sense environments can be backed up and recovered easily. To learn more, visit
the following link:
http://help.qlik.com/en-
US/sense/June2017/Subsystems/PlanningQlikSenseDeployments/Content/Deployment/Server-Backup-Restore.htm
Qlik Sense Server provides an Operations Monitor that helps understand the consumption and usage of
the resources in the server node. Within the Operations Monitor, the Performance sheet displays the
history of hardware utilization, active users, and active documents on the current node over a period
selected by the user. In a multi-node environment, data comes from all nodes, unless specific nodes
have been selected. The average and maximum usage is for all nodes combined or all selected nodes.
The user can select on months, weeks, dates, and days of the week. Selections can also be made by
hour and by ten-minute time period. To learn more about the Operations Monitor, visit the following link:
http://help.qlik.com/en-US/sense/June2017/Subsystems/Monitoring/Content/OperationsMonitor/Operations-monitor-
app.htm
Qlik Sense Server is primarily RAM based, so high-performance storage does not play a critical role
within the overall performance of the environment based on internal benchmarking tests. Hence, there is
no specific recommendation for faster storage above and beyond the General Purpose SSD.
Conclusion
Deploying Qlik Sense Server on AWS Cloud platform enables Organizations to provide cloud-based
analytical solutions to their various stakeholders. The mechanics to deploy Qlik Sense Server on AWS
are not too different from a traditional on-premises deployment. This Deployment Guide summarizes
considerations pertaining to architecture, configuration, security, storage, performance, management and
monitoring. Following such guidelines will help to achieve optimal performance, availability and reliability.
Additionally, this guide highlights how other AWS Services (Amazon Redshift, Amazon Elastic Compute
Cloud, Amazon Relational Database Services, etc.) can be leveraged as part of the overall solution and
ecosystem.
Contributors
However, there is one major consideration to have in mind. Qlik Sense platform leverages WebSockets
technology (a complete list of Qlik Sense system requirements is available here:
http://help.qlik.com/en-
US/sense/June2017/Subsystems/PlanningQlikSenseDeployments/Content/Introduction/system-requirements.htm
Currently, AWS ELB does not support WebSockets and stickiness simultaneously. There are some third
party sources that propose how to work around such limitation without compromising the WebSockets by
using TCP as a Load Balancer and Proxy protocol while creating a Load Balancer (AWS ELB with TCP
protocol supports the WebSockets):
http://blog.flux7.com/web-apps-websockets-with-aws-elastic-load-balancing
However, it is recommended to use a third party Load Balancer such as NGINIX or HAProxy. When
considering using such Load Balancers, it is critical to ensure that they support and are configured to
enable “sticky sessions”. To learn more about NGINIX, visit the following link:
https://www.nginx.com/resources/admin-guide/load-balancer/
qlik.com
© 2017 QlikTech International AB. All rights reserv ed. Qlik®, Qlik Sense®, QlikView®, QlikTech®, Qlik Cloud®, Qlik DataMarket®, Qlik Analy tics
Platf orm®, Qlik NPrinting™, Qlik Connectors™ and the QlikTech logos are trademarks of QlikTech International AB which hav e been registered in
multiple countries. Other marks and logos mentioned herein are trademarks or registered trademarks of their respectiv e owners.