DevOps AI
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud
No Result
View All Result
DevOpsAI
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud
No Result
View All Result
DevOpsAI
No Result
View All Result
Home DevOps & Cloud

Hosting a Static Website trên AWS S3

Hiếu Tạ by Hiếu Tạ
1 Tháng 5, 2025
in DevOps & Cloud
0
Hosting a Static Website trên AWS S3
Share on FacebookShare on Twitter
Sau một thời gian, tham gia vào các khóa AWS Academy do AWS tổ chức, mình có note được một số nội dung và xin phép được chia sẻ lại bằng Tiếng Việt giành cho các anh em chưa có cơ hội tham gia hoặc muốn hiểu thêm về AWS. Một số nội dung như html, css, js,... mình xin sử dụng lại của AWS luôn cho lẹ nhé anh em :D :D Theo chân mình để đi một chuỗi hand-on AWS nhé

Bài hôm nay, ngoài việc storage các objects thì S3 còn có thêm một tính năng là giúp user có thể hosting website một các dễ dàng. Hy vọng bài viết dưới đây có thể giúp bạn hiểu hơn về nó.

Task 1: Tạo 1 bucket trên S3

Trong task này, bạn sẽ tạo ra 1 bucket trên S3 và mình lưu trữ bản static website của mình.

  1. Vào AWS Management Console, chọn Services trên menu, chọn S3.
  2. Chọn Create bucket, chỗ S3 bucket name sẽ là một tên gọi cho bucket, lưu ý nó là duy nhất trên global, không được chứa khoảng trắng hoặc chữ hoa. Sau khi bạn tạo một bucket, tên của bucket đó không thể được sử dụng bởi một tài khoản AWS khác trong bất kỳ Khu vực AWS nào trừ khi bạn xóa bucket đó. Do đó, đối với phòng lab này, bạn sẽ sử dụng tên chứa bao gồm một số ngẫu nhiên, chẳng hạn như: website-1233
  3. Bucket name nhập vào website-1233 (nhớ thay 1233 thành 1 random number). Public access to buckets bị chặn theo mặc định. Vì các tệp trong trang web tĩnh của bạn sẽ cần có thể truy cập được qua internet nên bạn phải cho phép truy cập công khai.
  4. Trong Object Ownership, chọn ACLs enabled, sau đó kiểm tra lại Bucket owner preferred rằng đã được chọn.
  5. Bỏ chọn Block all public access, sau đó chọn vào “I acknowledge that the current settings may result in this bucket and the objects within becoming public.“
  6. Chọn Create bucket
    Bạn có thể sử dụng tag để thêm thông tin bổ sung vào bucket, chẳng hạn như mã dự án, hoặc chủ sở hữu.
  7. Chọn vào tên bucket bạn vừa tạo
  8. Chọn tab Properties.
  9. Cuộn xuống đến Tags.
  10. Chọn Edit sau đó Add tag và nhấn enter:
    Key: Department
    Value: Marketing
  11. Chọn Save changes để lưu tag. Tiếp theo, bạn sẽ cấu hình bucket cho dịch vụ lưu trữ trang web tĩnh.
  12. Vẫn ở màn hình tab Properties .
  13. Cuộn xuống Static website hosting.
  14. Chọn Edit
  15. Cấu hình các cài đặt sau:
    • Static web hosting: Enable
    • Hosting type: Host a static website
    • Index document:index.html
      • Lưu ý: Bạn phải nhập giá trị này, mặc dù nó đã được hiển thị.
    • Error document: error.html
  16. Chọn Save changes
  17. Vào mục Static website hosting, chọn liên kết dưới Bucket website endpoint. Bạn sẽ nhận được lỗi “403 Forbidden message” bởi vì các quyền của bucket chưa được cấu hình. Đừng tắt tab này, mở trong trình duyệt web của bạn để bạn có thể quay lại sau.

    Vậy là xong, bucket của bạn hiện đã được cấu hình để lưu trữ một trang web tĩnh.

Task 2: Uploading content lên bucket

Trong task này, bạn sẽ tải các tệp sẽ đóng vai trò là trang web tĩnh của mình lên bucket.

  1. 3 mục này mình để ở github mình
    • index.html
    • script.js
    • style.css
  2. Quay lại Amazon S3 console và vào website-<1233> bạn đã tạo trước đó, hãy chọn Objects tab.
  3. Chọn Upload
  4. Chọn Add files
  5. Xác định vị trí thư mục và chọn ba tệp mà bạn đã tải xuống.
  6. Chọn Upload Các tệp của bạn được tải lên bộ chứa.
    • Chọn Close

Task 3: Cho phép truy cập vào các objects

Theo mặc định, các objects được lưu trữ trong Amazon S3 là private. Điều này đảm bảo rằng dữ liệu của bạn vẫn an toàn.

Related Post

Ưu Đãi Đặc Biệt: Nhận Ngay Coupon Giảm 25% cho Bộ Đề Luyện Thi Cloud!

Ưu Đãi Đặc Biệt: Nhận Ngay Coupon Giảm 25% cho Bộ Đề Luyện Thi Cloud!

29 Tháng 4, 2025
Đổi MTU cho Calico trong Kubernetes

Đổi MTU cho Calico trong Kubernetes

30 Tháng 4, 2025

Tắt NLA trên Amazon EC2 Windows instance

30 Tháng 4, 2025

Demo Tích Hợp Vault trong Kubernetes

30 Tháng 4, 2025

Trong task này, bạn sẽ làm cho các đối tượng được tải lên có thể truy cập công khai từ bên ngoài.

Trước tiên, hãy xác nhận rằng các objects hiện đang ở chế độ private trước đã 😀

  1. Quay lại tab trình duyệt đã hiển thị 403 Forbidden message.
  2. Refresh cái webpage. Nhưng mà lỡ đóng tab web này rồi thì vào tab Properties, và trong Static website hosting chọn Endpoint. Bạn vẫn sẽ thấy một “403 Forbidden message”. Vậy là đã private như mong đợi. Hiểu sơ qua thì thông báo này ý là cho biết rằng trang web tĩnh của bạn đang được Amazon S3 lưu trữ, nhưng nội dung đó là riêng tư. Bạn có thể công khai cácobjects Amazon S3 thông qua hai cách khác nhau:
    • Để public toàn bộ bucket hoặc một thư mục cụ thể trong bucket, hãy sử dụng “bucket policy“.

    • Để public các object riêng lẻ trong bucket, mình sẽ sử dụng access control list (ACL).
  3. Thông thường sẽ an toàn hơn thì thường người ta sẽ dùng cách 2, vì nó tránh việc mình public nhưng object khác không mong muốn trong bucket. Tuy nhiên, nếu bạn biết rằng toàn bộ nhóm không chứa thông tin nhạy cảm, bạn có thể sử dụng “bucket policy“.

    Bây giờ bạn sẽ cấu hình các object riêng lẻ để có thể truy cập công khai.
  4. Quay lại tab trình duyệt web với bảng điều khiển Amazon S3 (nhưng không đóng tab trang web).
  5. Chọn cả 3 objects
  6. Trong Actions menu, chọn Make public via ACL. Một danh sách của ba đối tượng được hiển thị.
  7. Chọn Make public => Trang web tĩnh của bạn hiện có thể truy cập công khai.
  8. Quay trở lại tab trình duyệt web có 403 Forbidden message.
  9. F5 lại webpage.

Thế là xong

Task 4: Updating the website

Trong task này, mình sẽ hướng dẫn cách để update trang web khi có source code mới

Amazon S3 là một object storage service, vì vậy bạn phải tải lên toàn bộ files. Hành động này sẽ thay thế objects hiện có trong bucket của bạn. Bạn không thể chỉnh sửa nội dung của một object—thay vào đó, toàn bộ objects phải được thay thế.

  1. Trên máy tính của bạn, tải tệp index.html vào trình soạn thảo văn bản (vd: Notepad or TextEdit).
  2. Tìm khúc Served from Amazon S3 và thay thế bằng “<TÊN CỦA BẠN> đã đặt chân đến đây“
  3. Lưu file.
  4. Quay lại bảng điều khiển Amazon S3 và tải lên tệp index.html mà bạn vừa chỉnh sửa.
  5. Chọn index.html và sử dụng menu Actions để chọn lại tùy chọn Đặt công khai qua ACL.
  6. Quay lại tab trình duyệt web có trang web tĩnh và làm mới trang.

Done, tên của bạn bây giờ sẽ có trên trang. Trang web tĩnh của bạn hiện có thể truy cập được trên internet. Vì được lưu trữ trên Amazon S3 nên trang web có tính sẵn sàng cao và có thể phục vụ lưu lượng truy cập lớn mà không cần sử dụng bất kỳ máy chủ nào. Bạn cũng có thể sử dụng tên miền của riêng mình để hướng người dùng đến một trang web tĩnh được lưu trữ trên Amazon S3. Để thực hiện điều này, bạn có thể sử dụng dịch vụ Hệ thống tên miền (DNS) Amazon Route 53 kết hợp với Amazon S3.

Chúc các bạn thành công!!!! Và hẹn gặp lại trong bài viết khác!

Reference: AWS Academy Cloud Arichitect

Tags: awshosting static webhướng dẫnlabs3
Hiếu Tạ

Hiếu Tạ

Graduated as a Software Engineer. I have more than 3-year experience in developing software and DevOps, used to many services of AWS, and Azure, K8S, and using Windows or Linux on-premies proficiently to set up servers, proxy, build and deploy multiple programming languages (Java, GO, NET,...)..... Experience with CMS such SiteCore, ElasticPath, AEM... Implement CICD via Jenkins scripting, infrastructure as code via Terraform, and AWS Cloud Formation.

Related Posts

Ưu Đãi Đặc Biệt: Nhận Ngay Coupon Giảm 25% cho Bộ Đề Luyện Thi Cloud!
Tin tức

Ưu Đãi Đặc Biệt: Nhận Ngay Coupon Giảm 25% cho Bộ Đề Luyện Thi Cloud!

by devopsify
29 Tháng 4, 2025
Đổi MTU cho Calico trong Kubernetes
DevOps & Cloud

Đổi MTU cho Calico trong Kubernetes

by Hiếu Tạ
30 Tháng 4, 2025
Tắt NLA trên Amazon EC2 Windows instance
DevOps & Cloud

Tắt NLA trên Amazon EC2 Windows instance

by Hiếu Tạ
30 Tháng 4, 2025
Next Post
Tích Hợp Gitlab-ci với AWS thông qua OIDC

Tích Hợp Gitlab-ci với AWS thông qua OIDC

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Recommended

Cài đặt Maven trên Windows

25 Tháng 4, 2025

Các website demo hay được sử dụng cho thực hành Automation Test

1 Tháng 5, 2025
Cài đặt Jenkins bằng Docker

Cài đặt Jenkins bằng Docker

30 Tháng 4, 2025

Kiểm tra tài nguyên CPU, RAM trên Ubuntu 22.04

25 Tháng 4, 2025
Unit Test là gì?

Unit Test là gì?

29 Tháng 4, 2025
cdk terraform

CDK cho Terraform

29 Tháng 4, 2025
Hướng Dẫn Thiết Lập LDAPS Trên Windows Server 2022

Hướng Dẫn Thiết Lập LDAPS Trên Windows Server 2022

26 Tháng 4, 2025
DeepSeek AI là gì? Tổng hợp các mô hình DeepSeek mạnh mẽ nhất hiện nay

DeepSeek AI là gì? Tổng hợp các mô hình DeepSeek mạnh mẽ nhất hiện nay

1 Tháng 5, 2025
DevOpsify

Cộng đồng DevOps Việt Nam chia sẽ kiến thức giúp tăng tốc quá trình phát triển ứng dụng và tự động hóa trong lĩnh vực Cloud DevOps & AI.

Bài viết mới

  • Unit Test là gì?
  • CDK cho Terraform
  • Hướng Dẫn Thiết Lập LDAPS Trên Windows Server 2022

Categories

  • AI & Automation
  • Bảo mật
  • Chưa phân loại
  • DevOps & Cloud
  • Tin tức
No Result
View All Result
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud

© 2025 DevOpsify