본문 바로가기

AWS Lambda ƛ/Lambda

AWS Lambda에 API Gateway를 연결하여 간단한 웹 서버 만들기

Lambda란 무엇인가?

# AWS Lambda를 사용하면 별도의 프로그램을 설치할 필요 없이 바로 사용이 가능하다는 장점이 있다.

손쉽게 서버를 구축하여 데이터를 입력으로 받고 처리하고 전달하는 기능을 수행한다.

별도의 서버나 인프라 환경을 항상 구비해두고 실행 시킬 필요 없이 필요할 때에만 실행 시켜 연산을 수행하고, 수행이 필요 없을때에는 리소스 자원을 내려놓는 역할을 하는게 AWS Lambda의 역할이다.

 

한마디로 AWS 람다는 함수라고 생각하는게 편하다.

여기서 함수를 작성해서 자동으로 동작하도록 한다 라는 의미로 생각하면 쉽다.

그리고 작성한 함수를 언제 동작시킬지에 대한 조건도 정할 수 있다.

 

특정 이벤트가 발생했을때 우리가 작성한 AWS Lambda 함수가 동작하도록 설정할 수 있고, 코드로 구현 할 수 있다.

여기서 말하는 이벤트의 종류는 다양한데,

1. 로그에 대한 처리

2. 클라이언트의 요청이 발생했을때 AWS Lambda를 호출하여 AWS Lambda를 별도의 웹서버 처럼 운영 할 수도 있다.

3. AWS Lambda는 연산을 처리 후 데이터베이스나, S3등에 결과를 기록 할 수 있다.

4. 처리한 데이터에 대한 결과를 다양하게 활용 할 수 있다.

 

인프라 구성

AWS 콘솔로 이동하여 람다 함수를 생성

보통 람다 함수를 생성할때는 node.js나 python을 활용한다.

파이썬을 활용하여 람다함수를 사용할 것이기 때문에 아래와 같이 설정한다.

약 1~2분 정도 후에 아래와 같이 하나의 람다 함수가 생성 된다.

람다는 사용한 만큼만 과금이 되며, 사용량이 적을 경우에는 거의 무료라고 볼 수 있다. 사용을 안할 경우 아주 소량의 금액만 청구 된다.

여기서 람다 함수는 어떤 조건이 발생 했을때 함수가 실행되도록 설정된 경우가 대부분 이다. 위에 람다 함수 개요 캡쳐 화면에서 + 트리거 추가 를 클릭하면 새로운 실행 조건을 생성 할 수 있다.

람다 함수의 기본 코드를 살펴보면 아래와 같다.

import json

def lambda_handler(event, context):
    # TODO implement
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

위의 코드를 보면 어떤 event가 발생 했을때 함수가 호출 된다고 볼 수 있다.

그렇다면 저 event를 언제 발생 시킬수 있을까? 람다 기본 화면에서 트리거 추가를 클릭하여 이벤트를 생성 할 수 있다. 이 생성된 이벤트가 event를 호출하고 해당 호출된 event값이 함수안에서 실행 된다고 볼 수 있다.

결과적으로 위에 트리거에서 어떤 event가 발생하면 lambda_handler(event, context): 여기 함수에 파라미터 값으로 event 함수 값이 들어오고 해당 코드를 실행 한다고 볼 수 있다.

import json

def lambda_handler(event, context):
    # 이벤트가 발생하면 무조건 'Hello Lambda!'라는 메세지를 반환 합니다.
    return {
        'statusCode': 200,
        'body': json.dumps('Hello Lambda!')
    }
    # 람다 핸들러에서 리턴 되는 값은 클라이언트에서 보여지는 값과 동일 하다.
    # 위의 코드에서의 리턴 값은 정상적으로 처리된 200 값과 body안에 출력하는 값을 넣어주어
    # 클라이언트 호출과 이벤트 발생 시 해당 값이 출력이 되도록 설정 한다.

위의 코드는 사용자가 해당 함수를 클릭했을때 무조건 상태 코드 200과 Hello Lambda!를 반환하도록 설정된 코드 이다.

자 그럼 이제 실제 트리거 서비스를 붙여서 해당 람다 함수가 구동 되도록 해보자.

트리거로는 API Gateway 라는 서비스를 활용해서 함수를 호출해 보자.

API 게이트 웨이 서비스를 트리거로 활용하여 아래와 같이 설정한다.

위에 사항에서 보안이 열기로 되어 있으면, API Gateway 주소만 다른 사용자가 알고 있다면 접속이 가능하다.

추가 세팅은 아래와 같이 기본 설정하고 추가를 클릭하여 생성을 한다.

생성을 하면 아래와 같이 API 게이트웨이의 엔드 포인트 주소를 확인 할 수 있다.

여기서 엔드포인트란 생성된 람다 서버로 바로 접근 가능한 주소라고 볼 수 있다.

위에 API 엔드포인트로 접속을 하면 아래와 같이 람다 코드에서 생성한 "Hello Lambda!"를 확인 할 수 있다.

위와같이 문자열을 출력하고 있는 하나의 웹 서버를 간단하게 생성이 가능하다.

'AWS Lambda ƛ > Lambda' 카테고리의 다른 글

Lambda@Edge란?  (0) 2024.01.11
Lambda Handler란?  (0) 2023.07.21
AWS API Gateway - RESTful API 생성하기 with Lambda  (0) 2021.12.24
AWS Lambda에서 특정 문장을 출력하기  (0) 2021.12.24
람다란?  (0) 2021.12.24