Deploying AtScale Query Engine

On-Prem Query_Engine

This document will serve as guidance on how to deploy Query_Engine for AtScale.

Requirements

  • Three EC2 instances + n instances for query_engine
  • Two network load balancers (NLB)
  • Seven target groups
    • 3 for the Developer access port
    • 4 for Runtime user access port
  • Port remap in yaml for query_engine to 10502 (optional)

Deployment

AtScale yaml file:

engine:

  memory: 31G

hosts:

- dnsname: ip-172-31-15-214.us-west-2.compute.internal

  override:

    coordinator:

      id: 10

  services:

  - message_exchange

  - schema_registry

  - agent

  - ingress

  - message_bus

  - service_registry

  - egress

  - search_index

  - coordinator

- dnsname: ip-172-31-13-246.us-west-2.compute.internal

  override:

    coordinator:

      id: 20

  services:

  - database

  - service_registry

  - egress

  - modeler

  - gov_rules

  - engine

  - gov_enforce

  - agent

  - coordinator

  - orchestrator

  - ingress

- dnsname: ip-172-31-9-89.us-west-2.compute.internal

  override:

    coordinator:

      id: 30

  services:

  - database

  - service_registry

  - egress

  - modeler

  - gov_rules

  - engine

  - gov_enforce

  - agent

  - coordinator

  - orchestrator

  - ingress

- dnsname: ip-172-31-4-158.us-west-2.compute.internal

  services:

  - schema_registry

  - message_bus

  - egress

  - search_index

  - ingress

  - service_registry

  - message_exchange

  - agent

  - query_engine

  override:

    query_engine:

     ports:

      http: 10502

installation_location: /opt/atscale

kerberos:

  enabled: false

  keytab: /opt/atscale/conf/atscale.keytab

  principal: atscale/ip-172-31-34-240.us-west-2.compute.internal@REALM

loadbalancer_dns_name: ATSCALENLB-1eb7372bbaef4453.elb.us-west-2.amazonaws.com

query_engine:

  memory: 31G

service_account: atscale

tls:

  certificate: /opt/atscale/conf/server.cert

  enabled: false

  key: /opt/atscale/conf/server.key

 

After completion of the AtScale deployment, the next step is to map the target group into NLB.

Load Balancer

Create target group

Query-10500

Query-10502

 

AtScale-10502

The reason we created two separate target groups is that the query_engine component doesn’t come with the modeler. That’s why we need to create two separate groups to avoid confusion during the development process.

Once you have completed the mapping, attach those targeted groups to the NLBs.

 

Configure the Load Balancer

Create two NLBs.

Point the appropriate target group with the right NLB. The user access should have only the AtScale cluster, and the Runtime user should utilize the query_engine.

Update the Engine

Engine setting needs to be updated:

LOAD.BALANCER.MDX.URL 

Make sure you use the http/https format, as seen in the example below:

LOAD.BALANCER.SQL.URL

Make sure you use the http/https format, as seen in the example below:

Summary

The reason why we need two load balancers is that query_engine doesn’t have a modeler component. When you only set one load balancer, you might encounter a 50% chance of failure during development, because the load balancer points the session you are working in to the query_engine. The only way to avoid this issue is by creating two separate LBs, so that the developer utilizes two AtScale clusters, and a runtime user utilizes the query_engine + AtScale cluster.

The default port of query_engine is 10541; this port must also be remapped in the yaml to communicate with the rest of the AtScale query cluster. 

Was this article helpful?

0 out of 0 found this helpful