서버리스 마이크로서비스란? | 서버리스 마이크로서비스 설명

마이크로서비스는 서로 독립적으로 실행되는 애플리케이션의 작은 세그먼트로, 다양한 방식으로 배포할 수 있습니다. 서버리스 마이크로서비스는 서버리스 아키텍처 내에 배포됩니다.

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • 서버리스 마이크로서비스의 정의
  • 서버리스 마이크로서비스의 작동 방식 이해하기
  • 마이크로서비스, 컨테이너, 함수 간 구분

글 링크 복사

마이크로서비스란?

하나의 애플리케이션을 잘게 쪼개서 하나의 모놀리식 전체가 아닌 작은 부분의 모음으로 실행한다고 상상해 보세요. 이것이 바로 마이크로서비스 아키텍처의 기본 개념입니다. 애플리케이션의 각 부분을 '마이크로서비스'라고 하며, 마이크로서비스는 하나의 서비스만 수행하고, 애플리케이션의 다른 부분과는 독립적으로 실행되며, 자체 환경에서 작동하고, 자체 데이터를 저장합니다. 이름과는 달리, 마이크로서비스는 작을 필요는 없습니다. '마이크로'의 특징은 하나의 서비스만 처리하고 더 큰 애플리케이션의 일부라는 점입니다.

마이크로서비스로 구성된 애플리케이션을 미식축구 팀과 같다고 생각하면 됩니다. 각 선수는 고유한 역할을 수행하지만, 선수들이 함께 팀(전체 애플리케이션)을 구성하여 공동으로 목표를 달성합니다. 또는 마이크로서비스를 인체의 다양한 시스템(순환계, 호흡계 등)이라고, 애플리케이션을 전신이라고 생각하면 됩니다.

사용자 관점에서 보면, 마이크로서비스로 빌드된 애플리케이션은 단일 인터페이스를 가지며 하나의 스택으로 설계된 애플리케이션과 동일하게 작동해야 합니다. 하지만 그 이면을 보면, 각 마이크로서비스가 자체 데이터베이스를 가지고 있으며 나머지 애플리케이션과 별도로 실행됩니다. 또한 동일한 애플리케이션 내의 마이크로서비스가 서로 다른 언어로 작성되고 서로 다른 라이브러리를 사용할 수 있습니다.

모놀리식 아키텍처와 마이크로서비스 아키텍처의 비교

마이크로서비스는 모놀리식 아키텍처와 대비되는 경우가 많습니다. 모놀리식 아키텍처는 애플리케이션을 구축하는 고전적인 방식입니다. 모놀리식 애플리케이션은 사용자 인터페이스가 상단에, 비즈니스 로직이 중간에, 데이터베이스가 하단에 있는 단일 스택입니다. 일반적으로 모놀리식 애플리케이션은 특정 서버 또는 서버 집합에서 호스팅됩니다. 이러한 방식으로 애플리케이션을 구성할 때의 단점 중 하나는 애플리케이션을 조금만 변경해도 전체 스택을 업데이트해야 한다는 점입니다. 또 다른 단점은 애플리케이션의 한 부분이 중단되면 전체 애플리케이션이 실패할 수 있다는 것입니다.

마이크로서비스의 장점

  • 복원력: 애플리케이션이 분할되어 있으므로 애플리케이션의 한 부분이 중단되거나 충돌해도 나머지 애플리케이션에 영향이 미치지 않습니다
  • 선택적 확장성: 전체 애플리케이션을 확장하는 대신 사용량이 많은 마이크로서비스만 확장할 수 있습니다
  • 손쉬운 기능 추가 및 업데이트: 전체 애플리케이션 스택을 업데이트하는 대신 한 번에 하나씩 기능을 롤아웃하거나 업데이트할 수 있습니다
  • 개발자를 위한 유연성: 마이크로서비스는 서로 다른 언어로 작성할 수 있으며 각각 고유한 라이브러리가 있습니다

마이크로서비스가 서버리스 아키텍처의 일부가 될 수 있을까요?

마이크로서비스는 다양한 방식으로 배포할 수 있으며, 서버리스 아키텍처의 일부로 컨테이너에서 호스팅하거나, PaaS를 사용하여 개발하거나, 이론적으로는 로컬에서 호스팅되는 애플리케이션을 구축하는 데 사용할 수 있습니다. 그러나 마이크로서비스로 애플리케이션을 구축할 때의 장점은 컨테이너 또는 서버리스 아키텍처를 사용하여 클라우드에서 애플리케이션을 호스팅할 때 가장 분명하게 드러납니다.

서버리스 마이크로서비스란? 서버리스 마이크로서비스 아키텍처는 어떻게 작동할까요?

서버리스 마이크로서비스는 서버리스 벤더의 인프라 내에 배포되며 애플리케이션에서 필요할 때만 실행됩니다.마이크로서비스의 크기에 따라 더 작은 함수로 나눌 수도 있습니다.서버리스 컴퓨팅의 작동 방식에 대해 자세히 알아보려면 서버리스 컴퓨팅이란?을 참조하세요

마이크로서비스와 서버리스 기능의 차이점은?

이 구분은 아직 기술 커뮤니티에서 정의 중이지만, 일반적으로 마이크로서비스가 규모가 더 크고 하나의 기능 이상의 기능을 수행할 수 있습니다. 기능은 이벤트에 대한 응답으로 한 가지 작업만 수행하는 비교적 작은 코드 조각입니다. 개발자가 애플리케이션을 어떻게 나누었느냐에 따라 마이크로서비스는 하나의 기능과 같을 수도 있고(즉, 하나의 작업만 수행한다는 의미), 여러 개의 기능으로 구성될 수도 있습니다.

미식축구의 비유를 확장하여 패스를 하고, 러닝백에게 공을 넘겨주는 등 쿼터백이 수행하는 모든 역할을 생각해 보세요. 쿼터백이 팀 내에서 마이크로서비스('쿼터백' 서비스 제공)와 같다면, 이러한 각각의 작은 활동은 기능입니다. 그러나 축구팀에 키커처럼 한 가지 역할만 수행하는 선수가 있는 것처럼 마이크로서비스와 기능 사이의 경계가 때때로 모호할 수 있습니다.

Cloudflare Workers는 마이크로서비스일까요?

Cloudflare Workers는 Cloudflare 에지 네트워크 내에서 호스팅되고 HTTP 요청에 대한 응답으로 실행되는 JavaScript코드 조각입니다.Workers는 기능처럼 작동하지만, 마이크로서비스로도 작동할 수 있는 유연성이 제공되며, Cloudflare에서는 개발자가 빌드하고 배포할 수 있는 Workers의 크기나 유형에 제한을 두지 않습니다.