XÂY DỰNG HẠ TẦNG KIẾN TRÚC HỆ THỐNG AWS THEO MÔ HÌNH TWO-TIER (PHẦN 1)

14 tháng 04, 2023 - 1907 lượt xem

Học viên: Lê Anh Tùng
Lớp: AWS 07
Email: tungla180400@gmail.com

aws two-tier9

Mô hình AWS Two-Tier là một kiến trúc triển khai ứng dụng phổ biến trên nền tảng Amazon Web Services (AWS), nó bao gồm hai tầng (tier) chính: tầng front-end và tầng back-end.

Tầng front-end chứa các phần mềm web, ứng dụng hoặc giao diện người dùng cuối, đây là phần tương tác với người dùng. Tầng này thường được triển khai trên các Amazon Elastic Compute Cloud (EC2) instances, và có thể sử dụng các dịch vụ như Elastic Load Balancer để phân phối tải và tăng tính khả dụng.

Tầng back-end chứa các dịch vụ hỗ trợ như cơ sở dữ liệu, lưu trữ, xử lý logic và các công việc nền tảng khác. Tầng này thường được triển khai trên các Amazon Relational Database Service (RDS), Amazon Simple Storage Service (S3), AWS Lambda, vv.

Mô hình Two-Tier cho phép tách phần front-end và back-end của ứng dụng, tăng cường tính khả dụng và hiệu suất của hệ thống. Nó cũng cho phép các tầng có thể được quản lý và mở rộng độc lập với nhau, giúp việc triển khai, bảo trì và nâng cấp trở nên dễ dàng hơn.

Ưu điểm của mô hình AWS Two-Tier là:

  • Tăng tính khả dụng: Bằng cách tách ứng dụng thành hai tầng riêng biệt, mô hình Two-Tier cho phép tăng tính khả dụng của hệ thống. Nếu một tầng gặp sự cố, tầng còn lại vẫn có thể tiếp tục hoạt động, tránh mất mát dữ liệu hoặc gián đoạn dịch vụ.

  • Nâng cao hiệu suất: Mô hình Two-Tier cho phép tối ưu hóa hiệu suất của hệ thống bằng cách phân chia công việc giữa hai tầng. Tầng front-end có thể xử lý yêu cầu của người dùng một cách nhanh chóng, trong khi tầng back-end chịu trách nhiệm xử lý dữ liệu và các tác vụ nền tảng khác.

  • Dễ quản lý: Mô hình Two-Tier giúp quản lý hệ thống dễ dàng hơn bằng cách tách phần front-end và back-end. Quản trị viên có thể quản lý và mở rộng mỗi tầng độc lập với nhau, đồng thời giảm thiểu rủi ro khi triển khai và nâng cấp hệ thống.

  • Độc lập với nền tảng: Mô hình Two-Tier không ràng buộc với bất kỳ nền tảng cụ thể nào, vì vậy nó cho phép triển khai trên nhiều dịch vụ đám mây khác nhau. Điều này giúp giảm thiểu rủi ro và tăng tính linh hoạt trong việc triển khai và vận hành hệ thống.

Song song với đó cũng có 1 số nhược điểm như sau:

  • Phức tạp trong triển khai: Mô hình Two-Tier yêu cầu nhiều thành phần để triển khai và cấu hình, đòi hỏi người quản trị phải có kiến thức về cả phần front-end và back-end. Do đó, triển khai mô hình này có thể khó khăn và tốn nhiều thời gian.

  • Chi phí cao: Triển khai mô hình Two-Tier yêu cầu tài nguyên phần cứng và phần mềm tương đối lớn, đặc biệt là khi bạn cần tạo ra nhiều tầng để hỗ trợ ứng dụng. Do đó, mô hình này có thể tốn kém hơn so với một số mô hình khác.

  • Độ trễ mạng: Vì có hai tầng xử lý thông tin, mô hình Two-Tier có thể gặp phải vấn đề về độ trễ mạng khi tầng front-end và back-end phải truyền dữ liệu qua nhau. Điều này có thể làm giảm hiệu suất của hệ thống.

  • Khó khăn trong việc điều khiển: Vì mỗi tầng được quản lý độc lập với nhau, nên việc quản lý và theo dõi hệ thống có thể trở nên phức tạp hơn so với việc quản lý một hệ thống đơn giản hơn.

Để đạt được những lợi thế này, mình sẽ trình bày cách một tổ chức có thể sắp triển khai kiến trúc Two-Tier trong AWS, như minh họa trong sơ đồ trên.

Giới thiệu sơ lược về các dịch vụ AWS được sử dụng trong bài thực hành

1. Route 53

Amazon Route 53 là một dịch vụ quản lý tên miền và DNS (Domain Name System) của Amazon Web Services (AWS). Nó cho phép bạn đăng ký tên miền, quản lý các bản ghi DNS và cung cấp khả năng phân giải tên miền (DNS resolution) cho các ứng dụng của bạn.

Route 53 được sử dụng để đảm bảo rằng khi người dùng truy cập vào các ứng dụng của bạn, họ sẽ được chuyển hướng đến các máy chủ và tài nguyên đúng trong hệ thống của bạn. Nó cũng có thể được sử dụng để cân bằng tải, giảm thiểu độ trễ và tăng tính khả dụng cho các ứng dụng của bạn bằng cách định tuyến các yêu cầu đến các tài nguyên gần nhất với người dùng.

2. Internet Gateway

Internet Gateway là một dịch vụ trong Amazon Web Services (AWS) được sử dụng để kết nối mạng riêng ảo (VPC) của bạn với Internet. Nó là một thành phần cần thiết cho các ứng dụng có yêu cầu truy cập Internet hoặc các dịch vụ khác trên Internet.

Internet Gateway cho phép các máy ảo và tài nguyên trong VPC của bạn có thể truy cập đến Internet, hoặc được truy cập từ Internet. Nó hoạt động như một cổng kết nối giữa VPC của bạn và Internet, cho phép các yêu cầu đi và đến từ VPC.

3. Cloud Front

CloudFront là một dịch vụ CDN (Content Delivery Network) của Amazon Web Services (AWS). Dịch vụ này được thiết kế để giúp cho việc phân phối nội dung trên Internet được nhanh chóng và hiệu quả hơn bằng cách sử dụng một mạng lưới các bộ nhớ đệm trên toàn thế giới.

CloudFront cung cấp khả năng phân phối nội dung đến người dùng từ một máy chủ gần họ nhất có thể. Khi người dùng yêu cầu truy cập đến nội dung trên mạng, CloudFront sẽ tự động lựa chọn máy chủ đệm tốt nhất để phục vụ nội dung đó. Điều này giúp tăng tốc độ truy cập và giảm thời gian phản hồi của các trang web, ứng dụng di động và dịch vụ web khác.

4. Load Balancer

Dịch vụ Load Balancer trong AWS là một giải pháp được thiết kế để giúp phân phối tải và cân bằng tải trên các máy chủ web hoặc ứng dụng di động. Điều này giúp giảm thiểu các rủi ro liên quan đến một máy chủ duy nhất bị quá tải hoặc ngừng hoạt động bằng cách tự động phân phối tải đến các máy chủ khác.

Các dịch vụ Load Balancer trong AWS được tích hợp với nhiều tính năng như auto-scaling, health check, và SSL offloading để giảm thiểu sự cố hệ thống và tăng hiệu suất. Với các dịch vụ này, các khách hàng có thể tăng hiệu quả, tăng độ tin cậy và giảm chi phí trong việc quản lý các ứng dụng web hoặc di động của mình.

5. Amazon Elastic Compute Cloud

Amazon Elastic Compute Cloud (EC2) là một dịch vụ của Amazon Web Services (AWS) cung cấp khả năng cho phép khách hàng thuê các máy ảo (VMs) trên nền tảng Cloud.

EC2 cho phép người dùng tạo ra các máy ảo mới (instances) và thiết lập chúng với các hệ điều hành (Linux, Windows,…), ứng dụng và các phần mềm khác. Người dùng có thể tùy chỉnh cấu hình và kích thước của các instance tùy theo nhu cầu sử dụng và có thể quản lý chúng thông qua các API hoặc giao diện web.

EC2 được sử dụng rộng rãi để triển khai các ứng dụng web, phần mềm, và các hệ thống máy chủ khác trong môi trường đám mây. Sử dụng EC2 giúp cho các tổ chức và doanh nghiệp tiết kiệm chi phí cho việc xây dựng và vận hành hạ tầng máy chủ, tăng khả năng mở rộng, giảm thiểu thời gian vận hành và quản lý hệ thống.

6. Amazon Simple Storage Service

Amazon Simple Storage Service (S3) là một dịch vụ lưu trữ đám mây của Amazon Web Services (AWS) cho phép khách hàng lưu trữ và truy xuất các đối tượng (object) như tệp tin, ảnh, video, dữ liệu và các loại dữ liệu khác.

S3 là một dịch vụ khối lượng lớn, có thể lưu trữ một số lượng lớn dữ liệu và được thiết kế để đảm bảo tính sẵn sàng cao và khả năng mở rộng. Nó cho phép người dùng truy xuất và tải lên dữ liệu từ mọi nơi trên thế giới thông qua giao diện web hoặc các API, và có thể được tích hợp với các dịch vụ khác của AWS như EC2 và Lambda.

S3 cung cấp các tính năng bảo mật để bảo vệ dữ liệu, bao gồm mã hóa dữ liệu khi lưu trữ và khi truyền tải, quản lý quyền truy cập của người dùng và quản lý các chính sách giá trị như bảng giá động. S3 cũng hỗ trợ việc sao lưu dữ liệu định kỳ và phục hồi dữ liệu khi có sự cố.

S3 được sử dụng rộng rãi để lưu trữ các tệp tin, dữ liệu của các ứng dụng web, lưu trữ dữ liệu phục vụ cho các nhu cầu phân tích dữ liệu và lưu trữ bản sao dự phòng của dữ liệu quan trọng. Sử dụng S3 giúp cho các tổ chức và doanh nghiệp tiết kiệm chi phí cho việc lưu trữ và quản lý dữ liệu, tăng khả năng mở rộng và độ tin cậy của hệ thống lưu trữ dữ liệu.

7. Amazon Simple Storage Service

Amazon Relational Database Service (RDS) là một dịch vụ của Amazon Web Services (AWS) cung cấp giải pháp cơ sở dữ liệu quan hệ quản lý, bao gồm cài đặt, vận hành và mở rộng các hệ quản trị cơ sở dữ liệu phổ biến như MySQL, PostgreSQL, Oracle, SQL Server và Amazon Aurora.

RDS giúp người dùng tiết kiệm thời gian và chi phí trong việc triển khai và quản lý các hệ thống cơ sở dữ liệu, cung cấp một số tính năng như tự động sao lưu, phục hồi, cân bằng tải và khôi phục. Nó cũng hỗ trợ các tính năng bảo mật, bao gồm mã hóa và quản lý quyền truy cập.

RDS cho phép người dùng dễ dàng mở rộng hoặc thu nhỏ khả năng của các hệ thống cơ sở dữ liệu, tùy chọn mức độ xử lý, bộ nhớ và lưu trữ dữ liệu phù hợp với nhu cầu của ứng dụng. Nó cũng hỗ trợ tích hợp với các dịch vụ khác của AWS như EC2, S3 và CloudWatch.

8. Amazon Virtual Private Cloud

Amazon Virtual Private Cloud (VPC) là một dịch vụ của Amazon Web Services (AWS) cung cấp một môi trường đám mây được cô lập và an toàn để triển khai các ứng dụng và dịch vụ. VPC cho phép người dùng tạo ra một mạng ảo riêng tư trong đám mây của AWS, giúp đảm bảo tính bảo mật của dữ liệu và ứng dụng.

VPC cho phép người dùng tùy chỉnh cấu hình mạng và địa chỉ IP, xác định các quy tắc bảo mật, cấu hình các kết nối mạng và tích hợp với các dịch vụ khác của AWS như EC2, RDS và S3. VPC cung cấp khả năng mở rộng linh hoạt, cho phép người dùng mở rộng mạng ảo riêng tư của mình và triển khai các ứng dụng và dịch vụ mới.

9. Amazon Simple Email Service

Amazon Simple Email Service (SES) là một dịch vụ của Amazon Web Services (AWS) cho phép người dùng gửi email trong đám mây với khả năng quản lý và bảo mật dữ liệu, đồng thời cung cấp khả năng xác thực và kiểm soát chất lượng của email gửi đi.

SES là một dịch vụ hữu ích cho các doanh nghiệp muốn quản lý và gửi email một cách chuyên nghiệp và bảo mật.

10. CloudWatch

Amazon CloudWatch là một dịch vụ của Amazon Web Services (AWS) cho phép người dùng giám sát và quản lý tài nguyên của mình trên đám mây. Nó cung cấp các công cụ để giám sát, thu thập, phân tích và đăng ký các sự kiện, báo cáo và các thông số liên quan đến tài nguyên AWS.

CloudWatch cho phép người dùng giám sát các tài nguyên AWS như Amazon EC2 instances, Amazon RDS DB instances, Amazon S3 buckets, và các dịch vụ khác của AWS. Nó cũng cung cấp thông tin về khả năng sử dụng tài nguyên, hệ thống thông tin log, các thông số đo lường khác nhau, và các thông báo cảnh báo.

11. Identity and Access Management

IAM trong AWS (Identity and Access Management) là một dịch vụ quản lý danh tính và quyền truy cập của người dùng và các tài nguyên AWS. Nó cho phép bạn quản lý người dùng, nhóm người dùng và vai trò (roles), cung cấp và thu hồi quyền truy cập cho các tài nguyên AWS.

12. CloudFormation

AWS CloudFormation là một dịch vụ quản lý cơ sở hạ tầng điện toán đám mây (Infrastructure as Code - IaC) trong AWS. Nó cho phép bạn sử dụng mã (code) để tạo và quản lý tài nguyên AWS, như EC2 instances, VPCs, RDS databases và nhiều hơn nữa.

AWS CloudFormation cho phép bạn tạo ra các tài nguyên trực tiếp thông qua các mã template, được viết bằng các ngôn ngữ lập trình như JSON hoặc YAML. Với mỗi mẫu template, bạn có thể tạo ra nhiều tài nguyên AWS, cũng như các phương thức tùy chỉnh để quản lý các tài nguyên này.

Lời kết

Trong phần 1, mình đã xây dựng đơn giản 1 kiến trúc hệ thông AWS theo mô hình Two-Tier đơn giản và giới thiệu với các bạn về các dịch vụ sử dụng trong đó.

Trong phần 2, mình sẽ hướng dẫn chi tiết các bạn build các dịch vụ này theo từng bước cụ thể.

Chúc các bạn thành công!!

Bình luận

avatar
Hải Bùi 2023-07-10 07:46:30.715258 +0000 UTC

bạn có thể show qua về hạ tầng 3-tier dc k ad

 

Avatar
* Vui lòng trước khi bình luận.
Ảnh đại diện
  +1 Thích
+1