Vapor free

2019-07-29

지난 주 콘에서 벨이 새로운 서비스를 소개했습니다. 바로 Vapor 입니다. “서버는 우리가 다 알아서 해줄게요, 여러분은 벨 애플리케이션에만 신경쓰세요”고 이야기하는 것 같습니다. 매트 스타우퍼가 이브 블로깅으로 정리한 벨 Vapor 소개(Introducing Laravel Vapor)와 모하메드 새드의 AWS 람다란 무엇이고, 벨 Vapor가 이를 어떻게 사용하는가(What is AWS Lambda, and how Laravel Vapor uses it)를 요약해서 소개하겠습니다.


동기


벨은 포지(Forge)는 배포 서비스를 가지고 있습니다. 포지를 사용하면 AWS, DigitalOcean, Linode 같은 클우드 서버에 애플리케이션을 쉽게 배포할 수 있습니다. 편리한 서비스이지만 사람들이 오토 스케링 같은건 어떻게 해야하는지 문의했나봅니다. 이에 대해 벨팀은 포지에 오토스케링 기능을 추가하는 대신 새로운 접근 방법을 택했습니다. 바로 서버리스입니다.


서버리스 (Serverless)


서버리스는 말그대로 서버가 없다는 뜻입니다. 하지만 정말로 서버가 없는건 아니죠. 실제로 어딘가에 서버가 존재는 하지만 나는 그 존재를 알 필요가 없다는 것입니다.


벨의 index.php을 열어보면 아래 내용을 볼 수 있습니다. (전에 리퀘스트 이프 사이클에서도 다뤘던 내용이죠! ^^)


$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);

$response->send();

애플리케이션에 리퀘스트를 보내면 Kernel::handle 메소드가 처리하고 브우저에게 리스폰스를 되돌려줍니다. 그동안은 이를 위해 서버를 마련하고 어떤 요청이 들어오던 index.php를 실행하도록 준비하고 기다리고 있었습니다.


Kernel::hanle 메서드만 똑 떼어내서 어떤 서비스에 올려놓고, 메서드가 실행되는 횟수만큼만 비용을 낸다면 어떨까요? 서버에 배포하거나, 이브러리를 업그레이드하거나, 저장공간을 관리하는데 전혀 신경안써도 됩니다. 단지 기능을 업로드하고 기능이 동작하는만큼만 돈을 내는 것이죠.


이게 기본적인 서버리스입니다.


AWS 람다(Lambda)


람다는 AWS의 FaaS(Function as a Service)입니다. 람다는 주로 마이크로서비스 아키텍처의 부로 사용되며, 한 번에 한 가지 을 처리합니다.



  • 이미지를 S3에 올리면 섬네을 만든다.

  • 큐에 잡을 전송하면, 람다가 실행되고 잡을 처리한다.

  • HTTP 리퀘스트를 엔드포인트로 전송하면, 람다가 실행되고 응답을 생성한다.


이런 입니다. 이는 반적으로 애플리케이션을 애플리케이션을 여러개의 서로 다른 서비스로 쪼개고, 각 서비스는 개별 코드 베이스를 갖는 것을 의미합니다.


마이크로서비스는 장점이 많지만 여러 서비스를 엮는게 어렵습니다.


Vapor는 여러분의 벨 애플리케이션을 AWS 람다로 변환합니다. 람다를 실행한 이벤트에 따 Vapor가 애플리케이션의 특정 기능을 수행해줍니다. 사용자가 엔드포인트를 방문하면 우터로 보낸 후 응답을 되돌려주고, 잡이 추가되면 워커를 작동시키는 입니다. 이런으로 벨 애플리케이션 작성 방법은 그대로 유지한채 서버리스의 장점을 취할 수 있습니다. Vapor가 벨 애플리케이션을 서버리스로 변환하는데 필요한 모든 을 해줍니다.


마치며


그냥 단순히 배포와 오토스케링을 처리해주는 서비스인가?고 생각했는데 벨을 서버리스로 변환해주고 편하게 관리할 수 있게 해주는 서비스였네요. 정말 엄청나네요! AWS 비용이 얼마나 나올지 가늠이 안되긴하는데 저는 서비스가 정 오픈 하는대로 한 번 써볼까 합니다. Vapor 자체는 프로젝트 수에 상관없이 한달에 39$서 크게 부담은 안되는 듯 합니다.

===

1 1 벨 8월호 구독 신청이 곧 마감됩니다. 기 구독자분들은 별도의 신청없이 구독료만 입금해주시면 됩니다.(국민은행 024802-04-036133 이현석) 8월에도 만나뵐 수 있길 바래요!

1 1
2019년 7월 29 




유료 구독자 전용 레터입니다.

한 달 1만원으로 매일 라라벨 관련 메일 받아보시고 과거 메일도 열람하세요. 일반 구독으로 공개글만 받아보실 수도 있습니다.

구독하기 버튼을 눌러주시면 구독과 동시에 xly에도 가입됩니다.

이현석

바쁜 팀장님 대신 알려주는 신입 PHP 개발자 안내서를 쓰고, 클린 아키텍처 인 PHP를 번역했습니다. 2020년에 출간될 Laravel Up & Running 2nd Edition을 번역하고 있습니다.