Aws API Gateway là gì

API Gateway là một dịch vụ được quản lý hoàn toàn để xây dựng, thử nghiệm và lưu trữ các API sản xuất. Thay vì thuê một máy chủ EC2 và tự quản lý máy chủ API của bạn, API Gateway có thể quản lý nó cho bạn và hợp lý hóa toàn bộ quy trình.

API Gateway là gì?

API Gateway về bản chất là một proxy ngược, lấy dữ liệu từ các dịch vụ khác và trả lại nó theo cách có cấu trúc. Thay vì tự mình quản lý, gánh nặng quản lý lưu lượng và cơ sở hạ tầng được chuyển sang AWS, công cụ này có thể thực hiện với chi phí thấp hơn nhiều.

Về cơ bản, điều này cho phép API Gateway hoạt động như một "cổng" vào nhiều dịch vụ AWS khác. Ví dụ: bằng cách kết nối nó với AWS Lambda, bạn có thể tạo chương trình phụ trợ microservices mà không cần sử dụng máy chủ EC2. Chức năng Lambda có thể được cấu hình cho kết nối.

API Gateway thực hiện rất tốt vai trò là giao diện người dùng cơ bản cho các API HTTP có mục đích chung, nhưng nó cũng rất hữu ích để quản lý cấu trúc tổng thể và lược đồ của các API REST. Khi bạn tạo các API REST, bạn có thể xác định hoàn hảo tất cả các tuyến và phương pháp cũng như kết nối chúng với bất kỳ dịch vụ AWS nào bạn muốn.

API GateWay cũng có thể được sử dụng để quản lý các API WebSocket, được sử dụng để giao tiếp thời gian thực nhanh chóng bằng cách mở kết nối trực tiếp từ máy chủ đến máy khách.

API Gateway có giá bao nhiêu?

Đối với các API HTTP chung, API Gateway chỉ tốn 1,00 đô la cho mỗi triệu yêu cầu, khi bạn vượt qua một triệu yêu cầu đầu tiên đi kèm với cấp miễn phí.

Đối với API REST, giá cao hơn ở mức 3,50 đô la cho mỗi triệu yêu cầu. Theo tùy chọn, bạn cũng có thể chọn bật bộ nhớ đệm cho API REST của mình, điều này sẽ cải thiện hiệu suất với mức phí hàng giờ tùy thuộc vào kích thước bộ nhớ cache của bạn.

Đối với API WebSocket, giá cả có một chút khác biệt. Vì chúng dành cho các tin nhắn ngắn từ máy chủ đến máy khách, bạn chỉ phải trả 1 đô la cho mỗi tỷ yêu cầu, 1000 là rẻ cho mỗi yêu cầu như hai yêu cầu còn lại. Tuy nhiên, bạn bị giới hạn ở mức tải trọng 128KB và bạn cũng bị tính phí 0,25 đô la cho mỗi triệu phút kết nối. Nếu bạn thường xuyên có nhiều khách hàng được kết nối với API WebSocket, bạn sẽ trả tiền cho từng ứng dụng.

Tuy nhiên, một điều cần lưu ý là mặc dù không có phí chuyển dữ liệu cụ thể nhưng các API HTTP được tính theo gia số 512KB. Ví dụ: một yêu cầu API duy nhất trả về phản hồi 1,5MB sẽ được tính là ba yêu cầu API. Các API WebSocket được lập hóa đơn theo gia số 32KB. Điều này có thể dễ dàng tăng gấp đôi chi phí API Gateway của bạn nếu trọng tải của bạn đặc biệt lớn.

Tất nhiên, nếu bạn kết nối với một dịch vụ AWS khác, bạn sẽ phải trả tất cả các chi phí liên quan đến các dịch vụ đó [chẳng hạn như phí cho các cuộc gọi hàm Lambda] cũng như phí truyền dữ liệu cho việc di chuyển dữ liệu ra khỏi AWS.

Định cấu hình một API HTTP để kết nối với Lambda

Mặc dù API REST cung cấp nhiều công cụ tổ chức hơn để quản lý chính API, nhưng chúng phức tạp hơn nhiều và tốn nhiều chi phí hơn để bắt đầu. Thay vào đó, chúng tôi sẽ sử dụng các API HTTP cơ bản, dễ tạo và kết nối hơn với Lambda.

Chọn tạo một "API HTTP" từ menu tạo. Điều đầu tiên bạn cần định cấu hình là các tích hợp của bạn; Các API HTTP hỗ trợ các điểm cuối HTTP và các hàm Lambda. Bạn có thể thêm nhiều tích hợp, điều này có thể hữu ích nếu bạn muốn có một hàm Lambda riêng để quản lý từng tuyến đường trong API của mình.

Tiếp theo, bạn sẽ định cấu hình các tuyến cho API. Chúng có thể được đặt trên các URL phụ như /usersvà sẽ gọi các mục tiêu tích hợp khác nhau tùy thuộc vào phương thức mà máy khách kết nối. Ví dụ, GET /messages có thể trả về một danh sách các tin nhắn, nhưng POST /messages có thể tải xuống một tin nhắn mới.

Bạn có thể sẽ muốn có một cách để phân biệt giữa các API phát triển và sản xuất. Bạn có thể tạo nhiều môi trường dưới dạng "giai đoạn", sẽ phục vụ mục đích này. Theo mặc định, $default môi trường được cập nhật tự động với tất cả các thay đổi và phục vụ như một giai đoạn phát triển. Có thể bạn sẽ muốn tạo bước "Sản xuất" mà bạn có thể sử dụng để $default đến.

Sau đó, API của bạn sẽ được định cấu hình và sẵn sàng sử dụng. Trong "Các bước", bạn sẽ tìm thấy URL gọi cho API của mình. Điều này liên quan đến chính giai đoạn triển khai API và sẽ vẫn ở trạng thái tĩnh. Nó sẽ giống như thế này:

//api_id.execute-api.us-east-1.amazonaws.com

Nếu bạn muốn sử dụng nó với một tên miền tùy chỉnh, bạn sẽ cần tạo chứng chỉ ACM để liên kết API Gateway một cách an toàn với miền của bạn và thay đổi cấu hình DNS của bạn để trỏ đến chính cổng. Nếu bạn đang sử dụng Route 53, quá trình này đơn giản hơn một chút.

Trong tab "Ủy quyền", bạn sẽ tìm thấy cài đặt cấu hình cho API của mình với xác thực JWT. Đây hiện là phương pháp duy nhất được hỗ trợ với các API HTTP.

API Gateway là gì là một trong những từ khóa được tìm kiếm nhiều nhất trên google về chủ đề API Gateway là gì. Trong bài viết này, coder.com.vn sẽ viết bài API Gateway là gì? Lợi ích của API Gateway hiện nay ra sau?

API Gateway là gì?

Như mình nói ở trên, API Gateway có thể coi là một cổng trung gian, nó là cổng vào duy nhất tới hệ thống microservices của chúng ta, api gateway sẽ nhận các requests từ phía client, chỉnh sửa, xác thực  điều hướng chúng đến những API cụ thể trên các services phía sau. Khi này sơ đồ hệ thống của chúng ta sẽ trông như này.

Ngoài nhiệm vụ chính là proxy request Thì một hệ thống API Gateway thường sẽ đảm nhận luôn vài vai trò khác như bảo mật API, monitoring, analytics số lượng requests cũng như tình trạng hệ thống phía sau.

Ích lợi của việc dùng API Gateway

Che dấu được cấu trúc của hệ thống microservices với bên ngoài

Clients sẽ tương tác với hệ thống của chúng ta thông qua api gateway chứ không gọi trực tiếp tới một services cụ thểcác endpoints của những services sẽ chỉ được gọi nội bộ, tức là gọi giữa các services với nhau hoặc được gọi từ API gateway, người sử dụng sẽ gọi những api này thông qua các public endpoints từ API Gateway. vì thế nên cho nên phía client không cần , cũng không thể hiểu được những services phía backend được phân chia ra sao, việc refactor code frontend cũng dễ dàng hơn đối với lập trình viên.

Phần code phía frontend sẽ gọn gàng hơn

Vì không phải tracking nhiều endpoints, tất cả chỉ việc gọi đến api gateway nên phần code frontend sẽ gọn gàng hơn so với việc phải tracking hàng tá endpoints trên từng services một, đặc biệt là khi mà hệ thống ngày một phình to ra.

Xem thêm:  Mean Stack là gì? Cách Tạo ứng dụng MEAN Stack với framework MEAN.IO

Dễ dàng theo dõi , quản lý traffic.

Đa phần những hệ thống API gateway rộng rãi hiện nay đều sẽ đi kèm tính năng theo dõi , quan sát cũng như quản lý lượng traffic bằng GUI hoặc thông qua những APIs của hệ thống Gateway, VD như với Kong [bản EE]

Requests caching , cân bằng tải.

API Gateway sẽ kiêm luôn vai trò load balancer của hệ thống, requests sẽ không được gửi trực tiếp đến backend nên sẽ giảm bớt được rủi ro hệ thống bị quá tải.

Thêm một lớp bảo mật nữa cho hệ thống.

API gateway giúp ngăn chặn các cuộc tấn công bằng cách thêm một lớp bảo vệ các kiểu tấn công như ddos, slq injections,…

Thay thế authentication services

API gateway thường hay bổ sung nhiều cơ chế xác thực, chúng ta có khả năng dùng nó để xác thực người dùng luôn, giúp dành dụm thời gian , làm hệ thống chúng ta dễ dàng hơnVD một vài cơ chế xác thực giúp đỡ bởi Kong API gateway

, rất nhiều điểm tốt nhất khác với tùy loại API Gateway

Tăng thời gian response

Vì phải bước qua server trung gian cho nên việc response sẽ bị trễ hơn so sánh với việc gọi trực tiếp tới hệ thống.

Thêm tác nhân gây lỗi

Để dùng API Gateway thì chúng ta sẽ phải config, rồi thay đổi code, quản lý server gateway, bla bla…Khiến cho chúng ta cộng thêm việc phải lo, chẳng may gateway có lỗi thì requests sẽ chẳng thể tới được phía server.

Có thể gây nghẽn cổ chai

nếu như không nên scale hay config phù hợp thì gateway sẽ có khả năng bị quá tải  làm chậm chạp hệ thống của chúng ta.

Tốn thêm tiền

Tiền server, tiền điện, tiền quan sát cũng như quản lý hệ thống api gateway, với hệ thống lớn cần các chức năng xịn sò thì còn tốn thêm tiền mua bản Enterpise của các api gateway nữa này, tính ra cũng không rẻ chút nào cả.

Lời kết

Hi vọng qua bài đăng trên, các bạn có thể biết được API Gateway là gì, cũng như điểm mạnh và điểm yếu của nó.

Ở bài viết tiếp theo mình sẽ hướng dẫn cách triển khai API Gateway với Kong một cách chi tiết.

Xem thêm:  Hướng dẫn Cách lập trình Web với Python hiệu quả mới nhất 2020

Nguồn: //viblo.asia/

Video liên quan

Chủ Đề