Xin chào mọi người, hôm nay mình sẽ chia sẻ một mẹo nhỏ cực kỳ hữu ích và đơn giản là triển khai một website tĩnh lên Amazon S3 mà không cần dùng EC2, không cần backend, không cần viết code phức tạp. Việc này khá phù hợp để:
- Hosting CV cá nhân, landing page, portfolio
- Tạo trang báo lỗi (custom 404 page)
- Chia sẻ tài liệu nội bộ, công khai hoặc có giới hạn quyền truy cập
1. Website tĩnh là gì?
Website tĩnh là những trang web chỉ bao gồm HTML, CSS, JS, không cần xử lý phía server như PHP, Node.js. Ví dụ như các trang tạo bằng:
- HTML thủ công
- Bootstrap
- React build sẵn (
npm run build
) - Hugo, Jekyll (blog tĩnh)
2. Tạo S3 bucket để chứa trang web
- Truy cập S3 Console
- Nhấn Create bucket
- Đặt tên bucket (ví dụ:
my-portfolio-site
) - Bỏ chọn ở mục "Block all public access" → để người khác truy cập web được
- Nhấn Create bucket
3. Upload file và bật chế độ website
- Vào bucket vừa tạo → tab Properties
- Tìm mục Static website hosting → nhấn Edit
- Chọn Enable và thêm các thông tin như bên dưới
- Index document:
index.html
- Error document:
404.html
(nếu có) - Nhấn Save changes
- Index document:
- Quay lại tab Objects → nhấn Upload
- Upload toàn bộ file
index.html
, CSS, JS, ảnh,...
- Upload toàn bộ file
- Sau khi upload xong, click file
index.html
→ Object URL chính là link trang web
4. Thiết lập permission
Để người khác có thể truy cập được thì chúng ta phải cấp quyền bucket policy
- Vào tab Permissions
- Chọn Bucket policy
- Dán đoạn sau, thay
your-bucket-name
bằng tên bucket bạn:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::your-bucket-name/*" } ]
}
- Click Save changes
5. Truy cập website
Sau khi làm đủ các bước trên thì bạn đã tạo ra 1 website tĩnh cho riêng mình, link trang web của bạn có định dạng như bên dưới, cập nhật your-bucket-name thành tên bucket của bạn và xác nhận thành quả
http://your-bucket-name.s3-website-ap-northeast-1.amazonaws.com
Như vậy chỉ với một vài thao tác đơn giản, bạn có thể đưa một website tĩnh lên AWS S3, hoàn toàn không cần backend hay server. Đây là cách cực kỳ hiệu quả để chia sẻ thông tin, tạo trang cá nhân, hoặc thử nghiệm ý tưởng nhanh chóng. Cảm ơn các bạn đã theo dõi và ủng hộ!