Posts Tagged AWS
This is the second part of the mini-series Exasol on AWS. Here’s the first part.
Cloud UI is an extension to EXAoperation that makes it easy for you to
- Scale up & down
- Increase storage capacity
- Scale out by adding nodes to the cluster
Cloud UI can be reached by adding the port number 8835 to the URL of your License Server and uses the same credentials as EXAoperation.
Scale down to m5.large with Cloud UI
Depending on the load you get on your Exasol cluster, you can scale up your data nodes to more powerful EC2 instances if load is high and scale down to less expensive EC2 instances with lower user demands.
I started my little cluster with r5.large instances. Now I want to scale down to m5.large. Enter Cloud UI:
You see on the right site that scaling down to m5.large reduces both available memory and costs. I click on APPLY now and confirm the pop-up coming next with EXECUTE. The following steps the system goes through can be monitored in EXAoperation:
Notice that the database got restarted during that process.
Scale out by adding data nodes
I want to expand my present 1+0 cluster to a 2+1 cluster. First I add another active node:
As you see, this doesn’t only increase the overall avaible memory but also the compute power. Storage capacity is usually also increased when adding a node. In this particular case not, though, because I will also go from redundancy 1 to redundancy 2.
The log looks like this now:
My one node cluster did use redundancy 1, now I want to change that to redundancy 2. That step is of course not required when you started with a multi-node cluster using redundancy 2 already. See here for more details about redundancy in Exasol.
To increase redundancy, I go to the EXAstorage page of EXAoperation:
The new EC2 instance for the new data node can be renamed like this:
That makes it easier to identify the nodes, for example when associating elastic IPs to them. I do that now for n12 in the same way I did it with n11 before.
The elastic IPs of the data nodes must then be entered into the connection details of clients like DbVisualizer in this example:
After having added a new active node, that node is initially empty unless REORGANIZE operations are done. For example a REORGANIZE DATABASE:
I have a 2+0 cluster now: Mirrored segments on two active nodes but no reserve node.
Adding reserve nodes
To get a 2+1 cluster, I need to add a reserve node. Again, that’s quite easy to do with Cloud UI:
Within about 10 Minutes, the log should show something like this:
Notice that there was no database restart this time. The new node should get renamed and have a new elastic IP associated as shown before. Also that IP needs to be added to client connection details. See here if you wonder what reserve nodes are good for.
Now that I have got a 2+1 Exasol cluster running on AWS, I’m ready to demonstrate what happens if one node fails. That will be the next part of this series 🙂
It’s amazingly easy to run an Exasol Cluster on Amazon Web Services (AWS).
Subscribe Exasol in AWS marketplace
After having registered and having logged in to your AWS account, go to the AWS marketplace and search for Exasol:
Click on the Exasol Single Node and Cluster BYOL link and then on Continue to Subscribe:
After having reviewed the T&C, click on Accept Terms. It shows this message afterwards:
Create Key Pair
Now login to the AWS Management Console, select a region close to your location and open the EC2 Dashboard. Click on Key Pairs:
Click on Create Key Pair now and enter a name for the new Key Pair, then click on Create:
Now you are ready to use the Exasol Cloud Deployment Wizard. Stay logged in with AWS Management Console as you will be routed back there by the Deployment Wizard soon.
Using the Cloud Deployment Wizard
Put this URL into your browser: https://cloudtools.exasol.com/ and click on AWS then:
Select a region close to your location and click on Continue:
Click on Advanced Configuration and specify
License Model Bring-your-own-license, System Type Enterprise Cluster, Instance Family Memory Optimized, Instance Type r5, Instance Model r5 large, Number of DB Node 1 then click Continue.
BYOL works without license file with a limit of 20 GB memory for the database. Means no costs are charged by Exasol (But by Amazon) for this environment.
Select create new VPC and click on Launch Stack on this page now:
This takes you to the Quick create stack page of CloudFormation in AWS Management Console:
Enter these details on the page:
Key Pair (select the key pair created previously)
SYS User Password
ADMIN User Password
Public IPs (true)
Tick the acknowledge box and click on Create stack
Now go to the EC2 details page and copy the Public IP of the management node:
Put that with an https:// prefix into a browser and click on Advanced:
Then you should see a progress bar like this:
That screen changes after about 30 Minutes to the EXAoperation login screen.
Login as user admin with the password, you specified previously on the CloudFormation Quick create stack page. There should be a database running:
As you can see now, you have a database, a remote archive volume using an Amazon S3 bucket ready for backup & restore and a log service to monitor your system.
This database is limited to 20 GB memory only unless a license file is uploaded to the license server aka management node. For educational purposes, I don’t need more.
Use Elastic IPs
The public IPs of your data nodes will change upon every restart, which is probably not convenient.
Therefore, click on Elastic IPs in the EC2 dashboard, then click on Allocate new address:
Select Amazon pool then click on Allocate:
Click on the IP on the following screen:
Select the action Associate address on the next screen:
Select the data node from the Select instance pull down menu and click on Associate:
Close the next screen and go to the EC2 instance page. You should see the elastic IP assigned to the data node there:
Connect with a SQL Client to your Exasol database on AWS
This is how that looks with DbVisualizer:
And that’s it: Now you have an Exasol 1+0 cluster running on AWS. That’s not the same as a single node system, because this 1+0 cluster can be enlarged with more data nodes. I will show how to do that in future posts.
A word about costs: Instead of using our corporate AWS account, I registered myself to see how much that will take. It was less than 80 Euro with a 2+1 cluster environment I used for about one month, shutting down the EC2 instances whenever I didn’t need them for testing and for creating courseware. It should be well below 10 Euro per day with the very moderate resource consumption configured for the environment subject to my postings.
Stay tuned for some more to come about Exasol on AWS 🙂