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