Tag Archives: AWS

AWS 기반 서버 없는 아키텍쳐(Server-less back-end architecture)

인터넷 기반으로 서비스를 하는데 서버 없는 아키텍쳐가 있다고 하여 이를 올려 봅니다.

제목에 서버가 없다고 했지만, 서버가 아예 없는건 아닙니다. 정확한 표현은 최소화했다고 보는 것이 맞을 것 같습니다.

 

아래의 사례는 Amazon S3를 기반으로 하는 서비스 아키텍쳐 입니다.

AWS 기반 서버 없는 아키텍쳐(Server-less back-end architecture)

Amazon CloudFront를 통해 콘텐츠르 배포하고, Amazon API Gateway를 이용하여 필요한 기능은 AWS Lamda를 이용한 사례입니다. AWS Lamda는 하나의 함수를 코드조각으로 구성하여 실행하는 실시간 대응형 서비스입니다.

 

아래의 사례는 모바일 앱의 사례인데, 기능이 좀더 복잡하여 Amazon API Gateway로 분기하여 AWS Lamda를 호출 한 사례입니다.

AWS 기반 서버 없는 아키텍쳐(Server-less back-end architecture)

아래의 사례는 최소한의 기능만 가지고 서비스를 하는 마이크로 서비스의 사례입니다.

AWS 기반 서버 없는 아키텍쳐(Server-less back-end architecture)

뭐, 서버가 없다고 했지만, 이 모든것을 Lamda로 대체 가능하다고 주장하고 있습니다. 이를 위해서는 소프트웨어 구현 방법이 기존과는 달라져야 합니다.

넷플릭스 서비스 오토스케일링 아키텍쳐

글로벌 비디오 서비스 강자인 넷플릭스는 아마존 AWS를 운영환경으로 사용합니다.

그들이 온라인 비디오 시장에서 티격태격하면서 경쟁하고 있지만, 아이러니하게도 넷플릭스는 아마존과 끈끈한 관계를 유지하고 있습니다. 아마도 아마존은 넷플릭스덕분에 그들의 아마존 프라임 비디오 서비스를 위한 환경 구축을 북미 전역에 쉽게 얻었을 것이라는 생각을 하게 만듭니다. 

서비스 트래픽에 따라 서버 인스턴스를 늘렸다 줄였다 하는 오토스케일링(AWS Auto Scaling)을 기본으로 쓰고 있는데, 이는 다른 서비스 아키텍쳐와 다를 바가 없습니다.

다만, 트래픽이 증가한다고 무작정 오토스케일링을 하지 않고, 그들의 정책에 따라 EC2나 DynamoDB등의 키 컴포넌트를 스케일인, 스케일아웃을 한다는 것이 특징이라고 할 수 있습니다. 아래 그림에서는 Titus Control Plane이라 불리우는 넷플릭스 자체 시스템이 그러한 정책을 관리합니다.

넷플릭스 서비스 오토스케일링 아키텍쳐

또 하나 눈여겨 볼 것은 모바일/텔레비젼과의  통신은 Open API를 통해서 하지만, 자체구축하지 않고 Amazon API Gateway를 사용했습니다. 그럼으로 인해서 비용절감 및 보안(Security)을 해결하는 일타이피( ? ) 전략을 구사하고 있습니다.

참고로 위의 스핀네이커(Spinnaker)는 node.js 기반으로 동작하는 넷플릭스의 CDS(Continuous Delivery System)입니다.