Skip to content

KR_Cloud_Native

somaz edited this page Mar 30, 2026 · 1 revision

클라우드 네이티브 & 서버리스

3. 클라우드 네이티브 어플리케이션(Cloud Native Application)이란?

클라우드 네이티브 애플리케이션은 처음부터 클라우드 컴퓨팅 아키텍처의 확장성, 탄력성, 유연성을 활용하도록 설계되었다. 이는 퍼블릭, 프라이빗, 하이브리드 클라우드와 같은 역동적인 환경에서 확장 가능한 애플리케이션을 구축하고 실행하는 데 초점을 맞춘 기술 모음을 활용한다. 클라우드 네이티브 애플리케이션은 애플리케이션이 실행되는 위치뿐만 아니라 애플리케이션이 구축, 배포 및 운영되는 방식에 관한 것이다. 마이크로서비스, 컨테이너, DevOps 및 탄력성을 강조하는 클라우드 네이티브 개발은 클라우드 컴퓨팅의 이점을 극대화하여 보다 민첩하고 확장 가능하며 안정적인 소프트웨어를 달성하는 것을 목표로 한다.

  • Designed for the Cloud
  • Microservices Architecture
  • Containers
  • DevOps and Continuous Delivery
  • Scalability
  • Resilience and Fault Tolerance
  • API-based Communication
  • Infrastructure as Code (IaC)

4. 서버리스 컴퓨팅(Serverless Computing)

서버리스 컴퓨팅은 클라우드 제공 업체가 서버의 할당 및 프로비저닝을 동적으로 관리하는 클라우드 컴퓨팅 실행 모델이. 서버리스 아키텍처를 사용하면 사용자는 기본 인프라에 대해 걱정하지 않고 코드를 작성하고 배포할 수 있다. "서버리스"라는 이름은 다소 오해의 소지가 있지만, 서버는 여전히 사용되지만 개발자가 이러한 서버의 관리에 대해 걱정할 필요가 없다는 뜻이다.

주요 특징

  • 이벤트 주도: 서버리스 애플리케이션은 종종 이벤트 주도적이며, 다양한 클라우드 서비스(예: HTTP 요청, 파일 업로드, 데이터베이스 이벤트)에서 이벤트 또는 트리거에 응답하여 실행된다.
  • 확장성: 애플리케이션 수요에 따라 자동으로 확장되며, 하루에 몇 번의 요청에서 초당 수천 번의 요청까지 처리할 수 있다.
  • 사용량 기반 비용: 애플리케이션에 의해 실제로 소비된 자원의 양에 기반한 비용이 청구되며, 용량의 사전 구매 단위에 대한 비용이 아니다.

장점

  • 서버 관리 불필요: 개발자는 서버를 프로비저닝하거나 유지 관리할 필요가 없다. 클라우드 제공 업체가 모든 서버 관리 작업을 처리한다.
  • 비용 효율적: 코드가 실행되지 않을 때는 비용이 청구되지 않으므로, 실제 계산 시간에 대해서만 비용을 지불한다.
  • 확장성: 애플리케이션의 필요에 따라 인프라가 자동으로 확장되거나 축소된다.

사용 사례

  • 웹 애플리케이션: API 요청 또는 웹 애플리케이션의 백엔드 서비스 제공.
  • 데이터 처리: 데이터베이스 변경 이벤트 처리, 데이터 스트림 처리, 파일 업로드 처리.
  • 통합: 제3자 서비스 및 API와의 연결 및 확장.

제공업체

주요 서버리스 컴퓨팅 제공업체로는 다음이 있다.

  • AWS Lambda
  • Azure Functions
  • Google Cloud Functions
  • IBM Cloud Functions

예시

현재 시간을 반환하는 간단한 서버리스 함수(AWS Lambda in Python) 예시:

import json
import datetime

def lambda_handler(event, context):
    current_time = datetime.datetime.now().isoformat()
    return {
        'statusCode': 200,
        'body': json.dumps({'current_time': current_time})
    }

목록으로 돌아가기

Clone this wiki locally