[Cloud Native Architecture] Serverless

IMKUNYOUNG·2024년 7월 29일
0

KCNA

목록 보기
36/56

오늘날 많은 기업들이 서버리스 컴퓨팅을 활용하여 웹사이트나 애플리케이션을 더 효율적으로 운영하고 있습니다. 서버리스 컴퓨팅을 사용하면 서버나 인프라를 직접 관리할 필요 없이 클라우드 제공업체가 이를 처리해줍니다.

서버리스 컴퓨팅의 이해

전통적으로, 회사가 웹사이트나 애플리케이션을 운영하려면 서버를 구매하거나 임대하고, 이를 설정하고 관리해야 했습니다. 하지만 서버리스 컴퓨팅을 사용하면 이러한 모든 과정을 클라우드 제공업체가 대신해줍니다. 서버리스 컴퓨팅은 서버 인프라의 프로비저닝, 유지보수, 스케일링과 같은 작업을 클라우드 제공업체가 처리하여 기업은 애플리케이션의 비즈니스 로직에만 집중할 수 있습니다. 이 과정에서 사용되는 가장 일반적인 형태가 바로 Function-as-a-Service(FaaS)입니다.

Function-as-a-Service(FaaS)란

FaaS는 이벤트 기반으로 작은 코드 조각을 실행하는 서버리스 컴퓨팅 모델입니다. 이 모델에서는 사용자가 특정 기능을 수행하는 작은 코드를 작성하고, 클라우드 제공업체에 업로드합니다. 이러한 함수들은 필요할 때마다 클라우드 제공업체에 의해 자동으로 실행됩니다. 특정 이벤트, 예를 들어 HTTP 요청이나 메시지 큐에서 발생하는 이벤트에 의해 트리거될 수 있습니다. 그리고 중요한 점은 FaaS는 사용한 만큼만 비용을 지불하는 Pay-as-you-Go 모델을 따릅니다. 이는 기업이 서버를 항상 운영할 필요 없이 필요한 만큼만 비용을 지불하게 함으로써 비용 효율성을 높일 수 있습니다.

FaaS의 실용적 예시

예를 들어, 티셔츠를 판매하는 작은 온라인 상점이 있다고 가정해봅시다. 이 상점은 고객이 구매를 완료한 후 확인 이메일을 보내고자 합니다. FaaS를 사용하면, AWS Lambda와 같은 플랫폼에서 확인 이메일을 보내는 간단한 함수를 작성할 수 있습니다. 이 함수는 고객이 구매할 때 자동으로 실행되며, 필요한 경우 FaaS 플랫폼이 함수의 스케일링을 처리합니다.

주요 FaaS 제공업체

현재 여러 주요 퍼블릭 클라우드 제공업체들이 개발자들을 위한 FaaS 서비스를 제공하고 있습니다. Amazon은 AWS Lambda와 AWS Fargate, Microsoft는 Azure Functions, Google은 Google Cloud Functions를 제공합니다. 또한, Kubernetes Serverless는 오픈 소스 컨테이너 오케스트레이션 플랫폼인 Kubernetes를 사용하여 서버리스 작업을 실행하는 것을 의미합니다.

전통적인 Kubernetes 환경에서는 컨테이너가 서버나 가상 머신 클러스터의 일부로 배포되고 관리됩니다. 그러나 서버리스 컴퓨팅의 대두와 함께 Kubernetes는 서버리스 작업을 지원하도록 진화했습니다. Knative나 OpenFaaS와 같은 Kubernetes 서버리스 플랫폼을 통해 개발자는 Kubernetes 위에 서버리스 함수를 배포하고 관리할 수 있으며 (ex 트래픽이 발생하지 않는 pod는 down시키고 트래픽이 발생하는 순간 pod를 up), 이 플랫폼은 스케일링, 이벤트 트리거링 및 수명주기 관리를 처리합니다.

마치며

서버리스 컴퓨팅과 FaaS는 기업이 운영 비용을 절감하고 개발자 생산성을 높이는 데 중요한 역할을 하고 있습니다. Kubernetes의 확장성과 신뢰성을 결합하여, 서버리스 플랫폼은 현대 애플리케이션 구축을 위한 강력한 도구로 자리 잡고 있습니다. 이제 기업은 인프라 관리의 부담을 덜고, 핵심 비즈니스 로직과 사용자 경험 향상에 집중할 수 있게 되었습니다.

0개의 댓글