Hướng dẫn cài đặt EmDash trên Cloudflare Workers – So sánh chi phí chi tiết với VPS và WordPress

Mục lục

Sau bài hướng dẫn cài đặt EmDash self-hosted trên Ubuntu 24 VPS, bài viết này sẽ hướng dẫn bạn deploy EmDash lên Cloudflare Workers – nền tảng serverless của Cloudflare. Đồng thời, TND sẽ so sánh chi tiết chi phí giữa các phương pháp triển khai để bạn chọn được giải pháp phù hợp nhất.

Tại sao chọn Cloudflare cho EmDash?

EmDash được thiết kế tối ưu cho Cloudflare ngay từ đầu. Khi deploy lên Cloudflare, bạn được:

  • Scale tự động: Từ 0 đến hàng triệu request mà không cần cấu hình gì.
  • Chỉ trả theo sử dụng: Không mất tiền khi website không có traffic.
  • Plugin sandbox: Sử dụng Cloudflare Dynamic Workers để cách ly plugin hoàn toàn.
  • Edge network toàn cầu: Website được serve từ 300+ data center trên thế giới.
  • Tích hợp D1, R2, KV: Database, storage và session được quản lý bởi Cloudflare.

Bước 1: Tạo tài khoản Cloudflare

Nếu chưa có tài khoản, đăng ký tại dash.cloudflare.com. Bạn cần upgrade lên plan Workers Paid ($5/tháng) để sử dụng Dynamic Workers – tính năng bắt buộc cho plugin sandbox của EmDash.

Bước 2: Cài đặt Wrangler CLI

Wrangler là CLI của Cloudflare để quản lý Workers:

npm install -g wrangler
wrangler login

Bước 3: Tạo project EmDash

npm create emdash@latest my-cf-website
cd my-cf-website

Khi được hỏi về deployment target, chọn Cloudflare Workers.

Bước 4: Cấu hình cho Cloudflare

Mở file astro.config.mjs và cấu hình sử dụng D1 database và R2 storage:

import { defineConfig } from "astro/config";
import emdash from "emdash/astro";
import { d1 } from "emdash/db";
import cloudflare from "@astrojs/cloudflare";

export default defineConfig({
  output: "server",
  adapter: cloudflare(),
  integrations: [
    emdash({
      database: d1(),
    }),
  ],
});

Bước 5: Tạo D1 database và R2 bucket

# Tạo D1 database
wrangler d1 create emdash-db

# Tạo R2 bucket cho media storage
wrangler r2 bucket create emdash-media

# Tạo KV namespace cho sessions
wrangler kv namespace create emdash-sessions

Cập nhật file wrangler.toml với các ID từ output phía trên:

name = "my-emdash-site"
compatibility_date = "2024-01-01"

[[d1_databases]]
binding = "DB"
database_name = "emdash-db"
database_id = "your-d1-id-here"

[[r2_buckets]]
binding = "MEDIA"
bucket_name = "emdash-media"

[[kv_namespaces]]
binding = "SESSIONS"
id = "your-kv-id-here"

Bước 6: Deploy lên Cloudflare

# Build project
pnpm build

# Deploy
wrangler deploy

Sau khi deploy, website sẽ có sẵn tại my-emdash-site.your-subdomain.workers.dev. Bạn có thể trỏ tên miền riêng vào trong Cloudflare dashboard.

Bước 7: Cấu hình tên miền (tùy chọn)

Trong Cloudflare dashboard, vào Workers & Pages -> Custom Domains và thêm tên miền của bạn. Cloudflare sẽ tự động cấu hình DNS và SSL.

Deploy nhanh bằng 1 click

EmDash cũng hỗ trợ deploy 1 click qua Cloudflare dashboard. Truy cập GitHub EmDash và nhấn nút “Deploy to Cloudflare Workers” trong phần template Blog.

So sánh chi phí chi tiết: Cloudflare vs Self-Hosted vs WordPress

Dưới đây là bảng so sánh chi phí hàng tháng cho một website có khoảng 50,000-100,000 pageviews/tháng:

1. EmDash trên Cloudflare Workers

Hạng mụcFree tierPaid plan
Workers (compute)100,000 req/ngày miễn phí$5/tháng (10 triệu req)
D1 database5GB miễn phí$0.75/GB/tháng
R2 storage (media)10GB miễn phí$0.015/GB/tháng
KV (sessions)100,000 reads/ngày miễn phí$0.50/triệu reads
Tên miền$10-15/năm
Tổng$0/tháng (trong free tier)$5-8/tháng

2. EmDash Self-Hosted trên VPS

Hạng mụcVPS nhỏVPS trung bình
VPS (1 vCPU, 1GB RAM)$5-6/tháng
VPS (2 vCPU, 4GB RAM)$15-20/tháng
SSL CertificateMiễn phí (Let’s Encrypt)Miễn phí (Let’s Encrypt)
Backup$1-2/tháng$2-5/tháng
Tên miền$10-15/năm$10-15/năm
Tổng$6-9/tháng$18-26/tháng

3. WordPress truyền thống (để so sánh)

Hạng mụcShared HostingVPS/Managed
Hosting$3-10/tháng$15-50/tháng
Theme premium$50-100/lần$50-100/lần
Plugin premium (SEO, cache, bảo mật)$100-300/năm$100-300/năm
SSL CertificateThường miễn phíThường miễn phí
Tên miền$10-15/năm$10-15/năm
Tổng$5-15/tháng$25-75/tháng

Phân tích chi phí theo quy mô

Website nhỏ (dưới 10,000 pageviews/tháng)

Lựa chọn tốt nhất: Cloudflare Free tier – $0/tháng. Với 100,000 request/ngày miễn phí, 5GB D1 và 10GB R2, bạn có thể chạy website hoàn toàn miễn phí. Chỉ cần trả tiền tên miền.

Website trung bình (10,000-100,000 pageviews/tháng)

Lựa chọn tốt nhất: Cloudflare Paid – $5-8/tháng. Rẻ hơn VPS từ 20-50%, không cần quản lý server, auto-scale và có CDN toàn cầu.

Website lớn (trên 100,000 pageviews/tháng)

Tùy thuộc nhu cầu. Nếu cần toàn quyền kiểm soát server và có đội ngũ DevOps, VPS self-hosted có thể tiết kiệm hơn. Nếu muốn đơn giản và không lo scale, Cloudflare vẫn là lựa chọn an toàn với chi phí dự đoán được.

Bảng tóm tắt so sánh

Tiêu chíCloudflareSelf-Hosted VPSWordPress
Chi phí khởi điểm$0$5/tháng$3/tháng
Chi phí 100k views$5-8/tháng$15-20/tháng$25-75/tháng
Auto-scaleKhông (cần nâng cấp VPS)Không
Bảo mật pluginSandbox hoàn toànKhông có sandboxKhông có
Quản lý serverKhông cầnCần kiến thức LinuxTùy hosting
CDN toàn cầuCó sẵn (300+ PoP)Cần cấu hình thêmCần plugin/dịch vụ
SSLTự động, miễn phíLet’s EncryptTùy hosting
BackupTự động (D1, R2)Cần tự cấu hìnhCần plugin
Custom codeHạn chế (serverless)Toàn quyềnPHP

Kết luận

Với đa số trường hợp, EmDash trên Cloudflare Workers là lựa chọn tối ưu nhất về chi phí, hiệu suất và bảo mật. Bạn chỉ cần $5/tháng để có một website CMS hoàn chỉnh với CDN toàn cầu, auto-scale, và plugin sandbox – những thứ mà WordPress cần hàng chục dollar/tháng để đạt được.

Tuy nhiên, nếu bạn cần toàn quyền kiểm soát server, chạy các ứng dụng phức tạp bên cạnh CMS, hoặc đã có sẵn hạ tầng VPS, thì self-hosted trên Ubuntu 24 VPS vẫn là lựa chọn tuyệt vời.

Dù bạn chọn cách nào, EmDash đều là bước tiến lớn so với WordPress truyền thống – an toàn hơn, nhanh hơn, và rẻ hơn.

Liên kết hữu ích:

Chia sẻ bài viết