Kết nối với cơ sở dữ liệu là một trong những phần khó khăn nhất khi thiết lập một ứng dụng mới. Chính vì vậy, ông trùm công nghệ Google đã cho ra mắt Cloud SQL – 1 dịch vụ cơ sở dữ liệu được quản lý hoàn toàn bởi Google Cloud Platform cho MySQL, PostgreSQL và SQL Server, giúp kết nối dễ dàng với các Cloud SQL connector. Bài viết dưới đây, Cloud Ace sẽ giải thích chi tiết về trình kết nối Cloud SQL (Cloud SQL connector).
1. Bối cảnh ra đời
Trong Google Cloud, người dùng có thể tạo cơ sở dữ liệu Cloud SQL mới trong vài phút. Tuy nhiên theo cách truyền thống, để kết nối ứng dụng với database một cách an toàn và đảm bảo tất cả lượng truy cập đều được mã hoá, người dùng sẽ phải:
Cung cấp chứng chỉ SSL.
Cung cấp các chứng chỉ đó cho ứng dụng một cách an toàn.
Thường xuyên tìm hiểu cách xoay vòng chứng chỉ SSL.
Tạo mật khẩu và database users.
Thường xuyên tìm hiểu cách xoay vòng mật khẩu người dùng.
Thiết lập quy tắc tường lửa hoặc Authorized Networks để chỉ các ứng dụng được ủy quyền mới được truy cập database.
2. Google Cloud SQL Connectors
Tất cả các trình kết nối đều tuân theo một mẫu kiến trúc an toàn sử dụng proxy tunnel để kết nối ứng dụng với Cloud SQL. Sơ đồ sau đây cho thấy một phiên bản đơn giản hóa của kiến trúc đó:
Cloud SQL connectors là các tiện ích dưới dạng library và binary mà người dùng cung cấp cùng với ứng dụng của mình để đảm bảo kết nối an toàn với database của họ.
Cloud SQL có các trình kết nối cho Java, Python và Go. Nếu ứng dụng được viết bằng một trong những ngôn ngữ đó, người dùng nên bắt đầu với trình kết nối dành riêng cho ngôn ngữ.
Bên cạnh đó, Proxy Cloud SQL Auth là một tệp binary (nhị phân) có thể chạy dưới dạng sidecar hoặc background process, và hoạt động với bất kỳ ngôn ngữ nào được kết nối qua TCP hoặc Unix Domain.
Tất cả các trình kết nối đều tuân theo một mẫu kiến trúc an toàn sử dụng proxy tunnel để kết nối ứng dụng với Cloud SQL. Sơ đồ sau đây cho thấy một phiên bản đơn giản hóa của kiến trúc đó:
3. Tại sao phải dùng 1 trình kết nối ?
Nếu người dùng đang muốn giảm tải càng nhiều công việc càng tốt lên Cloud SQL, thì Cloud SQL Connector sẽ cung cấp tất cả các lợi ích của việc kết nối an toàn và một số lợi ích khác. Ví dụ như:
Convenience: Loại bỏ nhu cầu sắp xếp các Authorized Network hoặc chứng chỉ SSL.
Improve Security: Sử dụng TLS xác thực lẫn nhau (v1.3), độc lập với giao thức database.
Connection authorization: Kiểm soát ai có thể kết nối vào cơ sở dữ liệu thông qua permission và IAM roles.
Automatic IAM database authentication: Chọn trải nghiệm không cần mật khẩu và không cần lo lắng khi đẩy thông tin đăng nhập sang chế độ kiểm soát nguồn.
IAM conditions with Cloud SQL: Thu hẹp quyền đối với các phiên bản Cloud SQL cụ thể.
Connector enforcement: Chỉ cho phép kết nối bằng trình kết nối Cloud SQL.
Open standards: Connectors (trình kết nối) được xây dựng dựa trên các tiêu chuẩn hiện có do trình điều khiển database thiết lập, vì vậy, việc sử dụng chúng cũng đơn giản như việc thêm phần phụ thuộc vào ứng dụng bằng một vài dòng mã.
Open source: Tất cả các trình kết nối đều là mã nguồn mở và được duy trì trên GitHub.