Week 7 내내 우리가 본 네 가지 서비스 — SQS, SNS, EventBridge, Kinesis — 는 콘솔의 카테고리로 보면 모두 "Application Integration"에 묶여 있지만, 그 안에서 푸는 문제는 사실 서로 다른 종류다. 같은 화면에 나란히 놓여 있다고 해서 같은 결을 가진 서비스라고 오해하면 시험은 물론 실무에서도 잘못된 도구를 고른다.
이 글에서는 다섯째 날답게 새로운 서비스를 더 얹지 않는다. 대신 지난 4일 동안 본 모델들을 분산 시스템 이론과 시나리오 키워드의 관점에서 다시 한 번 정리하고, 시험에서 자주 헷갈리는 결정 축들을 한 번에 풀어본다. 마지막으로 12문항의 시나리오 문제로 그동안 쌓아둔 사고를 점검한다.
각 서비스가 풀려는 문제부터 다시 짚자. 외울 정의가 아니라 "이 서비스가 없으면 어떤 고통이 있는가"의 관점이다.
SQS (Day 31) — 생산자와 소비자의 시간을 분리하는 큐. 핵심 추상화는 "소비자가 잠시 죽어도 메시지는 큐에 남아있다". 이걸로 사용자 요청 처리 속도와 워커 처리 속도의 불일치(burst)를 흡수한다. 한 메시지는 한 소비자가 가져가서 끝낸다(point-to-point).
SNS (Day 32) — 한 이벤트를 N개 시스템으로 동시에 전달하는 팬아웃. 핵심 추상화는 "발행자는 누가 듣는지 모른다"