How to Set Up AtScale on GCP

This procedure is a step-by-step guide on setting up AtScale on Google Cloud Platform (GCP) with HTTP + TCP load balancer.

Instance 

Create at least three VM hosts for the AtScale cluster. Preferably five hosts (one coordinator, two engines, and two databases) living within the same zone. 

Verify the instance, and make sure the ulimit has been set for the AtScale service account.

atscale@rw-coordinator:~$ ulimit -a 

core file size (blocks, -c) 0 

data seg size (kbytes, -d) unlimited 

scheduling priority (-e) 0 

file size (blocks, -f) unlimited 

pending signals (-i) 63970 

max locked memory (kbytes, -l) 65536 

max memory size (kbytes, -m) unlimited 

open files (-n) 65536 

pipe size (512 bytes, -p) 8 

POSIX message queues (bytes, -q) 819200 

real-time priority (-r) 0 

stack size (kbytes, -s) 65536 

cpu time (seconds, -t) unlimited 

max user processes (-u) 65536 

virtual memory (kbytes, -v) unlimited 

file locks (-x) unlimited 

Instance Group 

Create an unmanaged instance group. 

Health Check 

Create an instance health check for the two ports mapped in the instance group. 

Load Balancer 

Next is to set up the load balancer for your engine and modeler. Because the GCP HTTP load balancer can only take HTTP protocol, you must create two HTTP load balancers and one TCP load balancer. 

Protocol Type
HTTP Engine - mapped port 10502
HTTP Modeler - mapped port 10500
TCP Thrift port 11111


 

Cloud armor is optional. 

Next, get the DNS names of these Load Balancers. 

In this example, the engine DNS name is 38.250.117.34.bc.googleusercontent.com, and the modeler is  205.49.117.34.bc.googleusercontent.com 

Don’t forget to create the TCP load balancer for your SQL and map that in the AtScale YAML file.

With the information about the VM host + LB host, put the information into the YAML file atscale.yaml as follows:

installation_location: "/opt/atscale" 

service_account: "atscale" 

loadbalancer_dns_name: "205.49.117.34.bc.googleusercontent.com" 

tls: 

enabled: false 

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

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

kerberos: 

enabled: false 

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

principal: "atscale/rw-ubuntu-1.us-west1-b.c.atscale-sales-demo.internal@REALM" hosts: 

- dnsname: rw-coordinator.us-west1-a.c.atscale-sales-demo.internal 

services: 

- coordinator 

override: 

coordinator: 

id: 10 

engine: 

internal: 

port: 10502 

schema: http 

hostname: rw-engine-1.us-west1-a.c.atscale-sales-demo.internal 

external: 

port: 80
schema: http 

hostname: 38.250.117.34.bc.googleusercontent.com 

modeler: 

internal: 

port: 10500 

schema: http 

hostname: rw-engine-1.us-west1-a.c.atscale-sales-demo.internal 

external: 

port: 80 

schema: http 

hostname: 205.49.117.34.bc.googleusercontent.com 

- dnsname: rw-database1.us-west1-a.c.atscale-sales-demo.internal 

services: 

- database 

- coordinator 

override: 

coordinator: 

id: 20 

engine: 

internal: 

port: 10502 

schema: http 

hostname: rw-engine-1.us-west1-a.c.atscale-sales-demo.internal 

external: 

port: 80 

schema: http 

hostname: 38.250.117.34.bc.googleusercontent.com 

modeler: 

internal: 

port: 10500 

schema: http 

hostname: rw-engine-1.us-west1-a.c.atscale-sales-demo.internal 

external: 

port: 80 

schema: http 

hostname: 205.49.117.34.bc.googleusercontent.com 

- dnsname: rw-database2.us-west1-a.c.atscale-sales-demo.internal 

services: 

- database 

- coordinator 

override: 

coordinator: 

id: 30 

engine: 

internal: 

port: 10502 

schema: http 


hostname: rw-engine-1.us-west1-a.c.atscale-sales-demo.internal 

external: 

port: 80 

schema: http 

hostname: 38.250.117.34.bc.googleusercontent.com 

modeler: 

internal: 

port: 10500 

schema: http 

hostname: rw-engine-1.us-west1-a.c.atscale-sales-demo.internal 

external: 

port: 80 

schema: http 

hostname: 205.49.117.34.bc.googleusercontent.com 

- dnsname: rw-engine-1.us-west1-a.c.atscale-sales-demo.internal 

services: 

- engine 

- modeler 

override: 

engine: 

internal: 

port: 10502 

schema: http 

hostname: rw-engine-1.us-west1-a.c.atscale-sales-demo.internal 

external: 

port: 80 

schema: http 

hostname: 38.250.117.34.bc.googleusercontent.com 

modeler: 

internal: 

port: 10500 

schema: http 

hostname: rw-engine-1.us-west1-a.c.atscale-sales-demo.internal 

external: 

port: 80 

schema: http 

hostname: 205.49.117.34.bc.googleusercontent.com 

- dnsname: rw-engine2.us-west1-a.c.atscale-sales-demo.internal 

services: 

- engine 

- modeler 

override: 

engine: 

internal: 

port: 10502 

schema: http 

hostname: rw-engine2.us-west1-a.c.atscale-sales-demo.internal 

 

external: 

port: 80 

schema: http 

hostname: 38.250.117.34.bc.googleusercontent.com 

modeler: 

internal: 

port: 10500 

schema: http 

hostname: rw-engine2.us-west1-a.c.atscale-sales-demo.internal 

external: 

port: 80 

schema: http 

hostname: 205.49.117.34.bc.googleusercontent.com 

external: 

engine: 

load_balancer_url: http://38.250.117.34.bc.googleusercontent.com 

apps: 

load_balancer_url: http://205.49.117.34.bc.googleusercontent.com 

sql: 

load_balancer_url: http://54.208.233.35.bc.googleusercontent.com:11111 

mdx: 

load_balancer_url: http://38.250.117.34.bc.googleusercontent.com 

Important Step 

The next step is essential: only edit the template where the modeler will reside

Make sure you edit the template file before executing the configuration. This is because the auth host needs to be running locally for initial installation before joining your current AD/LDAP server. 

Edit /opt/atscale/version/<version>/bin/configurator/roles/engine/template/engine_settings.sh.tpl and comment the current auth.host and add a line: 

vi 
/opt/atscale/versions/2021.4.0.4227/bin/configurator/roles/engine/templates/en gine_settings.sh.tpl
#auth.host {{ loadbalancer_dns_name }} 

auth.host localhost

Configure 

After completing the editing of the template in all hosts, run the configurator in this order: Coordinator, Database1, Database2, Engine1, Engine2 

host command
coordinator ./configurator.sh –first-time
database1 ./configurator.sh –first-time
database2 ./configurator.sh –activate
engine1 ./configurator.sh –first-time
engine2 ./configurator.sh –activate

 

Login to the AtScale host: 

http://205.49.117.34.bc.googleusercontent.com 

:q!

Was this article helpful?

0 out of 0 found this helpful