CloudTask는 GCP의 Pub/Sub 처럼 본질적으로는 메시지 큐라고 보면 된다. 단 Pub/Sub 보다 발전된 메시지 컨트롤 기능을 가지고 있다.
개념을 먼저 이해하자고 하면, 먼저 다음 그림을 참고하자.

CloudTask에 전달/저장되는 메시지를 Task라고 하며, 메시지는 CloudTask 내부 큐에 저장이 된다. 그리고, Target Destination으로 최종 전달이 되는데, 이 Task를 받아서 처리하는 부분을 Handler라고 한다.
아래 구조와 같이 Cloud Task를 큐로 사용하여, Cloud Run등에 메시지를 Push (HTTP 호출) 방식으로 전달이 가능하다.

그렇다면, Cloud Task는 기존의 Pub/Sub Message Queue에 비해서 무엇이 다른가?
- Pub/Sub은 at Least Once delivery로, 중복 딜리버리가 발생할 수 있으나, CloudTask는 자체 de-duplication 기능을 가지고 있다. (Exactly once, 그리고 같은 메시지가 중복으로 add 되더라도 de-duplication 가능하다)
- Rate Limit : 동시 처리 가능한 Task수와, TPS 설정이 가능하다.
- Pub/Sub은 Pull/Push가 모두 가능한데, Task는 Push만 가능하다.
- Scheduled delivery : 메시지에 delivery time을 설정하여, 원하는 시간에 Task를 delivery할 수 있다.
그러면 Pub/Sub에 비해서 장점만 있는가? 당연히 단점도 있다.
- Pub/Sub은 순차 보장 전달이 가능하나, CloudTask는 순차 보장이 불가능하다.
- Pub/Sub 메시지 최대 크기는 10MB이나 CloudTask는 1M까지만 전달 가능하다
- Pub/Sub은 Global delivery (across region)이 가능하나, Cloud Task는 region안에서만 가능하다.
그러면 어떤 시나리오에 사용이 가능할까?
아래 구조는 EventArc에서 특정 메시지를 CloudRun으로 보낼때, CloudRun이 Over Scale out이 되지 않도록 Cloud Tasks 를 중간에 넣어서 Rate limit (throttling 용도로 사용한 구조이다.)

이렇게 메시지 처리에 대한 Rate throttling이 필요하거나 scheduled delivery가 필요할때 사용할 수 있다.
'클라우드 컴퓨팅 & NoSQL > 분산컴퓨팅&클라우드' 카테고리의 다른 글
| 구글 클라우드-AppDev 알아보기 #1 EventArc를 이용한 EDA 구축 (1) | 2025.10.31 |
|---|---|
| 분산 코디네이터 Zookeeper(주키퍼) 소개 (0) | 2015.04.12 |
| 분산 대용량 큐-Apache Kafka에 대한 검토 (0) | 2015.01.29 |
| Thrift, Avro and Protocol Buffers (0) | 2014.10.01 |
| 임시 파일 작업 공간 (Working storage)에 대한 노트 (1) | 2014.10.01 |