การเชื่อมต่อ CData Sync ด้วย RDS

CData Sync เป็นซอฟต์แวร์ที่ใช้สำหรับการทำงานกับการซิงค์ข้อมูลระหว่างแหล่งข้อมูลและระบบฐานข้อมูลหรือแอปพลิเคชันต่างๆ โดยอัตโนมัติได้ และ RDS ที่เป็นบริการของ AWS ก็เป็นตัวเลือกที่สามารถนำไปใช้งานร่วมกับ CData Sync ได้ ซึ่งในบทความนี้จะมาแนะนำวิธีการเชื่อมต่อ CData Sync กับ RDS ครับ

สวัสดีครับ POP จากบริษัท Classmethod (Thailand) ครับ

ครั้งนี้จะมาแนะนำเกี่ยวกับการเชื่อมต่อ CData Sync ด้วย RDS

สิ่งที่ต้องมี

หมายเหตุ : ควรอ่านข้อมูลในหัวข้อ สิ่งที่ต้องมี อย่างละเอียด รวมถึงบทความอื่นๆ ที่เกี่ยวข้อง เพื่อไม่ให้เกิดความผิดพลาดระหว่างการดำเนินการครับ

สร้าง CData Sync บน EC2

ดูวิธีการสร้าง CData Sync ได้ที่ลิงก์ด้านล่างนี้ (สำหรับผู้ใช้งานที่มีอยู่แล้วข้ามขั้นตอนนี้ไปได้เลยครับ)

สร้าง RDS

การสร้าง RDS นี้จะเลือกใช้เป็นประเภท MySQL และเชื่อมต่อกับ EC2 Instance ของ CData Sync ที่สร้างจากขั้นตอนที่แล้ว

ดูวิธีการติดตั้ง RDS ได้ที่ลิงก์และอ่านคำอธิบายด้านล่างนี้ครับ (สำหรับผู้ใช้งานที่มีอยู่แล้วข้ามขั้นตอนนี้ไปได้เลยครับ)

บทความนี้จะเชื่อมต่อจาก Ubuntu ไปยัง RDS เพื่อสร้าง Database ที่ใช้สำหรับทดสอบโดยดำเนินการตามด้านล่างนี้
・สร้าง Database ที่ใช้สำหรับทดสอบบน RDS
・สร้าง Table ที่ใช้สำหรับทดสอบบน RDS
・ป้อนข้อมูลที่ใช้ทดสอบ

หากมีข้อมูลบน RDS อยู่แล้ว ให้ข้ามขั้นตอนเหล่านี้ไปได้เลย เนื่องจากตัว CData Sync มีฟังก์ชันในการเชื่อมต่อกับ MySQL จึงไม่จำเป็นต้องติดตั้ง MariaDB หรืออื่นๆ

※ตั้งแต่หัวข้อ ติดตั้ง Client MariaDB เป็นต้นไปไม่ต้องทำ เนื่องจาก Instance ของ CData Sync เป็น ubuntu และคำสั่งในลิงก์ตัวอย่างด้านบนนี้เป็นการรันใน Linux จึงไม่สามารถรันใน ubuntu ได้ ดังนั้นให้ทำตามลิงก์หัวข้อด้านล่างนี้ครับ (หัวข้อด้านล่างนี้เป็นขั้นตอนเกี่ยวกับการจัดการ Database ใน Server สำหรับ Ubuntu)

ติดตั้ง Client MariaDB ใน Ubuntu

สำหรับขั้นตอนในหัวข้อ "ติดตั้ง Client MariaDB" ให้ใช้คำสั่งด้านล่างนี้ เนื่องจาก Instance ของ CData Sync เป็น ubuntu

*เมื่อติดตั้ง Client MariaDB จะทำให้สามารถเชื่อมต่อกับ RDS จาก Instance ของ CData Sync ได้ แต่ไม่สามารถใช้งาน MariaDB Server ได้ !

รันคำสั่งเข้าสู่ระบบในฐานะผู้ใช้ที่มีสิทธิ์ root

sudo su -


รันคำสั่ง Update server ให้เป็นปัจจุบัน

apt update


รันคำสั่งติดตั้ง Client MariaDB

apt install mariadb-client

เชื่อมต่อไปยัง RDS (MySQL) ใน Ubuntu

เชื่อมต่อจาก EC2 ไปยัง RDS ดังนี้

รันคำสั่งเชื่อมต่อกับฐานข้อมูล RDS จาก EC2 (ก่อนรันคำสั่งเปลี่ยนข้อมูลใน [ ] ให้เป็นของคุณ)
» RDS Endpoint: (-h [your_endpoint_rds])
» Master username: (-u admin)
» Master password: (-p[your_password_rds])

mariadb -h tinnakorn-rds-mysql.xxxxxxxxxx.ap-southeast-1.rds.amazonaws.com -u admin -pPassW0rd

Output (example)

root@ip-xx-xx-xx-xx:~

root@ip-172-31-19-154:~# mariadb -h tinnakorn-rds-mysql.xxxxxxxxxx.ap-southeast-1.rds.amazonaws.com -u admin -pPassW0rd
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 32
Server version: 8.0.34 Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]>

สร้าง Database ใน Ubuntu

ผมจะทดสอบสร้าง Database ในฐานข้อมูล RDS โดยรันคำสั่งต่อไปนี้

ก่อนอื่นรันคำสั่งเรียกดูข้อมูลใน Database

show databases;

Output (example) จะเห็นว่ามี Database เริ่มต้นของ RDS แสดงแบบนี้

root@ip-xx-xx-xx-xx:~

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.012 sec)

MySQL [(none)]>


รันคำสั่งสร้าง Database โดยเปลี่ยน database_name เป็นชื่อ Database ที่ต้องการ (ตัวอย่างนี้ใช้ชื่อ tinnakorn)

CREATE DATABASE database_name;

Output (example)

root@ip-xx-xx-xx-xx:~

MySQL [(none)]> CREATE DATABASE tinnakorn;
Query OK, 1 row affected (0.012 sec)

MySQL [(none)]>


รันคำสั่งเรียกดูข้อมูลใน Database อีกครั้ง

show databases;

Output (example) จะเห็นว่ามี Database ที่ชื่อ tinnakorn เพิ่มขึ้นมาแล้ว

root@ip-xx-xx-xx-xx:~

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| tinnakorn          |
+--------------------+
5 rows in set (0.002 sec)

MySQL [(none)]>

สร้าง Table

ผมจะทำการสร้าง Table ใน Database ที่ชื่อ tinnakorn ที่สร้างจากขั้นตอนที่แล้ว

ก่อนอื่นรันคำสั่งเปลี่ยนฐานข้อมูลไปยัง Database ที่เราสร้างขึ้นมา เช่น tinnakorn (เปลี่ยน "database_name" เป็นชื่อ DB ที่สร้างจากขั้นตอนที่แล้ว)

use database_name;

Output (example)

root@ip-xx-xx-xx-xx:~

MySQL [(none)]> use tinnakorn;
Database changed
MySQL [tinnakorn]>


รันคำสั่งสร้าง Table โดยเปลี่ยน table_name เป็นชื่อ Table ที่ต้องการ (ตัวอย่างนี้ใช้ชื่อ test)

create table table_name (id int, name varchar(30));

Output (example)

root@ip-xx-xx-xx-xx:~

MySQL [tinnakorn]> create table test (id int, name varchar(30));
Query OK, 0 rows affected (0.097 sec)

MySQL [tinnakorn]>

INSERT ข้อมูลลงใน Table

รันคำสั่ง Insert ข้อมูลลงในตารางของฐานข้อมูล โดยเปลี่ยน table_name เป็นชื่อ Table ที่สร้างจากขั้นตอนที่แล้ว (ตัวอย่างนี้จะเพิ่มข้อมูลลงใน Table ที่ชื่อ test)

insert into table_name value (1, 'test');

Output (example)

root@ip-xx-xx-xx-xx:~

MySQL [tinnakorn]> insert into test value (1, 'test');
Query OK, 1 row affected (0.006 sec)

MySQL [tinnakorn]>


รันคำสั่งแสดงข้อมูลในตาราง โดยเปลี่ยน table_name เป็นชื่อ Table ที่สร้างเมื่อสักครู่นี้ (ตัวอย่างนี้จะแสดงข้อมูลของ Table ที่ชื่อ test)

select * from table_name;

Output (example)

root@ip-xx-xx-xx-xx:~

MySQL [tinnakorn]> select * from test;
+------+------+
| id   | name |
+------+------+
|    1 | test |
+------+------+
1 row in set (0.001 sec)

MySQL [tinnakorn]>


รันคำสั่งออกจากการเชื่อมต่อกับฐานข้อมูล RDS

quit

Output (example)

root@ip-xx-xx-xx-xx:~

MySQL [tinnakorn]> quit
Bye
ubuntu@ip-xx-xx-xx-xx:~$

การเชื่อมต่อ CData Sync ด้วย RDS

เข้ามาที่หน้าจอ RDS แล้วคัดลอก Endpoint เตรียมไว้

กลับมาที่หน้าเว็บไซต์ CData Sync อีกครั้ง แล้วเลือกแท็บ Connections ด้านบน แล้วคลิก Add Connection

ค้นหา MySQL และเลือก MySQL

ตั้งค่า Connection Settings ตามนี้
» Connection Name *: your_name (ตั้งชื่ออะไรก็ได้ ซึ่งเป็นชื่อที่ใช้ในการเชื่อมต่อ)
» Server *: your_endpoint
» Port *: 3306
» Auth Scheme *: Password
» User *: your_user
» Password *: your_password
» Database: your_database
» Use SSL: False
» คลิก Create & Test (ถ้าแสดงข้อความ "Connection created successfully." ถือว่าการเชื่อมต่อนี้เสร็จสมบูรณ์)
*หากการเชื่อมต่อล้มเหลวให้ทำการตรวจสอบข้อมูลที่ใส่ใน Connection Settings อย่างละเอียด และลอง Create & Test อีกครั้ง

หากการเชื่อมต่อนี้เสร็จสมบูรณ์แล้วจะแสดงหน้าจอแบบนี้

แล้วคลิก Connections จะเห็นว่า Connection ของ CData MySQL แสดงขึ้นมาแล้ว เพียงเท่านี้การตั้งค่าก็เสร็จเรียบร้อยครับ

สรุป

การสาธิตนี้เป็นการเชื่อมต่อ CData Sync ด้วย RDS โดยสร้าง CData Sync และ RDS (MySQL) บน AWS ขึ้นมา แล้วเชื่อมต่อเข้าด้วยกัน หากเชื่อมต่อกันได้สำเร็จจะทำให้เราสามารถดึงข้อมูลที่ต้องการบน CData Sync จากแหล่งต่างๆ ไปยัง RDS (MySQL) บน AWS ได้อย่างง่ายดาย

ผมหวังว่าบทความนี้จะเป็นประโยชน์ให้กับผู้อ่านได้นะครับ

POP (Tinnakorn Maneewong) จากบริษัท Classmethod (Thailand) ครับ !

บทความที่เกี่ยวข้อง