티스토리 뷰

IT공부/프로그래밍

AWS SAM

chmod755 2025. 3. 17. 22:39
반응형

AWS SAM(Serverless Application Model)은 AWS에서 제공하는 서버리스 애플리케이션 구축, 배포, 및 운영을 쉽게 만들어주는 오픈 소스 프레임워크입니다. 서버리스를 쉽게 구축할 수 있도록 AWS Lambda, API Gateway, DynamoDB 같은 서비스들을 편리하게 다룰 수 있게 도와줍니다.


AWS SAM이란?

AWS SAM은 서버리스 애플리케이션을 손쉽게 만들고 관리할 수 있도록 도와주는 도구입니다. 특히 AWS Lambda 기반의 서버리스 애플리케이션을 YAML 파일로 정의할 수 있게 해줍니다.


💡 사용 이유 (왜 사용하나요?)

  1. 간편한 배포 관리:
    서버리스 애플리케이션의 배포 과정을 자동으로 처리해줍니다. Lambda, API Gateway, DynamoDB 등을 코드 한 번으로 배포 가능.
  2. 로컬 개발 및 테스트 지원:
    로컬에서 Lambda 함수를 테스트할 수 있습니다. 즉, AWS 클라우드에 배포하기 전에 내 컴퓨터에서 기능 확인이 가능합니다.
  3. 템플릿 기반 정의:
    template.yaml 파일로 애플리케이션의 구성 요소를 정의합니다. 코드의 인프라 관리가 쉬워집니다.
  4. AWS CloudFormation과 호환성:
    AWS SAM은 AWS CloudFormation의 확장판이라서 기존 인프라 설정과 통합이 쉽습니다.

📂 구성 요소 (주요 개념)

  1. AWS Lambda:
    서버를 설정할 필요 없이 코드를 실행하는 컴퓨팅 서비스. (예: 이미지 변환, 데이터 처리 등)
  2. Amazon API Gateway:
    HTTP 요청을 트리거로 Lambda를 실행하거나 REST API를 구축하는 서비스.
  3. Amazon DynamoDB:
    NoSQL 데이터베이스 서비스로, 서버리스 앱의 데이터를 저장할 때 사용.
  4. SAM 템플릿 (template.yaml):
    애플리케이션을 구성하는 Lambda 함수, API, 권한 등을 정의하는 파일.

📌 예제 (간단한 API 구축)

아래는 AWS SAM으로 API를 만들어서 Lambda 함수를 호출하는 간단한 예제입니다.

template.yaml

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
  HelloWorldFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: app.lambda_handler
      Runtime: python3.9
      Events:
        HelloWorldApi:
          Type: Api
          Properties:
            Path: /hello
            Method: get

app.py (Lambda 함수 코드)

import json

def lambda_handler(event, context):
    return {
        "statusCode": 200,
        "body": json.dumps({
            "message": "Hello, World!"
        })
    }

🔨 사용 방법 (간단히 따라하기)

  1. AWS SAM CLI 설치:
  2. pip install aws-sam-cli
  3. 로컬에서 테스트:
  4. sam build sam local invoke HelloWorldFunction
  5. 배포:
  6. sam deploy --guided

📚 사용 예시 (언제 활용하면 좋을까?)

  • 사용자 요청에 따라 이미지를 실시간으로 변환하고 결과를 반환하는 서비스.
  • 특정 데이터 요청 시 DynamoDB에서 데이터를 검색하여 반환하는 서버리스 API.
  • 웹 애플리케이션의 백엔드 API 구축 (예: 로그인 처리, 데이터 처리 등).

📖 정리

AWS SAM은 서버리스를 빠르고 쉽게 구축하는 도구입니다. AWS Lambda, API Gateway 같은 서비스들을 하나의 템플릿 파일로 정의할 수 있고, 로컬에서 테스트도 할 수 있어 개발 효율성이 뛰어납니다.

본 글은 ChatGPT에서 제공한 내용을 바탕으로 정리한 글입니다.

반응형

'IT공부 > 프로그래밍' 카테고리의 다른 글

크론잡(Cron Job)이란?  (2) 2025.07.27
react import VS import {} 차이점  (0) 2025.02.09
React 복잡한 Route(라우트) 관리 방법  (0) 2025.02.06
React Route  (0) 2025.02.06
React 기초  (1) 2025.02.05
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함