Đây là bài viết về stack công nghệ đã chọn và quá trình phát triển khi xây dựng trang cộng đồng trong nước (zod.kr).
Trong tình huống lưu lượng truy cập tăng gấp 10 lần dự kiến do sai lầm lớn của một trang cạnh tranh, máy chủ đã sập rồi được khôi phục trở lại.
Tối ưu tài nguyên để cắt giảm chi phí lưu lượng truy cập.
Dưới đây là phần tóm tắt bằng Grok 3.
Chia sẻ trải nghiệm một mình phát triển cộng đồng IT zod.kr. Bao gồm cả quá trình tối ưu để giảm chi phí máy chủ.
- Bối cảnh phát triển: Quay lại phát triển web sau 3 năm, quay lại PHP sau 7 năm. Chuyển sang vai trò lập trình viên full-stack.
- Stack dịch vụ: Rhymix(CMS), Oracle Cloud Free Tier (giai đoạn đầu), Cloudflare (bảo mật), Bunny.net(CDN), Naver Cloud (email).
- Máy chủ ban đầu: Oracle Free Tier (24GB RAM, ARM 4 lõi, 150GB lưu trữ). Chọn vì có 4TB lưu lượng miễn phí, nhưng sau khi mở dịch vụ đã gặp lưu lượng tăng gấp 10 lần ngoài dự kiến, khiến kết nối ổ đĩa mạng bị ngắt và máy chủ sụp đổ.
- Chuyển máy chủ: Khẩn cấp chuyển sang Vultr. Tạm mở lại dịch vụ sau 30 giờ làm việc không ngủ.
- Vấn đề lưu lượng:
- Cloudflare Argo (0,1 USD mỗi GB) khiến chi phí mỗi ngày lên tới 20 USD, ước tính khoảng 1 triệu won mỗi tháng.
- Chuyển sang Bunny.net giúp giảm chi phí xuống còn khoảng 15~20%.
- 27.000~30.000 người truy cập mỗi ngày, nhận ra sự cần thiết phải tối ưu lưu lượng.
- Nỗ lực tối ưu:
- Giảm dung lượng icon (Iconoir) và web font (Pretendard).
- Tối thiểu hóa script/style inline, xóa chú thích HTML.
- Áp dụng Lazyload để giảm lưu lượng Bunny.net (68-88GB → 44-46GB).
- Chặn bot và đưa vào whitelist API để tiết kiệm 3~4GB.
- Kết quả:
- Lưu lượng đỉnh trên Cloudflare giảm từ 211GB xuống 12GB, tổng lưu lượng giảm 57%.
- Chi phí giảm 70~80% (26 USD/ngày → 3,48 USD).
- Bài học rút ra: Cloudflare dùng đúng thì rất hữu ích, dùng không đúng thì phản tác dụng. Nhận ra tầm quan trọng của việc quản lý lưu lượng.
13 bình luận
Tôi cứ nghĩ là Nextjs...
Tôi cũng đang tự phát triển một mình ở quy mô nhỏ, và vì đang dùng Vercel nên điều tôi lo nhất chính là chi phí.
Tôi đã đọc rất hay. Nhờ vậy tôi cũng biết thêm về CDN mà trước đây chưa biết. Thỉnh thoảng tôi sẽ tham khảo.
zod là Viện Nghiên cứu Làm chuyện vớ vẩn..?
Đây là một cộng đồng tôi đang sử dụng rất tốt, và đúng lúc gần đây tôi cũng đang nghĩ đến việc vận hành một cộng đồng khép kín cho các nhóm game, nên đây là một bài chia sẻ hậu kỳ khá thú vị. Tôi không ngờ bạn làm một mình, thật tuyệt.
Mình rất rất tò mò không biết ban đầu bạn đã thu hút mọi người theo cách nào, thật tuyệt vời.
Tôi nhớ là vào thời điểm mở cửa, khi một trang web xử lý chủ đề tương tự vướng vào tranh cãi về vận hành, người dùng đã tự tìm đến khá nhiều.
Việc dùng Rhymix cũng thú vị, và việc cung cấp API cho Algumon cũng là nội dung khá thú vị.
Có vẻ Algumon đã làm gì đó rồi. Tôi biết thêm được một trang web hay.
Đọc rất hay. Dù dùng Cloudflare thì chi phí lưu lượng mạng vẫn đắt nhỉ?
Bài viết về cách xử lý 80TB traffic và 5M pageview với 500.000 won/tháng ($400) có vài điểm khá giống với stack được nêu ở đây
Hay đấy,
nếu dùng công nghệ như
fetchthì có vẻ sẽ giảm được lưu lượng truy cập thêm một chút, nhưng việc đó là không khả thi sao?Vì sao
fetchlại giúp giảm lưu lượng truy cập?À, chắc là Ajax.
Tôi cũng không rành lắm về web, nhưng mỗi lần chuyển sang tab khác thì nó lại nhận HTML hoàn toàn mới.
Tôi biết là cũng có cách chỉ lấy data của phần đã thay đổi thôi.
Hãy cố lên cho đến ngày trở thành cộng đồng phần cứng số 1!