Skip to content

Cloud Integration¤

Tại sao cần tích hợp?¤

Khi deploy nhiều application, chúng cần giao tiếp với nhau. Có 2 kiểu:

Synchronous (đồng bộ): App A gọi thẳng App B → nguy hiểm khi có traffic đột biến. Ví dụ: bình thường encode 10 video/ngày, đột nhiên cần encode 1000 video → App B bị quá tải, toàn bộ hệ thống có thể sập.

Asynchronous (bất đồng bộ): App A → Queue → App B → giải quyết được vấn đề trên vì Queue hấp thụ traffic spike, các service scale độc lập nhau.


Amazon SQS - Simple Queue Service¤

Khái niệm cốt lõi: Hàng đợi tin nhắn — Producer gửi message vào queue, Consumer đọc và xử lý.

Đặc điểm Chi tiết
Throughput Unlimited (standard queue)
Retention Mặc định 4 ngày, tối đa 14 ngày
Latency < 10ms
Message sau khi đọc Bị xóa khỏi queue

Điểm quan trọng cần nhớ:

  • Nhiều Consumer cùng đọc → chia sẻ tải, scale horizontal
  • Standard Queue: không đảm bảo thứ tự, throughput cao
  • FIFO Queue: đảm bảo thứ tự (First In First Out), giới hạn 300-3000 msg/s

Dùng SQS khi: cần decouple application, xử lý tác vụ nặng bất đồng bộ (resize ảnh, gửi email hàng loạt...)


Amazon SNS - Simple Notification Service¤

Khái niệm cốt lõi: Pub/Sub model — 1 Publisher gửi vào 1 Topic, tất cả Subscriber đều nhận được.

Khác biệt then chốt so với SQS:

SQS SNS
Message retention Có (tối đa 14 ngày) Không (fire-and-forget)
Người nhận 1 Consumer xử lý 1 message Tất cả Subscriber nhận cùng message
Model Queue Pub/Sub

Subscriber của SNS có thể là: Email, Lambda, SQS, HTTP endpoint, Mobile push notification

Giới hạn: 12,500,000 subscription/topic, 100,000 topic

Dùng SNS khi: cần fan-out — 1 sự kiện kích hoạt nhiều hành động cùng lúc. Ví dụ: order mới → gửi email xác nhận + trigger Lambda xử lý tồn kho + push notification.


Amazon Kinesis¤

Khái niệm cốt lõi: Real-time data streaming — thu thập và xử lý dữ liệu liên tục, tức thời.

4 thành phần (biết để nhận diện, không thi sâu ở CLF):

  • Kinesis Data Streams: ingest data từ hàng trăm nghìn source, low latency
  • Kinesis Data Firehose: load stream vào S3, Redshift, ElasticSearch
  • Kinesis Data Analytics: phân tích real-time bằng SQL
  • Kinesis Video Streams: xử lý video stream cho ML/analytics

Dùng Kinesis khi: cần xử lý dữ liệu liên tục theo thời gian thực — log hệ thống, clickstream, IoT sensor, stock price...


Amazon MQ¤

Khái niệm cốt lõi: Dành cho các on-premise application đang dùng open protocol (MQTT, AMQP, STOMP...) muốn migrate lên cloud mà không muốn sửa code.

So sánh quan trọng:

SQS/SNS Amazon MQ
Protocol Proprietary AWS MQTT, AMQP, STOMP, OpenWire...
Scalability Cực cao (serverless) Hạn chế hơn
Infrastructure Serverless Chạy trên dedicated machine
Tính năng Queue hoặc Topic cả hai

Dùng Amazon MQ khi: lift-and-shift — migrate app cũ lên cloud mà không muốn refactor.


Tổng kết — So sánh nhanh¤

Service Model Retention Scale Use case điển hình
SQS Queue 14 ngày Rất cao Decouple, xử lý batch
SNS Pub/Sub Không có Rất cao Fan-out notification
Kinesis Streaming Rất cao Real-time analytics
Amazon MQ Queue + Topic Trung bình Migrate app cũ

Mẹo thi: Nhìn thấy "decouple" → SQS. "Notify nhiều nơi" → SNS. "Real-time streaming" → Kinesis. "On-premise migration, MQTT/AMQP" → Amazon MQ.