Create AWS Deployment
This article explains how to create a basic deployment of Exasol 8 on AWS.
Prerequisites
-
AMI running Ubuntu 20.04 LTS/22.04 LTS with jq JSON processor installed
-
Server access to official Ubuntu package repositories (required for automatic installation of any missing dependencies)
-
EC2 security group rules in AWS must be configured to allow traffic on the necessary ports. For more information, see Network Settings.
The deployment process will create a number of resources in the AWS account. Which resources are created depends on the configuration. For more information, see AWS Resources.
Procedure
Step 1: Download c4
Exasol Deployment Tool (c4) is a command-line application that is used to create and manage Exasol deployments.
-
Download c4 from the Exasol Download Portal or using the command line. For more information, see Install c4.
-
In the directory where you downloaded c4, run the following command to make c4 executable for all users:
Step 2: Create a configuration
The next step is to create a local configuration file for the deployment. The configuration file defines required and optional parameters such as network settings and authentication details, and AWS-specific parameters such as the EC2 instance type and the AWS region where the deployment should be created.
For more information, see Create Configuration.
Step 3: Create the deployment
To create a deployment on AWS, use c4 aws play -N <nodes> -T <package>
.
-N
= The number of database nodes to deploy. For example,-N3
will deploy 3 database nodes.-T
= Use CloudFormation template. The default template is used unless a template is defined in the c4 configuration.-
package
= The Exasol package to install, using the format@exasol-<version>
.For information about the latest available Exasol version, see Release Notes.
For example: to create a deployment with 3 active nodes running Exasol 8.32.0 using the default CloudFormation template:
The deployment can take up to 20 minutes to complete depending on various factors such as the number of node instances.
-
For more information about the available options with the
c4 play
command, usec4 play --help
. -
For information about AWS specific deployment options, use
c4 aws --help
.
Monitoring deployment status
To monitor the status of your deployments, use c4 ps
.
The deployment is finished when the database nodes in c4 ps
have reached stage d and are in the running state. For example:
./c4 ps
N PLAY_ID NODE MEDIUM INSTANCE EXTERNAL_IP INTERNAL_IP STAGE STATE UPTIME TTL
┌─ 1 3a4a7d8d 10 awscf c5d.large 203.0.113.10 10.0.0.10 c running 04:35:15 +∞
│ 1 3a4a7d8d 11 awscf c5d.2xlarge 203.0.113.11 10.0.0.11 d running 04:35:16 +∞
│ 1 3a4a7d8d 12 awscf c5d.2xlarge 203.0.113.12 10.0.0.11 d running 04:35:16 +∞
└─ 1 3a4a7d8d 13 awscf c5d.2xlarge 203.0.113.13 10.0.0.13 d running 04:35:15 +∞
Node 10 in this example is the database access node. Since the database does not run on the access node, its final stage is stage c.
To view the progress of the deployment process you can add the -C
option to the c4 play
command, or connect to the deployment using c4 connect -t <NODE>
when the process has started. The log output of the deployment process will then be presented on the terminal screen.
Troubleshooting c4 ps
In some cases c4 ps may time out while waiting for an instance to respond during the deployment process. This can for example be the case if there is a large geographical distance between the system running c4 ps and the instances. If the instance does not respond within the timeout period, c4 ps will consider the instance to be unreachable and report it as being in deployment stage a, even if the instance has booted up and services are running on the node.
You can increase the time limit for c4 ps to wait for instances to respond by setting a higher value in the CCC_USER_PS_REMOTE_TIMEOUT
parameter in the c4 configuration. The default value is 3000 ms. For example, to set the timeout to 10 seconds:
CCC_USER_PS_REMOTE_TIMEOUT=10000
For more information on how to configure c4 and about the different deployment stages and states, see How to use c4.
For more details about the c4 ps command, use c4 ps --help
.
Step 4: Connect to the database
Once the database is running you can connect to it using a database client. Use the following attribute values in the connection:
Hostname |
Comma-separated list of the external IP addresses of the database nodes. For example: The external IP addresses of the nodes are shown in the |
Port |
Value of the The default port if this parameter is not set is |
Username | sys
|
Password |
Value of the The default password if this parameter is not set is |
To keep your deployment secure, change the default password of the sys user as soon as possible to a secure password using the ALTER USER command.
For more information about how to connect to your Exasol database using database clients and other tools, see Connect to Exasol.
You can also connect to the database using the built-in SQL client in c4. For more information, see How to use c4.
AWS resources
The deployment process will create a number of resources in the AWS account where Exasol runs. Which resources are created depends on the configuration. For more details about how different configuration options will affect billing for your deployment, refer to the AWS website.
The following resources are created in a typical deployment scenario:
Resource type | Description |
---|---|
EC2 instances |
One instance is created for each node. For example, in a deployment with 4 data nodes, one backup node, and an access node, 6 instances are created. For guidelines on which instance type to choose, see Sizing Considerations. |
EC2 security group |
A security group for describing firewall rules for your deployment. For more information about security groups, see Control traffic to your AWS resources using security groups. If you define an existing security group in the |
Virtual Private Cloud (VPC) |
A VPC is a a logically isolated virtual network where your Exasol instances run. The deployment process creates a new VPC including all necessary related resources in the account by default. If you set the configuration parameter |
VPC endpoints |
VPC endpoints allow instances to connect to selected AWS services without having internet access. The following endpoints are created:
For more information about Amazon VPC endpoints, see What are VPC endpoints?. |
EC2 internet gateway |
A gateway that enables internet access to the VPC. If you set the configuration parameter |
Elastic IP (EIP) |
A public IP address is created for each instance. For more information, see Elastic IP addresses. If you set the configuration parameter |
Authentication tokens | The deployment process generates tokens that COS uses to authenticate nodes to each other. A random token is also generated to force CloudFormation template updates in certain scenarios. |
Next steps
-
All Exasol deployments start with a license that allows you to load 10 GiB of raw data for testing purposes. For larger data sizes, you must upload a license to the database.
-
This section describes how to connect to your Exasol database using various database clients and other tools that are compatible with the Exasol drivers and programming languages.
-
Once you are connected to your Exasol database, you can start loading data from various sources. This section describes different methods, tools, and best practices for loading and processing your data.
-
This section describes how to configure more advanced deployment options, such as using existing VPCs and security groups, disabling the use of Elastic IP addresses, and setting up AWS availability zones.