serverless

이성보·2021년 2월 5일
0

what is it

서버리스는 애플리케이션을 빌드하고 백엔드 디자인 하는 방법을 바꾸고 있다.
서버가 없는 백엔드(x), 직접 서버를 관리하지 않는 경우(o)

(직접 서버를 사야하는 그런 시절) -> Amazon EC2

하지만 서버의 소프트웨어는 관리를 직접해줘야 한다.
ex) 업데이트, 보안, 데이터 백업 etc...

pros

서버리스를 활용하면 백엔드를 서버에 올리는 것이 아니다.
서버리스에서는 백엔드를 작은 함수단으로 쪼개서 직접 관리하지 않는 서버로 올린다. 예를 들면 AWS lambda.

서버리스가 아닌 경우 서버는 24시간 돌아간다.
서버리스의 경우 업로드한 함수는 잠을 자고 있다.
리퀘스트가 오는 순간 AWS는 함수를 깨울 것이고 요청한 작업을 수행하고 다시 함수는 잠에 들거다.

즉, 24시간 동안 깨어서 대기 안해도 된다.
덕분에 엄청 저렴해졌다. 예를 들면 AWS 람다는 엄청 저렴하다.

cons

  1. cold start
    리퀘스트가 와서 함수를 깨우는데 아무래도 시간이 걸린다.
    이러한 경우들 때문에 AWS 람다의 경우 어떤 함수가 자주 쓰이는지 파악을 해서 해당 함수는 아예 잠들지 않고 리퀘스트에 빨리 대응할 수 있도록 대기한다고 한다.
  2. 서버 제공자에 너무 의지하게 된다.
    AWS와 결혼
    단순하게 함수를 빼서 다른곳으로 이사갈수 있다는 뜻이 아니다.
    한 서버리스에서 다른 쪽으로 마이그레이팅 하는 것은 쉽지 않다.
    AWS에서 서버를 빌렸다가 구글 클라우드로 이사가는건 쉽다. 하지만 서버리스에서 이사가는건 그렇게 간단하지 않다. 서버리스로 작업하면 어플리케이션의 구조자체가 바뀌게 된다.
    왜냐면 너가 서버를 통제한다는 마인드에서 일단 바꿔야하고 하지만 어떻게 설계하고 작업하는지 익숙해지면 이 후에는 꽤나 만족스럽다.

for who

사이드프로젝트 하는 친구들에게 추천하고 싶다. 혹은 최대한 빠르게 프로토타입을 출시하고 싶은 경우 추천한다.
서버리스로 작업하면 코드에만 집중하면 된다. 설정은 신경 꺼도 되고 엄청 빠르고 쉽게 서버를 활용해서 제품을 내놓기 좋다. 서버 관리하고 설정하는데 시간을 아끼고 싶다면 서버리스가 정답

서버리스 장점: 빠르게 제품 출시 가능. 돈도 절약할 수 있음.
서버리스 단점: 서버에 대한 통제를 잃음. 구조를 변경해줘야함.

서버리스를 배워보고 싶다면 serverless.com
aws람다, google cloud functions, apex, terraform

내가 살펴보고 있는 서비스들이고 관심이 많다.
왜냐면 내 코드를 올리는데 돈을 내지 않아도 된다는게 꽤 매력적이다.

0개의 댓글