Khóa học
Amazon Simple Queue Service (SQS) là dịch vụ xếp hàng thông điệp được quản lý hoàn toàn do Amazon Web Services (AWS) cung cấp. Dịch vụ này cho phép tách rời và mở rộng quy mô các hệ thống phân tán, vi dịch vụ (microservices) và ứng dụng serverless.
Hướng dẫn này giúp bạn hiểu rõ về AWS SQS, bao gồm các tính năng và quy trình thiết lập, quản lý hàng đợi. Nội dung cũng hướng dẫn cách gửi và nhận thông điệp, xem xét mô hình định giá, khám phá giám sát và số liệu, so sánh SQS với SNS, và chia sẻ các thực tiễn tốt nhất để sử dụng tối ưu.
Nếu bạn chưa có nền tảng về AWS, khóa học Introduction to AWS của chúng tôi là điểm khởi đầu tốt. Khóa học giúp bạn khám phá thế giới Amazon Web Services và hiểu vì sao AWS dẫn đầu trong lĩnh vực điện toán đám mây.
AWS SQS là gì?
Trước khi đi vào chi tiết, hãy cùng tìm hiểu AWS SQS là gì và vì sao nó có giá trị trong hệ sinh thái AWS.

Sơ đồ kiến trúc Amazon SQS
AWS SQS là hệ thống xếp hàng phân tán cho phép các ứng dụng web nhanh chóng và tin cậy đưa thông điệp do bên sản xuất (producers) tạo ra vào hàng đợi để bên tiêu thụ (consumers) xử lý.
Hàng đợi đóng vai trò là kho tạm thời cho các thông điệp chờ xử lý. Amazon SQS còn cung cấp khả năng thử lại (retry) qua chính sách redrive, cho phép thử lại nhiều lần và sử dụng hàng đợi thư chết (DLQ) để quản lý các thông điệp dễ lỗi bằng cách thông báo cho nhà phát triển về sự cố và tùy chọn lưu trữ thông điệp để xử lý lại sau.
Tính năng và lợi ích của SQS
Việc sử dụng SQS mang lại nhiều lợi ích, gồm nhưng không giới hạn ở những điểm sau:

Các tính năng và lợi ích chính của AWS SQS
- Khả năng mở rộng: SQS có thể xử lý mọi lưu lượng mà không yêu cầu bạn cung cấp hay quản lý hạ tầng.
- Độ bền: Thông điệp được lưu trữ dự phòng trên nhiều vùng khả dụng.
- Tính sẵn sàng: Cung cấp độ sẵn sàng cao cho việc tạo và tiêu thụ thông điệp.
- Bảo mật: Cung cấp mã hóa phía máy chủ (SSE) để bảo vệ nội dung thông điệp.
- Linh hoạt: Hỗ trợ nhiều định dạng thông điệp và có thể dùng với nhiều dịch vụ AWS khác.
Tình huống sử dụng trong tách rời và mở rộng microservices
Nhiều trường hợp sử dụng trong ngành có thể tận dụng lợi ích của SQS, một số minh họa dưới đây:

Trường hợp sử dụng AWS SQS trong tách rời và mở rộng microservices
- Hàng đợi công việc (Work queue): Phân phối tác vụ cho nhiều tiến trình xử lý.
- Bộ đệm cho ghi cơ sở dữ liệu: Bảo vệ cơ sở dữ liệu khỏi tải ghi quá mức.
- Giảm tải yêu cầu (Request offloading): Chuyển các thao tác chậm ra khỏi luồng yêu cầu tương tác.
- Xử lý theo lô (Batch processing): Thu thập và xử lý một nhóm thông điệp cùng lúc.
Thiết lập AWS SQS
Giờ chúng ta đã hiểu SQS là gì, hãy xem cách thiết lập. Phần này hướng dẫn bạn qua các yêu cầu tiên quyết và cách truy cập console SQS.
Yêu cầu tiên quyết
Trước khi bắt đầu sử dụng AWS SQS, hãy đảm bảo bạn có:
- Một tài khoản AWS đang hoạt động. Có thể tạo từ trang chính thức.
- Các vai trò và quyền IAM cần thiết để truy cập SQS.
Để thiết lập quyền IAM:
- Vào console IAM.
- Tạo một policy mới.

Thiết lập AWS SQS
- Có hai cách chính để tạo policy: trực quan hoặc JSON. Trong trường hợp này, chúng ta dùng cách trực quan, trực quan hơn.
- Chọn “SQS” trong khu vực “Service” và đặt Effect thành “Allow” cho các quyền sau:
sqs:CreateQueue,sqs:DeleteQueue,sqs:SendMessage,sqs:ReceiveMessage,sqs:DeleteMessage.

Thiết lập AWS SQS
- Cho phép các hành động truy cập “All” tài nguyên, rồi chọn “Next”.
- Đặt tên cho policy, trong ví dụ này là “SQSHandsOnPolicies”, và tạo policy.

Thiết lập AWS SQS
Policy cuối cùng sẽ trông như sau ở định dạng JSON:

Thiết lập AWS SQS
Hãy điểm qua nhanh định nghĩa policy của chúng ta:
“Version”: “2012-10-17”là phiên bản hiện tại của ngôn ngữ policy IAM.- Policy chứa một
“Statement”, định nghĩa một tập hợp quyền. “Sid”: “VisualEditor0”nghĩa là policy được tạo qua trình chỉnh sửa trực quan.“Effect”: “Allow”nghĩa là các hành động này được cho phép.“Action”: Danh sách này chỉ định các thao tác SQS được cho phép như trên.“Resource”: “*”nghĩa là các hành động này được phép trên mọi tài nguyên SQS trong tài khoản.
Policy này cho phép toàn quyền tạo, xóa, gửi và nhận thông điệp từ bất kỳ hàng đợi SQS nào trong tài khoản. Mức quyền khá rộng, vì vậy bạn có thể muốn giới hạn theo ARN hàng đợi cụ thể để bảo mật tốt hơn trong môi trường sản xuất.
Nếu muốn tìm hiểu thêm về cấu hình IAM, hướng dẫn The Complete Guide to AWS Identity and Access Management (IAM) sẽ dạy bạn cách bảo vệ môi trường AWS, quản lý truy cập với người dùng, nhóm và vai trò, đồng thời áp dụng các thực tiễn tốt nhất để có bảo mật vững chắc.
Để đào sâu kiến thức cấu hình AWS, bài hướng dẫn How to Setup and Configure AWS: A Comprehensive Tutorial sẽ hữu ích để khám phá các thiết lập thiết yếu, thực tiễn bảo mật tốt nhất và cách tận dụng dịch vụ AWS cho phân tích dữ liệu và học máy.
Truy cập console Amazon SQS
Khi đã đáp ứng các yêu cầu, bước tiếp theo là truy cập console SQS để bắt đầu tạo và quản lý hàng đợi. Các bước truy cập console:
- Trong thanh tìm kiếm phía trên, gõ "SQS" và chọn "Simple Queue Service" từ danh sách.
- Bạn sẽ được chuyển tới bảng điều khiển SQS.

Truy cập console Amazon SQS
Tạo và Quản lý Hàng đợi SQS
Khi đã truy cập console SQS, chúng ta có thể bắt đầu tạo và quản lý hàng đợi. Phần này sẽ hướng dẫn tạo cả hàng đợi tiêu chuẩn (standard) và FIFO.
Nhưng chính xác thì policy IAM của chúng ta có vai trò gì?
Policy IAM được tạo ở phần yêu cầu tiên quyết rất quan trọng cho việc tạo và quản lý hàng đợi. Cụ thể:
- Gắn với người dùng hoặc vai trò: Policy phải được đính kèm với người dùng hoặc vai trò IAM bạn dùng để truy cập console SQS hoặc AWS CLI.
- Kiểm tra quyền: Khi bạn cố tạo hàng đợi (hoặc thực hiện thao tác SQS khác), AWS sẽ kiểm tra policy này để đảm bảo bạn có đủ quyền.
- Ủy quyền hành động: Quyền
sqs:CreateQueuetrong policy cho phép tạo hàng đợi. Nếu thiếu, bạn sẽ gặp lỗi "Access Denied" khi tạo hàng đợi. - Vận hành liên tục: Các quyền khác (
sqs:SendMessage,sqs:ReceiveMessage,sqs:DeleteMessage,sqs:DeleteQueue) cho phép bạn thực hiện nhiều thao tác trên hàng đợi sau khi tạo.
Với hiểu biết đó, hãy tiếp tục tạo hàng đợi, bắt đầu với hàng đợi standard.
Tạo hàng đợi standard
Hàng đợi standard là loại mặc định trong SQS. Cách tạo như sau:
- Trên bảng điều khiển SQS, nhấp "Create queue".
- Chọn "Standard" làm loại hàng đợi.
- Nhập tên hàng đợi, trong ví dụ là “SQSHandsOn”.
- Cấu hình: Visibility timeout, Message retention period, Maximum message size, và Delivery delay. Hãy để mặc định, rồi nhấp “Create queue”.

Tạo hàng đợi standard
Khi tạo hàng đợi thành công sẽ có thông báo xác nhận như dưới đây, kèm thông tin chi tiết về hàng đợi.

Tạo hàng đợi standard
Tạo hàng đợi FIFO
Hàng đợi FIFO dùng để đảm bảo thứ tự xử lý thông điệp. Các bước tạo như sau:
- Trên bảng điều khiển SQS, nhấp "Create queue".
- Chọn "FIFO" làm loại hàng đợi.
- Nhập tên hàng đợi (phải kết thúc bằng “.fifo”). Ví dụ: “SQSHandsOn.fifo”.
- Tương tự như trên, giữ nguyên các thiết lập mặc định và chọn “Create queue”.

Tạo hàng đợi FIFO
Tương tự hàng đợi standard, khi tạo FIFO thành công cũng cung cấp các chi tiết phục vụ việc gửi thông điệp.

Tạo hàng đợi FIFO
Khác biệt giữa hàng đợi standard và FIFO
Khi chọn giữa hàng đợi standard và FIFO trong Amazon SQS, điều quan trọng là hiểu rõ các đặc điểm và khả năng riêng của từng loại.
Bảng sau cung cấp phân tích so sánh để giúp bạn quyết định loại hàng đợi phù hợp nhất với nhu cầu ứng dụng:

Khác biệt giữa hàng đợi standard và FIFO
Gửi và Nhận Thông điệp trong SQS
Khi các hàng đợi đã sẵn sàng, hãy bắt đầu gửi và nhận thông điệp. Phần này trình bày cách thực hiện qua AWS Management Console và AWS Command Line Interface (CLI).
Gửi thông điệp
Quy trình gửi thông điệp được minh họa với cả hàng đợi standard và FIFO.
Hàng đợi standard
Sử dụng AWS Management Console
- Chọn hàng đợi từ bảng điều khiển SQS.
- Nhấp "Send and receive messages".
- Trong trường "Message body", nhập một thông điệp, ví dụ: “Hàng đợi này được tạo theo hướng dẫn Comprehensive Guide to Amazon Simple Queue Service (SQS).”
- Nhấp "Send message".

Gửi thông điệp bằng AWS Management Console
Sau khi gửi, một cửa sổ bật lên xác nhận thông điệp đã được gửi. Nhấp “View details” để xem chi tiết thông điệp như dưới đây.

Gửi thông điệp bằng AWS Management Console
Cuối cùng, trong phần “Receive messages”, có thể thấy một thông điệp đang khả dụng.

Gửi thông điệp bằng AWS Management Console
Sử dụng AWS CLI SQS
Các bước chính để gửi thông điệp qua CLI theo mẫu dưới đây.
aws sqs send-message --queue-url [YOUR URL]--message-body "YOUR MESSAGE"
Với hàng đợi standard, URL của chúng ta có trong ảnh chụp màn hình ở trên. Với CLI, hãy dùng thông điệp khác:
- URL: https://sqs.us-east-1.amazonaws.com/022499002265/SQSHandsOn
- Thông điệp: “Message sent via AWS CLI”
Bước đầu để dùng CLI là cấu hình để nó có thể tương tác với tài nguyên AWS của chúng ta, yêu cầu các thông tin xác thực sau:
- Access key ID
- Secret access key
aws configure
Khi cấu hình xong, chạy lệnh sau với giá trị tham số chính xác:
aws sqs send-message --queue-url https://sqs.us-east-1.amazonaws.com/022499002265/SQSHandsOn --message-body "Message sent via AWS CLI"

Gửi thông điệp bằng CLI
Đầu ra JSON từ lệnh tương ứng với chi tiết của thông điệp vừa gửi, và chúng ta thấy hiện có hai thông điệp trong hàng đợi SQSHandsOn.

Gửi thông điệp bằng CLI
Hàng đợi FIFO
Quy trình gửi thông điệp với FIFO khác đôi chút so với hàng đợi standard.
Để minh họa, hãy tưởng tượng bạn vận hành một nền tảng thương mại điện tử bán thiết bị điện tử.
Hệ thống cần xử lý nhiều thao tác như xử lý đơn hàng, cập nhật tồn kho và quản lý thanh toán. Trong trường hợp này, ta có thể dùng hàng đợi SQS FIFO để đảm bảo các thao tác được xử lý đúng thứ tự và không bị trùng lặp.
- Ví dụ CLI 1 (Đơn hàng khách): Thông điệp được gửi khi khách đặt đơn mới. Hệ thống xử lý đơn sẽ nhận và thực hiện theo đúng thứ tự tiếp nhận.
- Ví dụ CLI 2 (Cập nhật tồn kho): Sau khi xử lý đơn, thông điệp này được gửi để cập nhật tồn kho, đảm bảo mức tồn chính xác khi sản phẩm được bán.
- Ví dụ Console (Xử lý thanh toán): Thông điệp được tạo khi cần xử lý thanh toán cho đơn hàng, đảm bảo thanh toán theo đúng thứ tự và tránh tính phí hai lần.
Dùng hàng đợi FIFO cho các thao tác này đảm bảo rằng:
- Đơn hàng được xử lý theo đúng thứ tự đặt.
- Cập nhật tồn kho theo đúng trình tự, tránh bán quá số lượng.
- Thanh toán được xử lý một lần và theo đúng thứ tự.
Khi gửi thông điệp tới hàng đợi SQS FIFO, lưu ý hai yếu tố chính:
- Message group ID: Bắt buộc cho mọi thông điệp. Xác định nhóm trong đó thông điệp được xử lý theo thứ tự.
- Message deduplication ID: Đảm bảo mỗi thông điệp chỉ được xử lý một lần trong cửa sổ 5 phút.
Với hiểu biết này, hãy tiếp tục với cách dùng CLI.
Sử dụng AWS CLI SQS
Chúng ta có thể chạy các lệnh sau để gửi hai thông điệp đầu tiên vào hàng đợi FIFO.
- Ví dụ CLI 1: Gửi đơn hàng khách:
aws sqs send-message --queue-url https://sqs.us-east-1.amazonaws.com/022499002265/SQSHandsOn.fifo --message-body "Process customer order: #A1001" --message-group-id "CustomerOrders" --message-deduplication-id "Order-A1001-20240817-1"
Đầu ra cho lần thực thi đầu tiên như dưới đây.

Ví dụ 1 - Kết quả gửi thông điệp bằng CLI với FIFO
- Ví dụ CLI 2: Gửi cập nhật tồn kho:
aws sqs send-message --queue-url https://sqs.us-east-1.amazonaws.com/022499002265/SQSHandsOn.fifo --message-body "Update inventory: ProductX -5 units" --message-group-id "InventoryUpdates" --message-deduplication-id "Inventory-ProductX-20240817-1"
Đầu ra như dưới đây.

Ví dụ 2 - Kết quả gửi thông điệp bằng CLI với FIFO
Đến hiện tại, đã có hai thông điệp được gửi vào hàng đợi FIFO, như hình dưới đây.

Kết quả gửi thông điệp bằng CLI với hàng đợi FIFO - Số lượng thông điệp
Sử dụng AWS Management Console
Tương tự hàng đợi standard, chúng ta có thể gửi thông điệp từ console như sau:
- Từ trang “Queues”, chọn “SQSHandsOn.fifo”.
- Chọn thẻ “Send and receive message” để gửi thông điệp.
- Yêu cầu nhập thêm “Message group ID” và “Message deduplication ID”.

Kết quả gửi thông điệp bằng console với hàng đợi FIFO
Bây giờ có thể thấy tổng số thông điệp trong hàng đợi FIFO là ba.

Kết quả gửi thông điệp bằng console với FIFO - Tổng số thông điệp
Nhận và xóa thông điệp
Nhận và xóa thông điệp cũng quan trọng như gửi. Cách thực hiện như sau.
Hàng đợi standard
Sử dụng AWS Management Console
- Chọn hàng đợi từ bảng điều khiển SQS.
- Nhấp "Send and receive messages".
- Nhấp "Poll for messages".
- Thông điệp sẽ hiển thị trong phần "Messages".

Nhận thông điệp bằng AWS Management Console với hàng đợi standard
Cả hai thông điệp trong hàng đợi standard được hiển thị ở trên.
Sử dụng AWS CLI SQS
Dưới đây là lệnh chung để nhận thông điệp từ hàng đợi standard.
aws sqs receive-message --queue-url [YOUR URL]
Với hàng đợi standard của chúng ta, lệnh đầy đủ là:
aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/022499002265/SQSHandsOn
Hàng đợi FIFO
Quy trình truy xuất thông điệp qua console tương tự như hàng đợi standard.
Để nhận thông điệp từ hàng đợi FIFO bằng AWS CLI, bạn có thể dùng lệnh aws sqs receive-message. Cấu trúc cơ bản:
aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/022499002265/SQSHandsOn.fifo --attribute-names All --message-attribute-names All --max-number-of-messages 3
-attribute-names All: Truy xuất tất cả thuộc tính thông điệp mặc định.-message-attribute-names All: Truy xuất tất cả thuộc tính thông điệp tùy chỉnh.--max-number-of-messages 3: Chỉ định số lượng tối đa thông điệp cần nhận
Thực thi lệnh trên sẽ trả về cả ba thông điệp trong hàng đợi FIFO.

Kết quả nhận thông điệp bằng CLI với hàng đợi FIFO
Định giá AWS SQS
Hiểu mô hình định giá rất quan trọng để sử dụng SQS hiệu quả về chi phí. Phần này phân tích mức giá và gợi ý mẹo quản lý chi phí.
Nhìn chung, giá AWS SQS dựa trên số lượng yêu cầu API, truyền dữ liệu và các tính năng tùy chọn sử dụng.
Định giá yêu cầu
Các bảng sau cung cấp tổng quan về giá cho yêu cầu SQS:
|
Standard Queues (mỗi triệu yêu cầu) |
FIFO Queues (mỗi triệu yêu cầu) |
|
|
1 triệu yêu cầu đầu tiên/tháng |
Miễn phí |
Miễn phí |
|
Từ 1 triệu đến 100 tỷ yêu cầu/tháng |
$0.40 |
$0.5 |
|
Từ 100 tỷ đến 200 tỷ yêu cầu/tháng |
$0.30 |
$0.40 |
|
Trên 200 tỷ yêu cầu/tháng |
0.24 |
$0.35 |
Bảng giá từ trang SQS của AWS
Định giá truyền dữ liệu
Để hiểu giá truyền dữ liệu, tham khảo bảng sau:
|
Truyền dữ liệu VÀO |
Giá |
|
Tất cả dữ liệu truyền vào |
$0.00 mỗi GB |
|
Truyền dữ liệu RA |
Giá |
|
10 TB đầu tiên/tháng |
$0.09 mỗi GB |
|
40 TB tiếp theo/tháng |
$0.085 mỗi GB |
|
100 TB tiếp theo/tháng |
$0.07 mỗi GB |
|
Lớn hơn 150 TB/tháng |
$0.05 mỗi GB |
Bảng giá từ trang SQS của AWS
Mẹo quản lý chi phí
Một vài mẹo nhanh để quản lý chi phí SQS:
- Dùng long polling để giảm số lần nhận rỗng.
- Gửi và nhận theo lô (batch) khi có thể.
- Giám sát mức sử dụng bằng AWS Cost Explorer.
Giám sát và Số liệu AWS SQS
Giám sát hiệu quả là chìa khóa để duy trì triển khai SQS ổn định. Phần này nêu các số liệu quan trọng và cách thiết lập cảnh báo.
Các số liệu chính của AWS SQS
Dưới đây là một số số liệu quan trọng cần theo dõi:

Các số liệu chính của AWS SQS
ApproximateNumberOfMessagesVisible
Số liệu này biểu thị số lượng thông điệp sẵn sàng để truy xuất từ hàng đợi. Đây là chỉ báo về tồn đọng hàng đợi và hiệu quả xử lý. Số cao có thể cho thấy nút thắt trong xử lý.
ApproximateAgeOfOldestMessage
Số liệu này cho biết thời gian thông điệp cũ nhất chưa bị xóa đã ở trong hàng đợi. Nó giúp xác định vấn đề xử lý thông điệp như kẹt thông điệp hoặc consumer chậm. Với FIFO, số liệu này rất quan trọng vì có thể chỉ ra nhóm thông điệp bị chặn.
NumberOfMessagesSent
Theo dõi số lượng thông điệp được thêm vào hàng đợi. Hữu ích để giám sát tốc độ đầu vào và phát hiện đột biến bất thường trong việc tạo thông điệp. Lưu ý các thông điệp được gửi thủ công tới DLQ cũng được tính.
NumberOfMessagesReceived
Chỉ số này cho biết bao nhiêu thông điệp đã được trả về cho consumer từ hàng đợi. Hữu ích để theo dõi tốc độ đầu ra và có thể so sánh với NumberOfMessagesSent để đánh giá hiệu quả xử lý. Tương tự NumberOfMessagesSent, chỉ số này không bao gồm các thông điệp tự động chuyển sang DLQ do xử lý thất bại
Thiết lập cảnh báo CloudWatch
Quy trình tạo cảnh báo CloudWatch được minh họa cho bốn số liệu trên. Quy trình giống nhau cho tất cả, vì vậy chúng ta tập trung vào một số liệu và chỉ với SQS Standard (SQSHandsOn) để đơn giản.
Các bước chính để thiết lập cảnh báo cho ApproximateNumberOfMessagesVisible như sau.
Cảnh báo CloudWatch có thể cảnh báo bạn về các vấn đề tiềm ẩn. Cách thiết lập từ console:
- Tìm "CloudWatch" và chọn.
- Trong điều hướng bên trái, nhấp "Alarms".
- Nhấp nút "Create alarm".
- Nhấp "Select metric".
- Trong thẻ "All metrics", tìm và nhấp "SQS".
- Nhấp "Queue Metrics".
- Tìm hàng đợi của bạn và chọn số liệu ApproximateNumberOfMessagesVisible và hàng đợi standard SQSHandsOn.

Thiết lập cảnh báo CloudWatch
- Từ trang trên, chọn "Graph metrics".
- Chọn thống kê và đặt thành “Average”.
- Đặt khoảng thời gian, trong ví dụ là 5 phút, rồi chọn “Select metric”.

Thiết lập cảnh báo CloudWatch
- Đặt tên cho metric (ví dụ “SQS-AvgHighMessageCount-SQSHandsOn”), và đặt “Threshold Type” thành “Static”.
- Đặt điều kiện cho cảnh báo. Ở đây là “Greater”.
- Đặt ngưỡng là “20” và chọn “Next”.

Thiết lập cảnh báo CloudWatch
Cấu hình trên nghĩa là cảnh báo sẽ kích hoạt khi số trung bình thông điệp nhìn thấy trong hàng đợi SQSHandsOn vượt 20 trong ít nhất một điểm dữ liệu trong vòng 5 phút. Biểu đồ hiển thị số lượng hiện tại (đường màu xanh) so với ngưỡng (đường màu đỏ ở mức 20).
Thiết lập này giúp theo dõi xem hàng đợi có tích lũy quá nhiều thông điệp chưa xử lý hay không, điều có thể cho thấy chậm trễ xử lý hoặc vấn đề ở consumer.
Consumer đề cập đến tất cả ứng dụng hoặc thành phần hệ thống của chúng ta truy xuất và xử lý thông điệp từ hàng đợi.
Nếu số trung bình vượt 20, bạn sẽ nhận cảnh báo, cho phép điều tra và có hành động phù hợp để ngăn tồn đọng hàng đợi.
- Hành động “Next” phía trên dẫn đến “Configure actions”, chúng ta không cần thiết lập gì, giữ nguyên trang đó.
- Chọn “Next” và nhập tên duy nhất cho cảnh báo, ví dụ "SQSHandsOn-HighMessageCount"
- Tùy chọn thêm mô tả và chọn “Next”.
- Xem lại cấu hình và nhấp "Create alarm".

Thiết lập cảnh báo CloudWatch
- Bạn sẽ thấy thông báo xác nhận màu xanh cho cảnh báo, cùng tên cảnh báo trong cột “Name”.

Thiết lập cảnh báo CloudWatch
- Sau khi chọn tên cảnh báo, thông tin chi tiết đầy đủ sẽ hiển thị như sau:

Thiết lập cảnh báo CloudWatch
Cảnh báo cho hàng đợi SQSHandsOn hiện ở trạng thái "Insufficient data". Nghĩa là CloudWatch chưa có đủ thông tin để xác định cảnh báo có kích hoạt hay không.
Biểu đồ chưa có điểm dữ liệu, cho thấy hàng đợi còn mới. Cảnh báo sẽ kích hoạt khi số trung bình thông điệp vượt 20 trong 5 phút.
CloudWatch sẽ thu thập dữ liệu và cập nhật trạng thái cảnh báo khi hàng đợi hoạt động và thông điệp được xử lý.
AWS SNS so với SQS
Mặc dù SQS và SNS đều là dịch vụ nhắn tin, chúng phục vụ mục đích khác nhau. Phần này làm rõ khác biệt và trường hợp sử dụng của từng dịch vụ.

Bảng so sánh SNS và SQS
Thực tiễn tốt nhất với AWS SQS
Tuân thủ các thực tiễn tốt giúp bạn tận dụng tối đa SQS. Dưới đây là một số gợi ý:
- Dùng long polling để giảm chi phí và độ trễ.
- Triển khai DLQ cho các thông điệp có vấn đề.
- Sử dụng thao tác theo lô khi có thể.
- Bảo mật hàng đợi bằng các policy truy cập phù hợp.
- Giám sát độ sâu hàng đợi và điều chỉnh năng lực xử lý tương ứng.
- Mã hóa khi truyền và khi lưu trữ cho dữ liệu nhạy cảm.
Kết luận
AWS SQS là công cụ mạnh mẽ để xây dựng ứng dụng đám mây có khả năng mở rộng và bền bỉ. Bằng cách tách rời các thành phần ứng dụng, bạn đạt được tính linh hoạt, chịu lỗi và khả năng mở rộng cao hơn. Với sự dễ dùng, bộ tính năng mạnh và tích hợp với các dịch vụ AWS khác, SQS là dịch vụ thiết yếu cho kiến trúc đám mây hiện đại.
Hãy theo dõi mức sử dụng, tối ưu triển khai và tuân thủ thực tiễn tốt nhất để tận dụng tối đa AWS SQS. Khi ứng dụng của bạn phát triển, SQS có thể thích ứng với nhu cầu thay đổi, trở thành tài sản giá trị trong bộ công cụ AWS của bạn.
Tiếp tục hành trình AWS của bạn bằng cách đăng ký khóa học AWS Cloud Technology and Services. Bước khởi đầu này sẽ giúp bạn thăng tiến sự nghiệp và sau đó lấy chứng chỉ AWS.
Câu hỏi thường gặp
Sự khác nhau giữa hàng đợi standard và hàng đợi FIFO trong SQS là gì?
Một hàng đợi standard cho phép thông lượng không giới hạn và đảm bảo gửi ít nhất một lần (at-least-once), nhưng không đảm bảo thứ tự thông điệp. Ngược lại, hàng đợi FIFO đảm bảo thông điệp được xử lý đúng theo thứ tự gửi và mỗi thông điệp chỉ được xử lý một lần.
Tôi có thể kiểm soát quyền truy cập vào hàng đợi SQS của mình như thế nào?
Bạn có thể kiểm soát truy cập vào hàng đợi SQS bằng IAM policies và policy tài nguyên SQS. IAM policies cho phép quản lý quyền cho người dùng và vai trò, trong khi policy SQS quản lý truy cập ở cấp độ hàng đợi, hạn chế truy cập theo tài khoản AWS hoặc hành động cụ thể.
Chi phí khi sử dụng AWS SQS là gì?
Chi phí AWS SQS dựa trên số lượng yêu cầu API và truyền dữ liệu. Một triệu yêu cầu đầu tiên mỗi tháng là miễn phí, và giá tăng dần theo số lượng yêu cầu và các tính năng bổ sung như hàng đợi FIFO và long polling.
Làm thế nào để cải thiện hiệu năng của hàng đợi SQS?
Để tối ưu hiệu năng, hãy dùng long polling để giảm lượt nhận rỗng, triển khai thao tác theo lô để gửi và nhận hàng loạt, và giám sát hàng đợi bằng CloudWatch để điều chỉnh năng lực xử lý khi cần.
Nhà khoa học dữ liệu đa tài, yêu thích chia sẻ kiến thức và đóng góp cho cộng đồng, Zoumana là người sáng tạo nội dung trên YouTube và là cây bút công nghệ hàng đầu trên Medium. Anh yêu thích thuyết trình, lập trình và giảng dạy. Zoumana có hai bằng thạc sĩ: một về khoa học máy tính chuyên sâu Học máy tại Paris, Pháp, và một về Khoa học dữ liệu tại Texas Tech University, Hoa Kỳ. Anh bắt đầu sự nghiệp với vai trò Nhà phát triển phần mềm tại Groupe OPEN ở Pháp, sau đó chuyển sang IBM làm Tư vấn Học máy, nơi anh phát triển các giải pháp AI đầu-cuối cho các công ty bảo hiểm. Zoumana gia nhập Axionable, startup Trí tuệ nhân tạo Bền vững đầu tiên có trụ sở tại Paris và Montreal. Tại đây, anh làm Nhà khoa học dữ liệu và triển khai các sản phẩm AI, chủ yếu là các bài toán NLP, cho khách hàng tại Pháp, Montreal, Singapore và Thụy Sĩ. Ngoài ra, 5% thời gian của anh được dành cho Nghiên cứu và Phát triển. Hiện tại, anh làm việc với vai trò Nhà khoa học dữ liệu cao cấp tại IFC - Nhóm Ngân hàng Thế giới.
