Thông thường, để sử dụng một website cần phải có máy chủ để hosting website của bạn.
Bạn có thể mua một sharing hosting hoặc phải thuê một máy chủ. Việc cấu hình và vận hành một chủ không hề đơn giản.
Để xây dụng một website 1.000.000 user bạn cần làm gì?
– Chuẩn bị một budget thật lớn?
– Thuê một đội IT tinh nhuệ?
Hôm nay, mình xin chia sẻ cách làm một static website có thể phục vụ lên đến 1.000.000 user cùng một lúc vô cùng đơn giản.
I. Tổng quan về mô hình:
- User kết nối trực tiếp vào Google HTTP Load Balancing (GLB)
- Cấu hình Google Cloud Storage backend của Google Cloud Load Balancing
- Các static content như Javascript, Html, CSS, Image được lưu trữ trên Google Cloud Storage
Tại sao mình lại chọn sử dụng GLB ở đây? Google HTTP load balancing có thể xử lý lên đến 1.000.000 queries/s.
HTTP load balancing là LB global sử dụng any cast IP, điều này giúp tối ưu được latency thấp nhất đến với user. Và hơn nữa có GLB chúng ta sẽ dễ dàng cấu hình custom domain, cấu hình SSL và Security với Cloud Armor.
II. Tiến hành cấu hình
- Vào Google Cloud Console → Cloud Storage → Create Bucket. Bạn có thể đặt tên cho bucket bất kì.
- Upload tất cả các static file như JS, Image, CSS lên Cloud Storage. Điều quan trọng bạn cần phải có 1 file index.html và 1 file 404.html
- Sharing file public bằng cách phần quyền Storage Object Viewer cho user allUsers. Sau đó lưu và Click Allow public access
- Open Cloud Shell → Run command:
gsutil web set -m index.html -e 404.html gs://<Tên bucket>
5. Cấu hình Google HTTP Load Balancing backend với Google Cloud Storage
5.1. Reserving an external IP address
Vào phần External IP addresses trên Google Cloud Console → chọn Reserve static address:
– Name: tùy chọn
– IP Version: Ipv4
– Type: Global
Click chọn nút Reserve
5.2. Creating the HTTP load balancer with backend buckets
– Configuring the backend:
gcloud compute backend-buckets create static-web \
--gcs-bucket-name=[BUCKET_1_NAME]
– Configuring the URL map
gcloud compute url-maps create http-lb \
--default-backend-bucket=static-web
– Configuring the target proxy
gcloud compute target-http-proxies create http-lb-proxy \
--url-map=http-lb
– Configuring the forwarding rule
gcloud compute forwarding-rules create http-lb-forwarding-rule \
--address=example-ip \
--global \
--target-http-proxy=http-lb-proxy \
--ports=80
6. Cấu hình A record trên DNS về static IP của HTTP Load Balancing.
7. Tiến hành kiểm thử xem các cấu hình đã hoạt động đúng.
III. Lời kết
Bạn sẽ không cần một đội IT hùng mạnh, cũng không cần phải quá lo về chi phí vận hành. Mà vẫn có thể sử dụng Google Cloud để hosting cho website của mình và có thể phục vụ hàng triệu người dùng truy cập một cách dễ dàng với các bước cấu hình đơn giản trên.