서버리스에 속지 마세요
(world.hey.com)- RoR을 만든 DHH의 글
- 클라우드 팬들은 비용, 성능, 복잡도 등 모든게 "서버리스"로 가면 마법처럼 해결 된다고 함
- 클라우드/VPS는 대량 구매 후 개별 판매라는 원칙에 따라 작동
- $1000에 큰 서버를 구매해서 $200에 7명에게 임대해서 월 $400의 수익
- 7명이 서버에 큰 부하를 주지 않거나, 서로 다른 시간에 사용한다면 잘 작동
- 서버 전체의 용량을 필요로 한다면 $1000의 컴퓨터를 $1400에 사용
- 1년 약정해서 쓴다면 월 $1250으로 할인도 가능 (기본적으로 연이율25%의 신용 계약)
- 서버리스는 위와 같지만 서버를 훨씬 더 얇게 쪼개는게 가능
- 대형 서버 한대를 7명에게 월 $200에 주는게 아니라, 각 펑션 실행하는 고객 100명에게 월 $20에게 제공
- 이제 월 $400 의 수익이 아니라 $1000의 이익을 냄
- 클라우드 업체가 서버리스를 좋아하는게 놀라운 일이 아님
- 때대로 실행되는 몇개의 기능만 필요하다면 좋음(적어도 단기적으로는)
- 그러나 전체 컴퓨터 기능을 다 사용해야 하는 수준이라면 끔찍함
- 동일한 클럭수에 대해 더 많은 비용을 지불하면서도 락인도 엄청나기 때문
- 서버리스에서 "클라우드 네이티브" 서비스를 사용하게 될수록 밖으로 나가기가 더 어려워짐
-
"서버리스에 속지 마세요. 컴퓨터의 컴퓨팅 사이클 전체가 필요하다면, 그 컴퓨터를 사야 한다는 사실을 바꾸는 마법 같은 것은 없어요. 독점적인 서버리스 구성으로 시작하면 락인에서 벗어날 수 없다는 걸 알게 될 거에요"
-
"클라우드는 블랙프라이데이/크리스마스에 엄청난 수요가 있고, 나머지 기간엔 필요 없는 용량이 많았던 아마존처럼 사용량에 큰 변화가 있는 회사나,
컴퓨터 전체를 소유할 만한 비즈니스가 아니거나, 클라우드 지출이 아주 적어서 문제가 되지 않는 초기 기업들을 위한 것이에요. 서버리스가 그걸 바꾸지는 않습니다."
버스트타임이 있는 서비스냐 아니냐의 차이도 있습니다. 배달 어플 같은 경우에는 확실히 몰리는 시간대가 있으니 그때만 스케일아웃할 수 있는 클라우드는 매력적이지요. 하지만 트래픽의 99%가 고정적인 IoT쪽은 물리서버를 돌리는게 나을 수 있구요.
서버리스의 실제 유용성을 넘어서 너무 hype화 되고 있는 면은 있기 때문에, 한번 생각해볼만한 관점을 주는 것 같습니다.
- 컴퓨터 1대 이상의 자원이 필요할 때도 서버리스 솔루션이 이익을 주는가
- 서버리스의 락인
이 2가지 이슈에 대해서 고민하고 결정하면 크게 실패할 일은 없을 것 같네요.
개인적으로는 서버리스가 옳은 추상화인가에 대한 궁금함이 있는데, 이것은 시간이 증명하리라 생각하고, 서버리스의 락인 문제에 대해서는 계속 골치아플 것이고, 업계 전반에서 풀어나가야 할 성공하기 쉽지는 않은 문제라고 생각합니다.
결국 수요와 공급에 대한 합리적 선택이 가능한 영역이라 속고 또는 속인다는 생각은 안듭니다.
시장에는 기업규모, 업의 형태, 서비스이 종류에 따라 cloud, on-premise 그리고 serverless를 적절하게 필요로 하는 기업과 사람들이 있기 마련이죠.
서버 한대가 200불이 적절한지 function을 20불주고 사용할지는 결국 각 기업의 ceo/cto가 고민해서 합리적으로 결정할 수 있는 사항들이라 생각됩니다. 당장 비용과 일정이 이쉬우면 20불이 나을수 있고 좀 여유가 된다면 200불, 1000불 짜리가 합리적인 결정이 될 수 있는거죠. 오히려 수요자 입장에서는 다양한 상황을 위한 선택지가 많아지는 것이니 좀 더 나은것이지 않나 생각됩니다. 게다가 독점적 기술도 아니고 대기업들 박터지게 경쟁하는 시장이니 가격은 계속 내려가는거죠.
전담 인프라 엔지니어(deops, sre, platform engineer or else)aws fargate나 gcp cloud run정도가 한계선인 듯. container as a service.
물론 그것도 이것저것 장단점이 있겠지만...
관련해서, AWS가 Lambda 로 돈을 그렇게 많이 받아가면서도, 정작 런타임 개선은 안하고 있다고 까는 글도 있습니다.
https://www.lastweekinaws.com/blog/aws-is-asleep-at-the-lambda-wheel/
- 2020년 리인벤트에서 람다 사용자가 이미 100만명이 넘었다고 하는데..
- 파이썬이 3.10이 2021년 10월에 나왔고, 현재 이미 3.11.2까지 나왔음에도 불구하고, 람다 런타임은 3.9를 쓰고 있음. 우분투 LTS도 3.10 사용함. AWS는 1년 넘게 "작업중"
- Go 런타임은 너무 오래되어서 Graviton을 지원하지 않고, Ruby 도 마찬가지로 빈약
동감합니다.
Lambda나 다른 AWS 서비스의 플랫폼 업그레이드 사이클을 보면 기민하다는 생각은 들지않고, 굉장히 보수적으로 하거나 많은 리소스를 들이지 않는다는 인상을 받습니다. 아무래도 플랫폼 버전이 추가하기 위해서 많은 테스트가 필요하고, 추가로 인해서도 지원 비용이 크게 늘어날테니, 아무래도 안전성을 중시하고, 플랫폼 버전의 수를 일정 이내로 관리하기 때문이 아닐까... 추측은 됩니다만.