서버리스 컴퓨팅이란 무엇입니까?

서버리스 컴퓨팅은 서드 파티 관리 서버 인프라에서 애플리케이션을 구축하고 배포할 수 있는 애플리케이션 개발 모델입니다. 모든 애플리케이션은 실행하려면 서버가 필요합니다. 하지만 서버리스 모델에서는 클라우드 제공업체가 일상적인 작업을 관리하고 기본 인프라를 프로비저닝하고 크기 조정하며 유지 관리합니다. 클라우드 제공업체는 운영 체제 관리, 보안 패치, 파일 시스템 및 용량 관리, 로드 밸런싱, 모니터링, 로깅과 같은 여러 작업을 처리합니다. 따라서 개발자는 애플리케이션 설계에 집중하면서도 비용 효율적이고 효율적이며 대규모로 확장 가능한 서버 인프라의 이점을 계속 누릴 수 있습니다.

서버리스 컴퓨팅은 왜 중요한가요?

인터넷 초창기에는 누구든 웹 애플리케이션을 실행하려면 물리적 서버를 구입하고 유지 관리해야 했습니다. 기업은 일반적으로 물리적 서버 디바이스를 온프레미스 데이터 센터 또는 코로케이션 시설에 설치합니다. 대부분의 애플리케이션이 서버 하드웨어 리소스의 극히 일부만 사용했기 때문에 비용이 많이 들 수 있었습니다.

처음에 클라우드 컴퓨팅 모델은 고객이 클라우드 제공업체 하드웨어에서 가상 서버 또는 인스턴스를 만들 수 있도록 하여 이 문제를 해결했습니다. 하지만 여전히 고객이 가상 서버를 프로비저닝, 구성, 업데이트 및 확장해야 했습니다.

이러한 문제에 대응하여 클라우드 제공업체는 민첩성을 높이고 비용을 더욱 최적화하기 위해 서버리스 기술을 제공하기 시작했습니다. 서버리스 컴퓨팅에서는 개발자가 인프라 관리 작업을 신경 쓸 필요 없이 코드를 실행하고, 데이터를 관리하고, 애플리케이션을 통합할 수 있습니다.

서버리스를 도입하는 데 따른 몇 가지 이점이 있는데, 다음으로 이에 대해 간략하게 설명하겠습니다.

개발자 생산성 향상

개발 팀은 애플리케이션을 구성하는 것이 아니라 빌드하는 데 집중할 수 있습니다. 운영 오버헤드가 낮으면 애플리케이션을 더 빨리 시장에 출시할 수 있습니다. 개발자는 고객 피드백에 응답하고 애플리케이션 코드 변경 사항을 자주 릴리스할 수 있습니다.

효율적인 확장성

클라우드 공급업체는 서버리스 환경에서 Auto Scaling 기능을 제공합니다. 서버리스 애플리케이션은 수요 0에서 최대 수요까지 자동으로 확장됩니다. 개발자는 코드를 작성할 때 사용량을 고려할 필요가 없습니다.

비용 절감

코드 실행 시 필요한 CPU, 메모리 및 기타 컴퓨팅 리소스에 대해서만 비용을 지불하면 됩니다. 유휴 리소스에 대해서는 비용을 지불하지 않습니다. 이 종량 과금제 모델은 최적의 리소스 활용도를 보장하고 과도한 프로비저닝으로 인한 낭비를 방지합니다.

서버리스 컴퓨팅의 사용 사례는 어떤 것들이 있나요?

서버리스 컴퓨팅은 여러 애플리케이션과 시스템에 특히 유용할 수 있습니다.

무상태 애플리케이션 개발

서버리스 아키텍처는 세션 간에 클라이언트 데이터를 저장하지 않는 비동기식 무상태 애플리케이션에 적합합니다. 서버리스 애플리케이션의 예로는 챗봇, 작업 스케줄러, IoT 애플리케이션 등이 있습니다. 일례로 Coca-Cola는 AWS를 사용하여 터치리스 음료 디스펜서용 모바일 음료 따르기 앱을 단 100일 만에 개발했습니다. Coca-Cola는 AWS Lambda와 같은 서버리스 빌딩 블록을 사용했습니다.

배치 처리

배치 처리 애플리케이션은 백업, 필터링, 정렬과 같은 대규모의 반복적인 데이터 작업을 주기적으로 수행합니다. 배치 처리는 필요할 때 대규모로 확장되고 사용하지 않을 때는 비용이 발생하지 않는 서버리스 환경에 적합합니다.

예를 들어 Liberty Mutual은 AWS를 사용하여 서로 다른 글로벌 사업부를 Financial Central Services(FCS)라는 중앙 집중식 시스템으로 통합했습니다. 이 회사는 AWS Step Functions를 사용하여 매월 말에 한 번 실행함으로써 1억 건의 트랜잭션을 처리할 수 있는 서버리스 애플리케이션을 만들었습니다.

실시간 데이터 분석

서버리스 컴퓨팅은 실시간 스트리밍 엔진에서 고객 응답 성능을 개선하는 데 적합합니다. 서버리스 앱은 짧은 지연 시간과 높은 대역폭의 이점을 누리면서 수십만 개의 소스에서 스트리밍되는 방대한 데이터를 처리할 수 있습니다. 따라서 몇 분이 아니라 몇 초 만에 인사이트를 도출할 수 있습니다.

예를 들어 Genentech는 임상 데이터 분석에 AWS 서버리스 기능을 사용합니다. 연구원들은 이전에는 몇 주가 걸렸던 작업을 이제 몇 시간 만에 완료할 수 있습니다.

비즈니스 프로세스 자동화

서버리스 접근 방식을 사용하여 번거롭고 시간이 많이 걸리는 비즈니스 프로세스를 자동화할 수 있습니다. 개발자는 서버를 관리할 필요 없이 비즈니스 로직을 애플리케이션 코드로 변환하는 데 집중할 수 있습니다.

예를 들어 Taco Bell은 AWS를 사용하여 비즈니스 로직과 데이터 변환을 수행하는 서버리스 애플리케이션을 만들었습니다. 이 애플리케이션은 Taco Bell의 배달 파트너에게 실시간 메뉴 및 레스토랑 정보를 전달했습니다. 서버리스 투자는 이 브랜드가 코로나19 팬데믹 기간 동안 소비자의 배달 수요에 빠르게 대응하는 데 도움이 되었습니다.

서버리스 아키텍처는 어떻게 작동하나요?

모든 애플리케이션에는 프런트엔드와 백엔드라는 두 가지 포괄적인 기능 영역이 있습니다. 프런트엔드에는 시각적 레이아웃, 버튼, 디스플레이 텍스트 등 최종 사용자가 상호 작용하는 모든 요소가 포함됩니다. 백엔드에는 데이터 저장 및 처리와 같이 사용자가 액세스할 수 없는 기능이 포함됩니다.

모바일 디바이스의 항공편 예약 앱을 예로 들어 보겠습니다. 날짜를 선택하고 이용 가능한 항공편 목록을 요청할 수 있는 애플리케이션 UI가 프런트엔드에 해당합니다. 사용자의 요청은 백엔드로 전달되며, 백엔드는 데이터베이스를 조회하여 선택한 시간대에 이용 가능한 모든 항공편에 대한 정보를 반환합니다. 다음 다이어그램은 기존 아키텍처를 보여줍니다.

기존 웹 애플리케이션 프레임워크 다이어그램

서버리스 아키텍처에서는 개발자가 클라우드 제공업체에서 제공하는 클라우드 인프라에 백엔드 코드를 배포합니다. 서버리스 애플리케이션의 핵심은 이벤트를 게시, 소비 또는 라우팅하는 분리된 소형 서비스에서 구축된 현대적 아키텍처 패턴인 이벤트 기반 아키텍처입니다. 이벤트는 서비스 간에 전송되는 메시지입니다.

이 아키텍처 덕분에 시스템의 개별 구성 요소를 쉽게 확장하고 업데이트하고 독립적으로 배포할 수 있습니다. 다음 다이어그램은 이벤트 기반 서버리스 마이크로서비스를 보여줍니다.

이벤트 기반 서버리스 마이크로서비스 다이어그램

다음으로 서버리스 아키텍처의 작동 방식을 개략적으로 살펴보겠습니다.

기능

함수는 단일 작업을 수행하는 작은 개별 코드 단위입니다. 함수를 실행하려면 CPU 및 메모리와 같은 컴퓨팅 리소스가 필요합니다. 클라우드 제공업체는 필요한 경우에만 이러한 리소스를 할당하여 서버리스 기능을 실행할 수 있는 임시 환경을 만듭니다.

특정 이벤트는 코드 단위를 트리거하거나 실행할 수 있습니다. 예를 들어 사용자가 애플리케이션에서 버튼을 선택하면 이벤트가 실행될 수 있습니다. 요청은 데이터베이스를 읽고 관련 정보를 사용자에게 반환하는 함수를 트리거합니다.

요청 규모 조정

함수가 수신하는 요청이 많을수록 함수를 실행하는 데 필요한 리소스가 많아집니다. 서버리스 플랫폼은 부하를 모니터링하고 거의 무한대에 가까운 규모로 클라우드 리소스를 계속 할당합니다. 따라서 코드 변경 없이 단일 서버리스 함수로 1개 또는 100만 개의 요청도 처리할 수 있습니다.

함수가 요청 수신을 중단하면 클라우드 제공업체는 비용을 절감하기 위해 관련 인프라를 종료합니다. 그리고 필요한 경우에만 리소스를 할당합니다. 사용량이 없는 경우 환경을 0으로 규모 조정할 수도 있습니다.

서버리스 아키텍처에는 어떤 유형이 있나요?

서버리스 아키텍처에서는 클라우드 제공업체가 애플리케이션의 크고 작은 여러 백엔드 작업을 관리합니다. 사용자 지정 코드를 배포할 수 있습니다. 클라우드 제공업체는 코드가 실행될 때마다 리소스를 동적으로 할당합니다. 클라우드 플랫폼에서 코드를 완전히 새로 작성하지 않고도 바로 사용할 수 있는 백엔드 기능을 제공할 수도 있습니다.

다음으로 두 가지 유형의 서버리스 아키텍처에 대해 설명하겠습니다.

서비스형 기능

서비스형 기능(FaaS)은 개발자가 사용자 지정 백엔드 함수를 작성하고 함수 코드를 클라우드 인프라에 직접 배포하는 데 사용할 수 있는 서버리스 아키텍처입니다. 함수가 직접 호출되면 클라우드 제공업체는 기존 활성 서버에서 함수를 실행하거나 필요한 경우 새 서버를 가동합니다. 이 함수는 실행 프로세스가 개발자의 영향을 받지 않도록 추상화되어 있기 때문에 서버리스 함수라고 합니다. 개발자는 코드가 실행되는 방법과 위치에 대해 신경 쓸 필요 없이 코드를 작성하고 배포할 수 있습니다.

서비스형 백엔드

서비스형 백엔드(BaaS)를 통해 개발자는 API를 사용하여 백엔드 기능에 액세스할 수 있습니다. API는 정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘입니다.

클라우드 공급업체는 서버리스 환경에서 API를 통해 추가 암호화, 인증 및 클라우드 액세스 지원 데이터베이스에 대한 액세스를 제공합니다. 또한 다른 서드 파티 서비스 및 애플리케이션에 대한 액세스를 제공할 수도 있습니다. 이 같은 서버리스 함수는 사전 작성되며 코드에서 직접 호출할 수 있습니다.

서버리스 우선 전략이란 무엇인가요?

서버리스 아키텍처는 다음과 같은 원칙을 바탕으로 합니다.

  • 서버 관리 불필요
  • 가치에 따라 요금을 지불하는 서비스
  • 지속적 크기 조정
  • 내결함성 기본 제공

서버리스 우선 전략에서는 조직의 애플리케이션, 운영 및 개발 주기 전반에 걸쳐 이러한 원칙을 최우선으로 합니다. 서버리스 개발자 또는 서버리스 우선 기업은 이러한 원칙을 무엇보다 중요시하면서 솔루션을 구축합니다.

하지만 서버리스 컴퓨팅이 모든 워크로드에 적합한 것은 아닙니다. 필요에 따라 서버리스 이외의 기술을 지원 아키텍처로 통합할 수 있습니다.

서버리스 아키텍처는 안전한가요?

대부분의 클라우드 공급업체는 공유 보안 모델을 따릅니다. 클라우드 제공업체는 클라우드 자체의 보안을 책임지고 고객은 클라우드 내에서의 보안을 책임집니다.

클라우드 제공업체는 서버리스를 통해 운영 체제 및 네트워킹을 비롯한 많은 추가 인프라 계층을 관리합니다. 고객은 최소 권한 원칙과 서버리스 애플리케이션 보안 모범 사례를 준수해야 합니다.

예를 들어 AWS Lambda와 같은 AWS FaaS 솔루션에서는 AWS IAM Identity Center와 같은 익숙한 도구를 사용하여 세분화된 권한으로 각 리소스를 보호할 수 있습니다. 이를 통해 서버리스 애플리케이션을 위한 강력한 보안 태세를 구축할 수 있습니다.

AWS는 서버리스 컴퓨팅 요구 사항을 어떻게 지원하나요?

Amazon Web Services(AWS)는 서버리스 컴퓨팅을 지원하는 다양한 서비스를 제공합니다.

Serverless on AWS에서는 서버를 관리하지 않고도 코드를 실행하고, 데이터를 관리하고, 애플리케이션을 통합하는 데 사용할 수 있는 기술을 자세하게 설명합니다. AWS 서버리스 기술은 Auto Scaling, 고가용성 및 사용량에 따른 결제 모델을 기본적으로 제공하여 민첩성을 개선하고 비용을 최적화합니다. 또한 이러한 기술을 사용하면 용량 프로비저닝 및 패치 적용과 같은 인프라 관리 작업이 필요하지 않으므로 고객을 위한 코드를 작성하는 데 집중할 수 있습니다. 

서버리스 애플리케이션은 200개 이상의 AWS 서비스와 기본적으로 통합되는 이벤트 기반 컴퓨팅 서비스인 AWS Lambda로 시작됩니다. 또한 다음과 같은 다양한 추가 지원 서비스를 제공합니다.

지금 계정을 만들어 AWS에서 서버리스를 시작하세요.

AWS의 다음 단계

무료 계정 가입

AWS 프리 티어에 즉시 액세스할 수 있습니다.

가입 
콘솔에서 구축 시작

AWS Management Console에서 구축을 시작하세요.

로그인