회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
기술스택, 컬처코드 딱 맞는 포지션만 알려주는 개발자 이직 플랫폼
서버리스는 클라우드의 최신 트렌드로 떠오르고 있습니다. 그렇다면 Server-Less는 무엇일까요? 처음 들어 본 개발자는 서버가 없는 것처럼 느껴질 수 있습니다. Red Hat에서는 서버리스에 대해 다음과 같이 정의했습니다.
회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!
확인
서버리스는 클라우드의 최신 트렌드로 떠오르고 있습니다. 그렇다면 Server-Less는 무엇일까요? 처음 들어 본 개발자는 서버가 없는 것처럼 느껴질 수 있습니다. Red Hat에서는 서버리스에 대해 다음과 같이 정의했습니다.
서버리스(serverless)란 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델입니다.
즉, 서버가 없는 것이 아니라 서버를 구축하고 유지, 관리하며 트래픽에 맞게 스케일링할 필요가 없다는 의미입니다. 이런 작업들은 서비스를 제공하는 클라우드 플랫폼에서 추상화된 상태로 제공하게 됩니다. 개발자는 단지 추상화된 서버리스 모델을 설정을 하거나, 비즈니스를 위한 코드를 작성해 배포만 하면 됩니다. 일반적으로 서버리스 모델들은 이벤트 기반 트리거 되어 실행되기에 온디맨드로 과금됩니다. 그렇기 때문에 서버리스 서비스가 작업 중이지 않을 때는 비용이 청구되지 않습니다.
2017 AWS re:invent에서 아마존 CTO인 버너 보겔스(Werner Vogels)는 우리가 미래에 작성할 모든 코드는 비즈니스 로직이라고 이야기했습니다. 즉, 개발자가 서버에 대해서 운영 및 관리 그리고 고가용성을 유지하기 위해 시간을 허비하지 않고, 오직 서비스를 만들기 위한 비즈니스 로직에만 집중하는 미래를 의미합니다.
그리고 서버리스에 대한 중요한 원칙 4가지를 이야기했습니다.
그는 좋은 기업 사례에 대해서도 소개했습니다. IRobot은 로봇을 판매하는 회사입니다. 이 회사의 소비자는 구매한 로봇에 대해서만 지불하기 때문에 비용 최적화가 매우 중요했습니다. IRobot은 모든 클라우드 아키텍처를 서버리스만을 사용해서 설계했습니다. 왜냐하면 사용하지 않은 비용은 청구되지 않기 때문이죠.
개인적으로는 Azure나 GCP뿐만 아니라 다양한 클라우드 플랫폼에도 서버리스 서비스가 있지만, AWS는 서버리스 생태계를 선두하고 있다고 생각합니다. 그중에서도 2014년에 첫 출시한 람다(Lambda)는 서버리스 아키텍처에서 핵심인 컴포넌트이고, 인지도를 높여준 일등 공신입니다. 그렇다면 제가 말하고 싶은 진짜 서버리스에는 어떤 것들이 있을까요?
서버리스에 입문을 하게 되면 가장 먼저 만나게 되는 서비스들입니다. AWS에서 서비스를 구성하게 되면, 거의 무조건 사용하는 Object 기반 스토리지인 S3도 서버리스입니다.
데이터 엔지니어링 부분에도 서버리스 서비스들이 있습니다.
그뿐만 아니라 거의 당연하게 사용하고 있는 권한 관리, 모니터링, 보안에 사용되는 IAM, Cloud Watch, Secret Manager도 사실은 모두 서버리스입니다. 설명하지 못한 서버리스 서비스들이 더 많이 있습니다.
여기에서 나열한 모든 서비스들은 어떠한 서버도 준비하고 관리할 필요가 없고 매우 유연한 확장이 가능하며, 고 가용성을 유지해 줍니다. 그리고 사용한 만큼만 비용이 청구되죠.
여기까지 글을 읽었다면 서버리스란 무엇이며, 추구하는 철학과 어떤 서비스들이 있는지 이해했을 것입니다. 그리고 클라우드에 관심이 많은 분이라면 제가 말하고 싶은 가짜 서버리스의 특징이 무엇인지도 눈치챘을 것 같습니다.
제가 주장하고 싶은 가짜 서버리스 서비스에는 Aurora Serverless V2와 MSK Serverless가 있습니다. 두 서비스는 서버를 관리할 필요가 없고 들어오는 트래픽에 따라 자동으로 확장해 줍니다. 여기까지 본다면 서버리스와 같습니다. 하지만 트래픽이 0 일 때도 최소한의 비용이 청구됩니다. Aurora Serverless V2는 최소 0.5 ACU에 대한 비용, MSK는 클러스터에 비용이 사용하지 않더라도 청구되죠. 이는 위에서 설명한 서버리스의 원칙에 맞지 않다고 생각합니다. 심지어 Aurora Serverless V2는 V1과도 대조됩니다. V1은 트래픽이 들어오지 않을 경우 완전히 종료되어 비용이 청구되지 않습니다. 물론 다시 동작하는데 시간이 오래 걸리긴 하지만요….
따라서 이러한 서비스에 서버리스를 붙이는 것을 멈춰야 한다고 생각합니다. 기존에 정의한 서버리스를 무너뜨리는 것은 물론 생태계에 혼란을 줄 수 있다고 보기 때문입니다. 차라리 Fully-Managed(완전 관리형)와 같은 이름을 붙이는 것이 더 맞다고 봅니다. Aurora Fully-Managed, MSK Fully-Managed는 서버리스가 붙어 있지 않더라도 충분히 고려할 만한 서비스기 때문입니다.
<원문>
요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.