Hướng Dẫn Xây Dựng và Triển Khai Ứng Dụng Quản Lý Công Việc (To-Do App) trên AWS

0 0 0

Người đăng: Kiên Lý

Theo Viblo Asia

Trong bài viết này, chúng ta sẽ khám phá cách xây dựng và triển khai một ứng dụng quản lý công việc (To-Do App) dựa trên AWS. Repo aws-todo-app cung cấp mã nguồn và các tài liệu cần thiết để nhanh chóng triển khai ứng dụng với kiến trúc serverless mạnh mẽ của AWS.

1. Tổng Quan Về Ứng Dụng

Ứng dụng To-Do này được xây dựng bằng cách sử dụng các dịch vụ AWS chủ đạo như:

  • AWS Lambda: Xử lý logic ứng dụng serverless.
  • Amazon API Gateway: Xử lý các endpoint HTTP/HTTPS.
  • Amazon DynamoDB: Lưu trữ dữ liệu với hiệu năng cao và khả năng mở rộng tốt.
  • Amazon S3: Lưu trữ các tệp tĩnh như frontend của ứng dụng.
  • AWS CloudFormation hoặc AWS CDK: Quản lý và triển khai hạ tầng dưới dạng code (Infrastructure as Code).

Ứng dụng này bao gồm giao diện người dùng (frontend) đơn giản và API backend để quản lý các tác vụ.

2. Yêu Cầu Trước

Trước khi bắt đầu, bạn cần chuẩn bị các điều kiện sau:

  • Tài khoản AWS: Đã kích hoạt các dịch vụ cần thiết.
  • AWS CLI: Đã cài đặt và cấu hình.
  • Node.js và npm: Để cài đặt các phụ thuộc và chạy ứng dụng.
  • Terraform hoặc AWS CDK: Sử dụng để triển khai hạ tầng.

3. Các Bước Triển Khai

Bước 1: Clone Repo

Trước tiên, clone repo về máy của bạn:

git clone https://github.com/kien-ly/aws-todo-app.git
cd aws-todo-app

Bước 2: Triển Khai Backend

Repo chứa một tệp backend để cấu hình các chức năng API.

  1. Cài đặt các phụ thuộc backend:

    cd backend
    npm install
    
  2. Triển khai backend lên AWS:

    • Nếu sử dụng AWS CDK:
      npm install -g aws-cdk
      cdk deploy
      
    • Nếu sử dụng Terraform:
      terraform init
      terraform apply
      
  3. Ghi lại URL của API Gateway được tạo ra sau khi triển khai.

Bước 3: Triển Khai Frontend

  1. Di chuyển vào thư mục frontend:
    cd ../frontend
    npm install
    
  2. Cập nhật tệp cấu hình frontend (config.js) với URL API Gateway từ bước 2.
  3. Build giao diện người dùng:
    npm run build
    
  4. Tải các tệp đã build lên Amazon S3:
    aws s3 cp ./dist s3://<your-bucket-name> --recursive
    
  5. Cấu hình bucket S3 để cho phép public read (hoặc sử dụng CloudFront để làm CDN).

Bước 4: Kiểm Tra Ứng Dụng

Truy cập URL của bucket S3 (hoặc CloudFront) để kiểm tra giao diện người dùng và bắt đầu sử dụng ứng dụng To-Do.

4. Kiến Trúc Hệ Thống

Ứng dụng sử dụng kiến trúc serverless với các thành phần chính:

  • API Gateway: Xử lý các yêu cầu từ frontend.
  • Lambda Functions: Chứa logic để xử lý các yêu cầu CRUD (Create, Read, Update, Delete).
  • DynamoDB: Lưu trữ các tác vụ với khả năng tìm kiếm và truy vấn hiệu quả.
  • S3/CloudFront: Phân phối giao diện người dùng.

5. Tính Năng Chính

  • Thêm, xóa, sửa và hiển thị danh sách công việc.
  • Giao diện đơn giản, thân thiện với người dùng.
  • Tích hợp serverless giúp giảm chi phí và dễ dàng mở rộng.

6. Một Số Lưu Ý

  • Kiểm tra và điều chỉnh quyền truy cập của S3 bucket để tránh lộ dữ liệu.
  • Xóa các tài nguyên không cần thiết sau khi hoàn thành để giảm chi phí.
  • Sử dụng CloudWatch để theo dõi log và tối ưu hóa hiệu suất ứng dụng.

7. Kết Luận

Repo aws-todo-app là một ví dụ tuyệt vời về việc xây dựng ứng dụng serverless trên AWS. Với kiến trúc mạnh mẽ và khả năng tích hợp linh hoạt, bạn có thể dễ dàng mở rộng hoặc tùy chỉnh ứng dụng này để phù hợp với nhu cầu thực tế. Hãy thử triển khai ngay hôm nay để khám phá sức mạnh của AWS!

Bình luận

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

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

Cài đặt WSL / WSL2 trên Windows 10 để code như trên Ubuntu

Sau vài ba năm mình chuyển qua code trên Ubuntu thì thật không thể phủ nhận rằng mình đã yêu em nó. Cá nhân mình sử dụng Ubuntu để code web thì thật là tuyệt vời.

1 1 531

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

Hướng dẫn làm bot Facebook messenger cho tài khoản cá nhân

Giới thiệu. Trong bài viết trước thì mình có hướng dẫn các bạn làm chatbot facebook messenger cho fanpage. Hôm nay mình sẽ hướng dẫn các bạn tạo chatbot cho một tài khoản facebook cá nhân. Chuẩn bị.

0 0 258

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

Crawl website sử dụng Node.js và Puppeteer - phần 2

trong phần 1 mình đã giới thiệu về puppeteer và tạo được 1 project cùng một số file đầu tiên để các bạn có thể crawl dữ liệu từ một trang web bất kỳ. Bài này mình sẽ tiếp nối bài viết trước để hoàn thiện seri này.

0 0 73

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

Điều React luôn giữ kín trong tim

■ Mở đầu. Ngồi viết bài khi đang nghĩ vu vơ chuyện con gà hay quả trứng có trước, mình phân vân chưa biết sẽ chọn chủ đề gì để chúng ta có thể cùng nhau bàn luận.

0 0 59

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

Gửi Mail với Nodejs và AWS SES

AWS SES. AWS SES là gì.

0 0 83

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

Crawl website sử dụng Node.js và Puppeteer - phần 1

Bài viết này mình sẽ giới thiệu cho các bạn craw dữ liệu của web site sử dụng nodejs và Puppeteer. .

0 0 164