AWS Cloud

Cách lưu trữ trang web tĩnh bằng AWS S3 và Cloudflare

create s3 bucket

Mở đầu

Bài viết này tập trung vào việc lưu trữ một trang web tĩnh một cách hiệu quả bằng cách sử dụng dịch vụ lưu trữ đám mây AWS S3 và tối ưu hóa hiệu suất với Cloudflare, một dịch vụ mạng giao thông toàn cầu. AWS S3 cung cấp một giải pháp lưu trữ an toàn, scalable và linh hoạt, cho phép chúng ta lưu trữ tài nguyên tĩnh như hình ảnh, CSS, và JavaScript. Sự kết hợp giữa AWS S3 và Cloudflare mang lại lợi ích về tốc độ truy cập và bảo mật. Cloudflare không chỉ cung cấp các tính năng tối ưu hóa hiệu suất như CDN (Content Delivery Network) để giảm độ trễ, mà còn bảo vệ trang web khỏi các tấn công mạng và tăng cường bảo mật. Đồng thời, việc tích hợp giữa AWS S3 và Cloudflare giúp tối ưu hóa chi phí và đồng thời đảm bảo sự linh hoạt và ổn định trong quá trình quản lý nội dung tĩnh trên môi trường đám mây và internet toàn cầu.

Yêu cầu trước khi bắt đầu:

  • Một tài khoản Amazon Web Services .
  • Một Tên miền
  • Đã có một trang HTML tĩnh được thiết kế và sẵn sàng tải lên.

Lưu trữ một trang web tĩnh bằng AWS S3 và Cloudflare

Thiết lập nhóm Amazon S3

  1. Trước tiên, hãy tạo nhóm AWS S3 có cùng tên với tên miền của bạn, đảm bảo bao gồm www. và chọn khu vực AWS mong muốn của bạn.
    tạo nhóm s3 www
  2. Ở Bước 3, Đặt quyền, khi tạo nhóm S3, hãy nhớ bỏ chọn hộp kiểm “ Chặn tất cả quyền truy cập công cộng ” và xác nhận rằng bạn muốn xóa khối này!
    tạo quyền đặt nhóm s3
  3. Sau đó kích hoạt tính năng lưu trữ trang web tĩnh cho nhóm trong tab Thuộc tính.
    lưu trữ web tĩnh s3và đặt chỉ mục cũng như tên tệp tài liệu lỗi rồi nhấp vào LƯU. Hãy nhớ ghi lại URL điểm cuối của nhómkích hoạt lưu trữ trang web tĩnh
  4. Để cho phép nhóm này có thể truy cập được thông qua Cloudflare, chúng tôi sẽ cần chỉnh sửa chính sách nhóm, trong tab quyềnmenu chính sách vùng lưu trữ s3và sao chép/dán thông tin sau:
    
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "PublicReadGetObject",
                "Effect": "Allow",
                "Principal": "*",
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::www.MYDOMAINNAME.com/*",
                "Condition": {
                    "IpAddress": {
                        "aws:SourceIp": [
    				"2400:cb00::/32",
    				"2405:8100::/32",
    				"2405:b500::/32",
    				"2606:4700::/32",
    				"2803:f800::/32",
    				"2a06:98c0::/29",
    				"2c0f:f248::/32",
    				"103.21.244.0/22",
    				"103.22.200.0/22",
    				"103.31.4.0/22",
    				"104.16.0.0/13",
    				"104.24.0.0/14",
    				"108.162.192.0/18",
    				"131.0.72.0/22",
    				"141.101.64.0/18",
    				"162.158.0.0/15",
    				"172.64.0.0/13",
    				"173.245.48.0/20",
    				"188.114.96.0/20",
    				"190.93.240.0/20",
    				"197.234.240.0/22",
    				"198.41.128.0/17"
                        ]
                    }
                }
            }
        ]
    }
    

    Lưu ý: Đảm bảo thay thế MYDOMAINNAME trong chính sách bằng tên miền của riêng bạn.

  5. Sau khi lưu chính sách trên, bạn sẽ nhận được thông báo từ AWS cho biết nhóm có quyền truy cập công khai. Điều này ổn. Trên thực tế, mặc dù vùng lưu trữ này được công khai về mặt kỹ thuật nhưng nó chỉ có thể truy cập được nếu thông qua Cloudflare. Do đó bảo mật thêm.
    tin nhắn truy cập công khai của nhóm s3
  6. Bây giờ bạn có thể tải trang web tĩnh lên bộ chứa S3 của mình.
    Lưu ý: Trang web của bạn sẽ không thể truy cập được.

Thiết lập nhóm AWS S3 không có www

Chúng tôi cần tạo nhóm S3 thứ hai để khi người dùng cố gắng truy cập domainname.com, họ sẽ được chuyển hướng đến www.domainname.com.

QUẢNG CÁO
  1. Tạo nhóm S3 thứ hai có cùng tên với tên miền của bạn, nhóm này KHÔNG CÓ www.
  2. Bật tính năng lưu trữ trang web tĩnh cho nhóm nhưng lần này đặt nó chuyển hướng đến nhóm www.domainname.com của bạn.
    chuyển hướng trang web tĩnh s3

Vậy là xong cho nhóm thứ hai, bây giờ hãy thiết lập Cloudflare!

QUẢNG CÁO

Thiết lập Cloudflare cho trang HTML tĩnh của bạn

  1. Đăng nhập vào Cloudflare và nhấp vào “ +Thêm trang web ”.
    trang web thêm cloudflareSau đó nhập tên miền của bạn và nhấp vào “ Thêm trang web ”.cloudflare thêm tên miền
  2. Sau đó chọn gói Cloudflare MIỄN PHÍ. Hãy thoải mái sử dụng một kế hoạch khác nếu bạn cảm thấy cần nó.
    kế hoạch chọn cloudflare
  3. Tiếp theo, bạn có thể có một hoặc nhiều bản ghi DNS được liên kết với tên miền của mình, nếu vậy hãy xóa chúng bằng cách nhấp vào dấu X bên cạnh mỗi bản ghi đó.
    cloudflare xóa bản ghi dns
  4. Bây giờ, hãy thêm một số bản ghi DNS cho hai nhóm AWS S3 của chúng tôi. Chúng ta cần thêm bản ghi cho mỗi nhóm S3.
    • Tạo bản ghi CNAME có tên www và đối với trường máy chủ, hãy nhập URL điểm cuối nhóm www.yourdomain.com mà không có https://
    • Tạo bản ghi CNAME thứ hai với tên miền của bạn (không có www.) và đối với trường máy chủ của nó, hãy nhập URL điểm cuối nhóm yourdomain.com, cũng không có https://

    cloudflare thêm dns
    Sau đó bấm vào Tiếp tục .

  5. Cloudflare sau đó sẽ cung cấp cho bạn hai máy chủ tên để trỏ tên miền của bạn tới. Vì vậy, bây giờ hãy đăng nhập vào công ty đăng ký tên miền của bạn và cập nhật máy chủ tên lên máy chủ tên mà Cloudflare cung cấp cho bạn.
    máy chủ tên đám mây
  6. Cuối cùng, thay đổi tùy chọn mã hóa Cloudflare SSL/TLS mặc định từ “ Đầy đủ ” thành “ Linh hoạt ”. Tôi cũng thích bật “ Luôn sử dụng HTTPS ”.
    Đề xuất của Cloudflare

Lúc này bạn chỉ cần đợi DNS cập nhật. Việc này có thể mất 24-48 giờ, nhưng trong hầu hết các trường hợp, việc này nhanh hơn nhiều.

QUẢNG CÁO

Vậy là bạn đã có một trang web tĩnh được lưu trữ trên S3 và các biện pháp bảo vệ cũng như cải thiện tốc độ từ Cloudflare.

Đăng ký liền tay Nhận Ngay Bài Mới

Subscribe ngay

Cám ơn bạn đã đăng ký !

Lỗi đăng ký !

Add Comment

Click here to post a comment

Đăng ký liền tay
Nhận Ngay Bài Mới

Subscribe ngay

Cám ơn bạn đã đăng ký !

Lỗi đăng ký !