Giới thiệu Lambda AWS

Giới thiệu

Nếu bạn là 1 developer, đúng rồi đó, người mà luôn được mọi người nhờ sửa tủ lạnh, ti vi, quạt máy, ống nước, đủ thứ loại trên đời, khi bạn xây dựng một ứng dụng, bạn sẽ muốn được nhiều người sử dụng, trải nghiệm và đánh giá tốt. Để có thể hoạt động, ứng dụng của bạn cần một hệ thống backend hoạt động đằng sau và xử lý sự kiện, dữ liệu từ phía Client.

Oh, tôi chỉ biết code html css react thôi, chẳng biết server là gì, không rõ cách dùng rồi thì câu lệnh của Linux CentOS đâu, deploy các thứ lằng nhằng lắm, chẳng lẽ lại phải tìm hiểu rồi học hay sao, thế bao giờ mới xong? Tất nhiên là phải học rồi, còn nếu không học thì... dùng Lambda đi.

Lambda??? Là cái gì thế?

Việc quản lý server đòi hỏi chúng ta phải có một chút kiến thức về Infrastructure, Deploy, Moniter, ... Đôi khi xây dựng một ứng dụng đơn giản hoặc đối với người mới bắt đầu, họ chỉ muốn tập trung xây dựng về ứng dụng tương tác với người dùng ngoài việc quan tâm đến kiến trúc, Server. Đó là lí do Lambda xuất hiện.

Lambda là gì

Theo tiếng Anh thì Lambda được gọi là "Serverless Compute Service", dịch sang tiếng Việt từ-by-từ thì nó là dịch vụ tính toán không máy chủ, cho phép chúng ta chạy những dòng lệnh mà không cần quan tâm đến việc quản lý Server. Với Lambda, việc bạn cần làm là tải code của bạn lên đó, nó sẽ chạy và đảm bảo luôn cả việc đáp ứng nhiều Requests đồng thời, cũng như tính khả dụng High Availability.

Code bạn chạy trên Lambda được gọi là Lambda Function. Hiện tại, Lambda hỗ trợ những ngôn ngữ lập trình sau:

  • Java
  • Python
  • C#
  • NodeJS
  • Go
  • PowerShell
  • Ruby

Để có thể dùng Lambda, bạn cần có tài khoản trên AWS nơi bạn có thể truy cập và quản lý AWS Console.

Lambda có thể gọi là Function-as-a-Service FaaS.

Tính năng

Một số điểm nổi bật của Lambda:

  • Dễ dàng mở rộng Infrastructure ngoài việc thiết kế, cài đặt, Lambda hỗ trợ tối đa trong việc quản lý vận hành
  • Có thể liên kết với nhiều dịch vụ khác của AWS S3, CloudWatch, DynamoDB, API Gateway để xử lý sự kiện qua lại lẫn nhau (Hàng của nhà thì hỗ trợ lẫn nhau)
  • Dùng bao nhiêu trả tiền bấy nhiêu, không dùng thì cũng không tính tiền 😀
  • Bảo mật tốt
  • Khả năng chịu lỗi cao, không cần phải lo lắng về việc ứng dụng "tèo"
  • Hiệu năng nhất quán đối với mọi yêu cầu

Giá tiền

Giá thành phụ thuộc vào số lượng Requests và Duration (thời gian xử lý)

Đối với tài khoản sử dụng gói Free Tier, Lambda không tính phí cho 1 triệu Requests mỗi tháng và 400.000 GB-seconds thời gian tính toán mỗi tháng

Tạo Lambda Function

Chúng ta sẽ tạo Lambda đối với NodeJS

Đầu tiên, tìm Service Lambda

Nhấn vào Create function để tạo 1 Function

Có rất nhiều tuỳ chọn để tạo 1 Function, để thử nghiệm chúng ta để mặc định là Author from scratch

Điền các thông tin cơ bản và phiên bản bạn muốn sử dụng để chạy Function, để đơn giản thì bỏ qua các phần khác

Sau khi tạo xong, bạn sẽ nhận được tin nhắn thông báo đã tạo thành công

Kéo xuống dưới sẽ thấy phần hiển thị Code

Để chạy thử Function, nhấn vào nút Test ở phía trên bên phải sẽ hiện ra màn hình cài đặt Test

Sau khi tạo xong, nhấn Test

Kéo lên trên cùng sẽ có chi tiết kết quả vừa chạy

Chúng ta có thể xem chi tiết Logs được chạy ở Cloudwatch Logs

Kết luận

Trên đây mới chỉ là làm quen cơ bản với Lambda, ở phần sau, mình sẽ hướng dẫn dùng Lambda tương tác với các dịch vụ khác của AWS, tạo thành một liên kết liền mạch và hoạt động tương tác lẫn nhau.


Nếu mọi người quan tâm tới AWS thì đọc một số bài hướng dẫn cơ bản khác của mình liên quan đến AWS nhé

Tìm hiểu hệ thống chứng chỉ AWS

Tìm hiểu về cơ chế Load Balancing

Tìm hiểu về VPC


All Rights Reserved