Google Cloud Run
Google Cloud Run은 컨테이너를 서버리스 방식으로 실행하는 배포 계층입니다. 요청이 들어올 때만 인프라를 쓰고 싶을 때, 애플리케이션 코드를 컨테이너 단위로 올려 운영 부담을 줄이는 자리를 맡습니다.
▶아키텍처 다이어그램
🔗 관계 다이어그램점선 애니메이션은 데이터 또는 요청의 흐름 방향을 나타냅니다
컨테이너로 앱을 묶었는데, 이를 서비스로 띄우려면 클러스터 운영이나 VM 관리가 따라붙습니다. 서비스가 적고 트래픽도 들쑥날쑥한데 운영 비용까지 짊어질 필요는 없습니다.
컨테이너가 배포의 기본 단위가 되면서, Kubernetes 없이도 프로덕션에 바로 올릴 수 있는 실행 계층이 필요해졌습니다. Cloud Run은 그 부담을 없애기 위해 만들어진 서버리스 컨테이너 모델입니다.
이미지를 배포하면 Cloud Run이 HTTPS 엔드포인트와 리비전을 만들고, 요청량에 따라 인스턴스를 늘리거나 줄입니다. 컨테이너가 요청을 받는 동안만 살아 있고, 트래픽은 새 리비전으로 점진적으로 옮길 수 있습니다.
Cloud Run과 Compute Engine은 둘 다 서버를 대신 세워 주지만, Cloud Run은 컨테이너만 주면 런타임과 스케일을 맡아주고 Compute Engine은 OS와 프로세스를 직접 운영해야 합니다. Cloud Run과 GKE는 둘 다 컨테이너를 실행하지만, GKE는 스케줄링 정책과 서비스 메시까지 필요한 경우에 맞습니다.
Compute Engine
직접 운영하는 VM
둘 다 앱을 실행하지만, Cloud Run은 컨테이너 배포만으로 런타임과 확장을 넘겨받고 Compute Engine은 VM 운영까지 직접 맡습니다.
GKE
쿠버네티스 운영 계층
둘 다 컨테이너를 실행하지만, Cloud Run은 인프라를 숨겨 HTTP 워크로드에 맞추고 GKE는 Kubernetes 제어면을 그대로 드러냅니다.
Cloud Functions
이벤트에 붙는 실행 단위
둘 다 필요할 때만 코드를 실행하지만, Cloud Run은 컨테이너 단위로 서비스 경계를 담고 Cloud Functions는 이벤트 하나에 붙는 작은 실행 단위입니다.
HTTP API, 웹훅 처리, SSR 프론트엔드, 이벤트를 받아 짧게 일하는 작업처럼 요청 패턴이 들쑥날쑥한 컨테이너에 적합합니다. 노드 수준 튜닝이나 복잡한 오케스트레이션이 필요하면 다른 계층을 봐야 합니다.