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.
P
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" |
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 }} |
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!