Quay lại danh sách
Tin tức công nghệ

Tự Host Nền Tảng Quản Lý Và Phân Phối API Bằng Kong Gateway Kết Hợp Keycloak Trên VPS Ubuntu 26.04

3 tháng 6, 2026

1. Đặt vấn đề: Tại sao doanh nghiệp cần tự host API Gateway và IAM?

Trong kỷ nguyên chuyển đổi số và kiến trúc vi dịch vụ (microservices), API đã trở thành mạch máu kết nối các thành phần hệ thống. Tuy nhiên, việc quản lý, bảo mật và phân phối API một cách thủ công luôn tiềm ẩn nhiều rủi ro về an ninh mạng và làm giảm hiệu suất phát triển phần mềm. Lúc này, API Gateway và hệ thống Identity and Access Management (IAM) trở thành những thành phần không thể thiếu.

Nhiều doanh nghiệp lựa chọn các dịch vụ Cloud như AWS API Gateway hay Auth0 để rút ngắn thời gian triển khai. Mặc dù vậy, mô hình SaaS hoặc Cloud Managed này thường đi kèm chi phí leo thang theo lượng request và nguy cơ phụ thuộc nhà cung cấp (vendor lock-in). Việc tự host (Self-hosting) một nền tảng quản lý API bằng các công cụ mã nguồn mở hàng đầu như Kong Gateway và Keycloak trên hạ tầng VPS Ubuntu 26.04 đang trở thành xu hướng tối ưu. Giải pháp này giúp doanh nghiệp kiểm soát toàn bộ dữ liệu, tùy biến sâu và tối ưu hóa chi phí vận hành.

2. Giới thiệu hệ giải pháp: Kong Gateway & Keycloak

Trước khi đi vào triển khai kỹ thuật, chúng ta cần hiểu rõ vai trò của từng thành phần trong mô hình kiến trúc này:

  • Kong Gateway: Là một API Gateway mã nguồn mở phổ biến nhất hiện nay, được xây dựng trên nền tảng Nginx tối ưu hóa cho hiệu năng cực cao và độ trễ thấp. Kong chịu trách nhiệm định tuyến (routing), cân bằng tải (load balancing), và áp dụng các chính sách như giới hạn lượt gọi (rate limiting), ghi log.
  • Keycloak: Là giải pháp quản lý danh tính và truy cập (IAM) mạnh mẽ do Red Hat phát triển. Keycloak hỗ trợ đầy đủ các giao thức bảo mật tiêu chuẩn như OAuth 2.0, OpenID Connect (OIDC), và SAML 2.0.

Khi kết hợp với nhau, Kong đóng vai trò như "người gác cổng" (Enforcement Point), còn Keycloak là "trung tâm xác thực" (Decision Point). Kong sẽ chặn các request, chuyển hướng xác thực qua Keycloak hoặc kiểm tra tính hợp lệ của JSON Web Token (JWT) do Keycloak cấp phát trước khi cho phép request tiếp cận đến các service nội bộ.

3. Chuẩn bị hệ thống VPS Ubuntu 26.04

Để đảm bảo hệ thống vận hành ổn định trong môi trường production, bạn cần chuẩn bị một cấu hình VPS tối thiểu như sau:

  • CPU: 2 Cores trở lên.
  • RAM: Tối thiểu 4GB (Keycloak chạy trên nền Java nên khá ngốn RAM lúc khởi động).
  • Hệ điều hành: Ubuntu 26.04 LTS sạch (Clean install).
  • Đã cấu hình Domain/Subdomain trỏ về IP của VPS (Ví dụ: api.domain.com cho Kong và auth.domain.com cho Keycloak).

Cập nhật hệ thống lên phiên bản mới nhất bằng lệnh:

sudo apt update && sudo apt upgrade -y

4. Quy trình triển khai chi tiết từng bước

Bước 1: Cài đặt Docker và Docker Compose

Để đơn giản hóa quá trình cài đặt và quản lý các dependency phức tạp, chúng ta sẽ sử dụng Docker. Hãy cài đặt Docker Engine trên Ubuntu 26.04:

Kích hoạt và cài đặt công cụ cần thiết:

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL [https://download.docker.com/linux/ubuntu/gpg](https://download.docker.com/linux/ubuntu/gpg) | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] [https://download.docker.com/linux/ubuntu](https://download.docker.com/linux/ubuntu) $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.p/docker.list > /dev/null
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

Bước 2: Cấu hình cơ sở dữ liệu PostgreSQL

Cả Kong và Keycloak đều cần cơ sở dữ liệu để lưu trữ cấu hình. Chúng ta sẽ khởi tạo một container PostgreSQL chung nhưng chia thành 2 database riêng biệt. Tạo file docker-compose.yml để định nghĩa cấu hình:

version: '3.8'
services:
  postgres:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: root
      POSTGRES_PASSWORD: SecretPassword123
    volumes:
      - pgdata:/var/lib/postgresql/data
    ports:
      - "5432:5432"

Bước 3: Triển khai Keycloak và cấu hình OIDC Realm

Tiếp tục bổ sung dịch vụ Keycloak vào hệ sinh thái Docker. Cần lưu ý cấu hình các tham số môi trường chính xác để Keycloak hoạt động phía sau một Reverse Proxy/Gateway: keycloak: image: quay.io/keycloak/keycloak:24.0 command: start-dev environment: KC_DB: postgres KC_DB_URL: jdbc:postgresql://postgres:5432/keycloak KC_DB_USERNAME: root KC_DB_PASSWORD: SecretPassword123 KEYCLOAK_ADMIN: admin KEYCLOAK_ADMIN_PASSWORD: AdminPassword123 ports: - "8080:8080" depends_on: - postgres

Sau khi container khởi chạy, truy cập vào giao diện quản trị của Keycloak tại http://YOUR_VPS_IP:8080, tạo một Realm mới (ví dụ: CompanyServices), tạo một Client đại diện cho Kong Gateway (Client ID: kong-gateway, Access Type: confidential).

Bước 4: Triển khai Kong Gateway và kết nối Plugin OIDC

Khởi chạy Kong Gateway (bản Community Edition) song song với cơ sở dữ liệu Postgres riêng:

  kong-migration:
    image: kong:3.6
    environment:
      KONG_DATABASE: postgres
      KONG_PG_HOST: postgres
      KONG_PG_PASSWORD: SecretPassword123
    command: kong migrations bootstrap

  kong:
    image: kong:3.6
    environment:
      KONG_DATABASE: postgres
      KONG_PG_HOST: postgres
      KONG_PG_PASSWORD: SecretPassword123
      KONG_PROXY_ACCESS_LOG: /dev/stdout
      KONG_ADMIN_LISTEN: 0.0.0.0:8001
    ports:
      - "8000:8000"
      - "8443:8443"
      - "8001:8001"
    depends_on:
      - kong-migration

Để bảo mật API, chúng ta tạo một Route trên Kong trỏ tới microservice cần bảo vệ, sau đó kích hoạt plugin mã nguồn mở kong-oidc hoặc sử dụng plugin JWT chuẩn hóa để xác thực access token được gửi từ client sau khi đăng nhập thành công qua Keycloak.

5. Đánh giá ưu điểm và thách thức khi vận hành

Bất kỳ giải pháp kiến trúc nào cũng có những sự đánh đổi. Dưới đây là bảng so sánh thực tế để các nhà quản trị cân nhắc:

Tiêu chí đánh giáGiải pháp Tự Host (Kong + Keycloak)Giải pháp Cloud Managed (AWS + Auth0)
Chi phí hàng thángCố định theo giá VPS (Rất rẻ khi scale lớn)Tăng tuyến tính theo lượt request và user
Quyền kiểm soát dữ liệu100% Thuộc về doanh nghiệp, bảo mật dữ liệu nội bộPhụ thuộc vào chính sách bên thứ ba
Mức độ phức tạp vận hànhCao (Cần đội ngũ DevOps bảo trì, backup)Thấp (Nhà cung cấp lo phần hạ tầng)
Khả năng tùy biếnVô hạn thông qua Plugin Lua/Go và giao diện KeycloakBị giới hạn trong hệ sinh thái của nhà cung cấp

6. Kết luận và khuyến nghị cho doanh nghiệp

Mô hình tự host nền tảng Quản lý và Phân phối API bằng Kong Gateway kết hợp Keycloak trên VPS Ubuntu 26.04 là một bước đi chiến lược dành cho các doanh nghiệp vừa và nhỏ (SMEs) hoặc các startup công nghệ muốn tối ưu hóa chi phí mà vẫn đảm bảo tính an toàn bảo mật ở tiêu chuẩn khắt khe nhất.

Mặc dù giải pháp này đòi hỏi doanh nghiệp phải có năng lực quản trị hệ thống và vận hành DevOps tốt, nhưng giá trị dài hạn mang lại về mặt tự chủ công nghệ và khả năng mở rộng linh hoạt là hoàn toàn xứng đáng. Hãy bắt đầu thử nghiệm mô hình này trên các môi trường Staging trước khi chính thức chuyển đổi toàn bộ hệ thống API Production của bạn.

Tự Host Nền Tảng Quản Lý Và Phân Phối API Bằng Kong Gateway Kết Hợp Keycloak Trên VPS Ubuntu 26.04 | DPTCloud