- vừa được xem lúc

Thiết kế kiến trúc có tính khả dụng cao với S3 và CloudFront

0 0 50

Người đăng: Phan Nguyen Ha

Theo Viblo Asia

AWS Cloudfront

CloudFront là một CDN (Mạng phân phối nội dung). Nó lấy dữ liệu từ bucket Amazon S3 và phân phối nó đến nhiều trung tâm dữ liệu. Nó cung cấp dữ liệu thông qua mạng lưới các trung tâm dữ liệu gọi là các vị trí biên. Vị trí gần nhất được định tuyến khi người dùng yêu cầu dữ liệu, dẫn đến độ trễ thấp nhất, lưu lượng mạng thấp, truy cập nhanh vào dữ liệu, v.v.\

AWS CloudFront cung cấp nội dung như thế nào?

AWS CloudFront cung cấp content theo các bước sau:

  1. Người dùng truy cập trang web hoặc ứng dụng của bạn và yêu cầu một hoặc nhiều tệp, chẳng hạn như tệp hình ảnh và tệp HTML.

  2. DNS định tuyến yêu cầu đến CloudFront POP (vị trí gần nhất) có thể phục vụ yêu cầu tốt nhất — thường là CloudFront POP gần nhất về độ trễ — và định tuyến yêu cầu đến vị trí này.

  3. Trong POP, CloudFront kiểm tra bộ nhớ cache của nó để tìm các tệp được yêu cầu. Nếu các tệp nằm trong bộ nhớ cache, CloudFront sẽ trả lại chúng cho người dùng. Nếu các tệp không có trong bộ nhớ cache, nó sẽ thực hiện như sau:

  • CloudFront so sánh yêu cầu với các thông số kỹ thuật trong bản phân phối của bạn và chuyển tiếp yêu cầu tệp tới máy chủ gốc của bạn đối với loại tệp tương ứng — ví dụ: tới bộ chứa Amazon S3 của bạn đối với tệp hình ảnh và tới máy chủ HTTP của bạn đối với tệp HTML.
  • Máy chủ gửi các tệp trở lại vị trí gần nhất với vị trí yêu cầu resource.
  • Ngay sau khi byte đầu tiên đến, CloudFront bắt đầu chuyển tiếp các tệp đến người dùng. CloudFront cũng thêm các tệp vào bộ nhớ cache ở vị trí location này cho lần sau khi ai đó yêu cầu các tệp đó.

Điều kiện tiên quyết

  • Tạo một tài khoản AWS.
  • Cài đặt AWS CLI.
  • Thiết lập cấu hình AWS CLI với người dùng IAM.

Yêu cầu

  • Webserver cấu hình trên EC2.
  • Document Root (/var/www/html) được duy trì bằng cách gắn trên EBS Block.
  • Các đối tượng tĩnh được sử dụng trong code, chẳng hạn như ảnh được lưu trữ trong S3.
  • Setting CDN sử dụng CloudFront và sử dụng origin domain tương tự như S3 Bucket.
  • Cuối cùng, đặt URL Cloud Front trên code của ứng dụng web để bảo mật và độ trễ thấp.

Khởi chạy EC2 instance

Tạo EBS Volume và gắn nó cho EC2 vừa chạy

Đăng nhập vào EC2 Instance

  • Đăng nhập vào account root
sudo su - root
  • Install httpd web server

  • Gõ fdisk -l để kiểm tra dung lượng 2GB vừa được thêm vào:

fdisk -l

  • Tạo phân vùng

  • Định dạng phân vùng và gắn vào thư mục /var/www/html

  • Chúng ta có thể thấy thêm 1 phân vùng 2 GB được gắn trên /var/www/html

  • Tạo S3 bucket với tên duy nhất

  • Copy content vào S3 với quyền truy cập đọc

  • Mình đã viết 1 trang html đơn giản có tên là index.html, chứa nội dung tiêu đề đơn giản và thẻ image. Chúng nằm trong thư mục /var/www/html.

  • Bây giờ chúng ta copy URL public của EC2 instance và truy cập bằng web page

Bây giờ chúng ta sẽ thiết lập CDN sử dụng CloudFront và sử dụng origin domain tương tự S3 Bucket

  • Tạo CDN
aws cloudfront create-distribution --origin-domain-name <bucket name>.s3.amazonaws.com
aws cloudfront create-distribution --origin-domain-name bucket-webserver-03091999.s3.amazonaws.com

  • Vào phần CloudFront của Bảng điều khiển quản lý AWS, các bạn sẽ thấy tên của domain.

  • Sao chép Tên miền và thay thế url S3 bucket trước đó.

  • Bây giờ chúng ta sẽ truy cập hình ảnh một lần nữa

Tổng kết

Trên đây, mình đã giới thiệu với mọi người về cách setting CDN với S3 và CloudFront với tính khả dụng cao. Mong rằng bài viết sẽ giúp các bạn sẽ setting CDN cho trang web của mình một cách dễ dàng.

Tài liệu tham khảo

https://medium.com/analytics-vidhya/designing-high-availability-architecture-with-s3-and-cloudfront-67684d6aa879 https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HowCloudFrontWorks.html

Bình luận

Bài viết tương tự

- vừa được xem lúc

PDF Export, cẩn thận với những input có thể truyền vào

Giới thiệu. Dạo gần đây mình tình cờ gặp rất nhiều lỗi XSS, tuy nhiên trang đó lại có sử dụng dữ liệu người dùng input vào để export ra PDF.

0 0 66

- vừa được xem lúc

Giới thiệu về AWS Batch

Khi sử dụng hệ thống cloud service, điều chúng ta thường phải quan tâm đến không chỉ là hiệu suất hoạt động (performance) mà còn phải chú ý đến cả chi phí bỏ ra để duy trì hoạt động của hệ thống. Chắn hẳn là hệ thống lớn hay nhỏ nào cũng đã từng phải dùng đến những instance chuyên để chạy batch thực

0 0 143

- vừa được xem lúc

Tìm hiểu về AWS KMS

1. AWS KMS là gì. Ở KMS bạn có thể lựa chọn tạo symetric key (khóa đối xứng) hoặc asymetric key (khóa bất đối xứng) để làm CMK (Customer Master Key). Sau khi tạo key thì có thể thiết đặt key policy để control quyền access và sử dụng key.

0 0 66

- vừa được xem lúc

AWS VPC cho người mới bắt đầu

Tuần này, tôi trình bày lại những gì tôi đã học được về Virtual Private Cloud (VPC) của Amazon. Nếu bạn muốn xem những gì tôi đã học được về AWS, hãy xem Tổng quan về DynamoDB và Tổng quan về S3. VPC là gì. Những điều cần lưu ý:.

0 0 84

- vừa được xem lúc

AWS Essentials (Phần 6): Guildline SNS Basic trên AWS

Tiếp tục với chuỗi bài viết về Basic AWS Setting, chúng ta tiếp tục tìm hiểu tiếp tới SNS (Simple Notification Service). Đây là một service của AWS cho phép người dùng setting thực hiện gửi email, text message hay push notification tự động tới mobile device dựa trên event người dùng setting phía AWS

0 0 145

- vừa được xem lúc

Sử dụng Amazon CloudFront Content Delivery Network với Private S3 Bucket — Signing URLs

Trong nhiều trường hợp, thì việc sử dụng CDN là bắt buộc. Mình đã trải nghiệm với một số CDN nhưng cuối cùng mình lựa chọn sử dụng AWS CloudFront.

0 0 118