How to Install CockroachDB in Standalone AWS EC2 and its basic operations
How to Install CockroachDB in Standalone AWS EC2 and its basic operations
Cockroach Labs is a computer software company that develops commercial database management systems. It is best known for CockroachDB, which has been compared to Google Spanner. CockroachDB is a project that is designed to store copies of data in multiple locations in order to deliver speedy access. CockroachDB provides cloud-native, distributed SQL for cloud applications. CockroachDB powers companies like Comcast, Lush, and WeWork.
Deploy CockroachDB on Standalone AWS EC2
We will show you how to manually deploy an insecure Standalone CockroachDB.
Requirements
1. You must have SSH access to each machine. This is necessary for distributing and starting CockroachDB binaries.2. Your network configuration must allow TCP communication on the following ports:
26257 for intra-cluster and client-cluster communication
8080 to expose your Admin UI
8080 to expose your Admin UI
Step 1. Create instances
Open the Amazon EC2 console and launch an instance for each node you plan to have in your cluster. In our case it is a standalone installation, so we'll launch a single instance.Step 2. Start node
You can start the node manually or automate the process using systemd.1. SSH to the machine where you want the node to run. Ensure you are logged in as the root user.
2. Download the CockroachDB archive for Linux, and extract the binary:
wget -qO- https://binaries.cockroachdb.com/cockroach-v19.2.4.linux-amd64.tgz | tar xvz
3. Copy the binary into the PATH:
cp -i cockroach-v19.2.4.linux-amd64/cockroach /usr/local/bin/
4. Run the cockroach start command:
cockroach start --insecure --advertise-addr=<node1 address> --join=<node1 address>,<node2 address>,<node3 address> --cache=.25 --max-sql-memory=.25 --background
[root@ip-10-0-1-63 cockroach]# cockroach start --insecure --store=node1 --listen-addr=localhost:26257 --http-addr=localhost:8088 --join=localhost:26257 --background
*
* WARNING: RUNNING IN INSECURE MODE!
*
* - Your cluster is open for any client that can access localhost.
* - Any user, even root, can log in without providing a password.
* - Any user, connecting as root, can read or write any data in your cluster.
* - There is no network encryption nor authentication, and thus no confidentiality.
*
* Check out how to secure your cluster: https://www.cockroachlabs.com/docs/v19.2/secure-a-cluster.html
*
*
* INFO: initial startup completed.
* Node will now attempt to join a running cluster, or wait for `cockroach init`.
* Client connections will be accepted after this completes successfully.
* Check the log file(s) for progress.
*
[root@ip-10-0-1-63 cockroach]# cockroach start --insecure --store=node1 --listen-addr=localhost:26257 --http-addr=localhost:8088 --join=localhost:26257 --background
*
* WARNING: RUNNING IN INSECURE MODE!
*
* - Your cluster is open for any client that can access localhost.
* - Any user, even root, can log in without providing a password.
* - Any user, connecting as root, can read or write any data in your cluster.
* - There is no network encryption nor authentication, and thus no confidentiality.
*
* Check out how to secure your cluster: https://www.cockroachlabs.com/docs/v19.2/secure-a-cluster.html
*
*
* INFO: initial startup completed.
* Node will now attempt to join a running cluster, or wait for `cockroach init`.
* Client connections will be accepted after this completes successfully.
* Check the log file(s) for progress.
*
Step 3. Initialize the cluster
Run the cockroach init command, with the --host flag set to the address of any node:
cockroach init --insecure --host=<address of any node>
[root@ip-10-0-1-63 cockroach]# cockroach init --insecure --host=localhost:26257
Cluster successfully initialized
[root@ip-10-0-1-63 cockroach]# grep 'node starting' node1/logs/cockroach.log -A 11
CockroachDB node starting at 2020-02-04 04:04:35.416005065 +0000 UTC (took 103.7s)
build: CCL v19.2.2 @ 2019/12/11 01:33:43 (go1.12.12)
webui: http://localhost:8088
sql: postgresql://root@localhost:26257?sslmode=disable
RPC client flags: cockroach <client cmd> --host=localhost:26257 --insecure
logs: /cockroach/node1/logs
temp dir: /cockroach/node1/cockroach-temp026129314
external I/O path: /cockroach/node1/extern
store[0]: path=/cockroach/node1
status: initialized new cluster
clusterID: 7df0b3a0-e0d2-4dcf-8188-b3e51fbb8d25
nodeID: 1
[root@ip-10-0-1-63 cockroach]#
Each node then prints helpful details to the standard output, such as the CockroachDB version, the URL for the admin UI, and the SQL URL for clients.
Step 4. Test the cluster
CockroachDB replicates and distributes data behind-the-scenes and uses a Gossip protocol to enable each node to locate data across the cluster. Once a cluster is live, any node can be used as a SQL gateway. In our case its a singlr node setup, Hence we'll directly login to that host and test the cockroachdb.When using a load balancer, you should issue commands directly to the load balancer, which then routes traffic to the nodes.
Use the built-in SQL client locally as follows:
On your local machine, launch the built-in SQL client, with the --host flag set to the address of the load balancer. In our case we'll connect to "Localhost"
cockroach sql --insecure --host=<address of lb or host>
[root@ip-10-0-1-63 cockroach]# cockroach sql --insecure --host=localhost:26257
#
# Welcome to the CockroachDB SQL shell.
# All statements must be terminated by a semicolon.
# To exit, type: \q.
#
# Server version: CockroachDB CCL v19.2.2 (x86_64-unknown-linux-gnu, built 2019/12/11 01:33:43, go1.12.12) (same version as clie nt)
# Cluster ID: 7df0b3a0-e0d2-4dcf-8188-b3e51fbb8d25
#
# Enter \? for a brief introduction.
#
root@localhost:26257/defaultdb>
Create a bank database:#
# Welcome to the CockroachDB SQL shell.
# All statements must be terminated by a semicolon.
# To exit, type: \q.
#
# Server version: CockroachDB CCL v19.2.2 (x86_64-unknown-linux-gnu, built 2019/12/11 01:33:43, go1.12.12) (same version as clie nt)
# Cluster ID: 7df0b3a0-e0d2-4dcf-8188-b3e51fbb8d25
#
# Enter \? for a brief introduction.
#
root@localhost:26257/defaultdb>
root@localhost:26257/defaultdb> CREATE DATABASE bank;
CREATE DATABASE
Time: 9.80718ms
root@localhost:26257/defaultdb>
root@localhost:26257/defaultdb>CREATE DATABASE
Time: 9.80718ms
root@localhost:26257/defaultdb>
CREATE A TABLE :
root@localhost:26257/defaultdb> CREATE TABLE bank.accounts (id INT PRIMARY KEY, balance DECIMAL);
CREATE TABLE
Time: 9.130328ms
root@localhost:26257/defaultdb> INSERT INTO bank.accounts VALUES (1, 1000.50);
INSERT 1
Time: 7.330928ms
root@localhost:26257/defaultdb> SELECT * FROM bank.accounts;
id | balance
+----+---------+
1 | 1000.50
(1 row)
Time: 737.333µs
SHOW DATABASES :INSERT 1
Time: 7.330928ms
root@localhost:26257/defaultdb> SELECT * FROM bank.accounts;
id | balance
+----+---------+
1 | 1000.50
(1 row)
Time: 737.333µs
root@localhost:26257/defaultdb> SHOW DATABASES;
database_name
+---------------+
bank
defaultdb
postgres
system
(4 rows)
Time: 1.058354ms
root@localhost:26257/defaultdb>
Use \q to exit the SQL shell.database_name
+---------------+
bank
defaultdb
postgres
system
(4 rows)
Time: 1.058354ms
root@localhost:26257/defaultdb>
root@localhost:26257/defaultdb> \q
WebUI:
A graphical interface can be accessed for cockroach DB at the webui URL. In our case the URL is " http://localhost:8088"
Overview:
Metrics:
good info
ReplyDelete