@Eeap
velog
@Eeap
전체 방문자
오늘
어제
  • 전체 (168)
    • osam (1)
    • Cloud (21)
      • Docker (2)
      • AWS (13)
    • AI & Data (7)
    • Algorithm (76)
      • Baekjoon (75)
      • Codeforces (1)
    • Language (18)
      • Java (18)
    • Back-end (17)
      • Spring (3)
      • JSP & Servlet (12)
      • Go (2)
    • 일상 (4)
    • 기타 (8)
    • git (1)
    • Infra (9)
      • Apache Kafka (5)
      • Kubernetes (4)
      • 기타 (0)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • AWS CodeCatalyst
  • Agent
  • java
  • converse api
  • sagemaker unified studio
  • 티스토리챌린지
  • bedrock api
  • knowledge bases
  • 심폴릭링크
  • SageMaker
  • 오블완
  • AWS CodeArtifact
  • flink
  • Python
  • 인터페이스
  • invokemodel api
  • AWS CodeStar
  • bedrock agent
  • bedrock
  • CLASS

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
@Eeap

velog

Cloud/AWS

AWS Lambda 내용 정리

2023. 5. 28. 22:16
반응형

AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있는 서버리스 컴퓨팅 서비스입니다! 보통 이벤트 기반 서버리스 컴퓨팅 서비스를 언급할 때 람다를 언급하게 되는 것 같아요

AWS Lambda를 사용하면 애플리케이션 코드를 실행하기 위해 인프라를 프로비저닝하거나 관리할 필요가 없기 때문에 코드를 더욱 빠르게 배포하고, 확장성 있는 애플리케이션을 빌드하고, 더욱 높은 가용성을 제공하는 데 집중할 수 있어요

그리고 람다는 사용한 만큼만 비용을 지불하고 함수 요청 수와 코드를 실행하는 데 걸리는 기간에 따라 요금이 청구돼서 만약 서버를 계속 띄워놓는 상황보다 필요할 때마다 처리하는 인프라가 필요하다면 람다가 비용적으로도 선택이 합리적이어서 어플리케이션을 람다로 구성하는 경우도 있더라구요! 하지만 그만큼 아키텍쳐는 복잡해진다는 단점도 있는 것 같아요ㅠㅠ

(요금 관련해서 추가적으로 궁금하시다면 아래 링크를 통해서 확인할 수 있습니다!)

https://aws.amazon.com/ko/lambda/pricing/

AWS Lambda는 여러 분야에서 사용되고 주로 데이터 처리, 웹 애플리케이션, 모바일 백엔드, 머신 러닝, 인공 지능 등에서 사용돼요! 그리고 Lambda 함수는 다양한 이벤트를 트리거로 사용할 수 있다고 해요! 예를 들어, Amazon S3의 객체가 업로드되거나 Amazon SNS 주제가 게시될 때 Lambda 함수를 트리거할 수 있어요

참고로 AWS Lambda 리소스 모델에서 함수에 사용할 메모리 양을 선택하면 이에 비례하여 CPU 용량과 기타 리소스가 할당된다고 해요. 메모리 크기가 증가하면 함수에 사용할 수 있는 CPU도 그만큼 증가하게 돼요

아래는 AWS Lambda를 사용하는 데에 도움이 되는 가이드라인이라고 하더라구요! 아래의 원칙에 맞게 람다 함수를 구성하시면 더 효율적으로 서비스를 이용하실 수 있을 것 같아요 :)

  1. 함수의 역할을 명확히 정의. AWS Lambda는 코드를 실행하는 데 필요한 모든 것을 관리하기 때문에 함수가 어떤 작업을 수행하는지 정확히 파악하여, 함수 이름, 인자 값, 반환 값 등을 명확히 정의!!
  2. 함수를 작게 유지 - AWS Lambda는 작은 함수를 더 빠르게 실행할 수 있어요. 함수가 복잡해지면 실행 시간이 늘어나며, 더 많은 메모리와 CPU 리소스가 필요!!
  3. 함수를 재사용 가능하도록 작성 - AWS Lambda 함수는 다른 AWS 서비스와 연결하여 사용할 수 있는데 이러한 이점 때문에 함수를 재사용 가능하도록 작성하면, 다른 애플리케이션에서도 쉽게 사용 가능!!
  4. 함수의 로깅을 구현 - AWS Lambda 함수는 CloudWatch Logs에 로그를 남길 수도 있어서 로그를 구현하여 함수의 동작 상태를 확인!
  5. 함수의 보안을 고려 - AWS Lambda 함수는 IAM 역할을 사용하여 다른 AWS 서비스와의 연결을 제어!
  6. 함수의 테스트를 꼼꼼히 수행 - AWS Lambda 함수는 로컬에서 테스트 가능 !
  7. 함수의 배포를 자동화 - AWS Lambda 함수는 AWS CodePipeline을 사용하여 자동으로 배포 가능!

다음 인터페이스 중 하나를 사용하여 Lambda 함수를 생성, 호출 및 관리할 수 있다고 해요!

  • AWS 관리 콘솔
  • AWS Command Line Interface(AWS CLI)
  • AWS SDK
  • AWS CloudFormation
  • AWS Serverless Application Model(AWS SAM)

마지막으로 Lambda 함수는 다음과 같은 구성 요소로 이루어져 있어요 :)

  • 함수 코드 - 실행할 코드이며, 코드는 트리거와 함께 Lambda 서비스에 업로드
  • 트리거 - Lambda 함수를 시작하는 이벤트
  • 이벤트 - 처리할 lambda 함수에 대한 데이터가 포함된 json 형식 문서로 런타임이 이벤트를 객체로 변환한 후 함수 코드에 전달해요. 즉 aws 서비스가 함수를 호출할 때 서비스가 이벤트의 형태로 넘어가게 돼요!
  • Instruction set architecture - lambda가 함수를 실행하는데 사용하는 컴퓨터 프로세서의 유형 (종류는 arm64와 x86_64 가 존재) 해당 레이어에서 사용할 코드와 라이브러리를 포함하는 zip 파일을 준비해야하고 이 파일은 콘솔이나 cli, sdk를 사용하여 레이어로 업로드 할 수 있어요!
  • runtime - 실행 환경에서 실행되는 언어별 환경을 제공
  • layer - 공통적으로 사용되는 코드와 라이브러리를 미리 패키징하여 쉽게 재사용할 수 있도록 해주는 방법. 함수당 최대 5개의 계층을 포함할 수 있어요!
  • 동시성 - 특정 시각에 함수가 제공하는 요청의 수로 함수가 지연 시간 없이 확장될 수 있어요. 함수가 호출되면 이벤트를 처리하도록 lambda가 인스턴스를 프로비저닝하는데 요청이 처리되는 동안 함수가 다시 호출되면 다른 인스턴스가 프로비저닝되어 함수의 동시성이 증가하게 돼요
  • execution runtime- 함수를 실행하는데 필요한 프로세스와 리소스를 관리

 

추가적으로 정리되면 더 업로드 할게요 ㅎㅎ:)

반응형
저작자표시 (새창열림)

'Cloud > AWS' 카테고리의 다른 글

Amazon SageMaker 개발 환경  (1) 2024.10.20
AWS Code Series를 이용한 자동화 구성하기  (0) 2024.04.15
AWS Cloudtrail & EventBridge를 이용해서 s3 작업에 대한 컨테이너 작업  (0) 2023.04.05
AWS CodeDeploy에 대해 알아보기  (0) 2023.04.02
AWS Kinesis Data Firehose를 consumer로 이용해서 AWS S3로 데이터 스트리밍  (0) 2023.03.25
    'Cloud/AWS' 카테고리의 다른 글
    • Amazon SageMaker 개발 환경
    • AWS Code Series를 이용한 자동화 구성하기
    • AWS Cloudtrail & EventBridge를 이용해서 s3 작업에 대한 컨테이너 작업
    • AWS CodeDeploy에 대해 알아보기
    @Eeap
    @Eeap

    티스토리툴바