AWS lambda

greenTea·2024년 2월 14일
0

람다 함수 소개

람다 함수는 AWS에서 제공하는 서버리스 컴퓨팅 서비스입니다. 사용자는 이 서비스를 통해 코드를 실행할 수 있고, 필요에 따라 코드를 트리거할 수 있습니다. 람다 함수는 여러 이벤트에 응답하여 실행되며, 이벤트는 예약된 시간, HTTP 요청, 메시지 큐 등과 같은 다양한 소스에서 발생할 수 있습니다.

람다 함수는 일반적으로 다음과 같은 장점을 가지고 있습니다:

  • 확장성: 필요한 만큼의 리소스를 동적으로 할당하여 스케일링이 가능합니다.
  • 통합: 다양한 AWS 서비스와 쉽게 통합할 수 있습니다.
  • 이벤트 기반 실행: 특정 이벤트가 발생했을 때만 실행되므로 자원을 효율적으로 사용할 수 있습니다.
  • 지속적인 배포: 코드를 수정하고 배포하는 과정이 간편합니다.

람다 함수는 서버리스 아키텍처를 구축하는 데 중요한 구성 요소이며, 서버 관리 및 인프라 구축에 대한 부담을 줄여줍니다.

람다 함수 생성

  1. AWS 콘솔에서 람다 함수 생성

    Lambda 생성

    AWS 콘솔에서 람다를 생성하려면, AWS Management Console에 로그인하고, Lambda 서비스로 이동한 다음, "함수 생성"을 클릭합니다.

  2. 함수 구성

    함수 구성

    함수를 생성하기 위해 여러 옵션을 설정할 수 있습니다. 여기서는 언어를 파이썬으로 선택하고, 역할(role)을 "새 역할 생성"으로 설정합니다.

    역할을 생성하는 화면에서는 역할 이름과 기본 역할을 선택할 수 있습니다. 기본 역할을 사용하면 람다 함수에서 AWS 리소스에 액세스할 수 있는 권한이 부여됩니다.

  3. 함수 생성 완료

    역할 생성

    함수 생성 완료

    람다 함수를 생성하면 위와 같은 화면이 나타납니다. 여기서는 함수 이름과 실행 역할을 확인할 수 있습니다.

2. 테스트: 람다의 작동 확인하기

람다가 실제로 어떻게 작동하는지 확인하기 위해 요청을 전송해보았습니다.

람다 작동 확인

람다 작동 확인

3. 로그: 람다의 작동 기록 확인하기

람다를 생성하면 자동으로 다음과 같은 로그들이 기록되고 보여집니다. (참고로, 결과를 보려면 몇 분 정도 기다려야 합니다.)

람다 로그

4. event, context: 작동 상황을 이해하기 위한 추가 코드

기존 코드에 아래와 같은 코드를 추가했습니다.

람다 코드 추가

이후에 다시 배포를 하고, 모니터링 탭의 CloudWatch 로그로 가봅니다.

CloudWatch 로그

로그 스트림 중에서 가장 최신의 로그 스트림을 선택합니다.

최신 로그 스트림 선택

최신 로그 스트림 선택

로그를 확인하면, print로 출력했던 값들이 보이는 것을 알 수 있습니다.

람다는 기본적으로 CloudWatch에 로그를 자동으로 남기므로, 나중에 여러 요청에 대한 로그를 쉽게 확인할 수 있습니다.

람다를 활용하면, 개발 과정에서 발생하는 다양한 상황에 대한 로그를 효과적으로 관리할 수 있습니다. 이는 문제 해결과 최적화 과정에서 큰 도움이 됩니다.

기타: 람다의 다양한 기능들

람다 구성

람다 구성에 들어가면 다양한 기능들을 제어할 수 있습니다. 이를 통해 람다의 작동 방식을 세밀하게 조정하고, 필요한 상황에 맞게 맞춤 설정할 수 있습니다.

1. 트리거: 람다 호출 조건 설정하기

트리거를 통해 특정 상황에서 람다를 호출할 수 있도록 설정할 수 있습니다. 이를 통해 람다가 원하는 시점에 작동하도록 만들 수 있습니다.

2. 대상: 람다 결과값 전송하기

대상을 지정하면, 람다의 결과값을 상태에 따라 지정 대상으로 값을 보낼 수 있습니다. 이는 람다의 결과를 다른 AWS 서비스나 사용자에게 적절히 전달하기 위해 사용됩니다.

3. 동시성: 람다의 확장 제어하기

람다는 서버리스 서비스로, 여러 요청이 들어오면 자동으로 확장되는 특징이 있습니다. 동시성 탭에서는 이 확장의 정도를 제어할 수 있습니다.

동시성 제어

람다의 이러한 특성들은 서버리스 아키텍처를 구성하고, 다양한 상황에 유연하게 대응하기 위한 강력한 도구가 될 수 있습니다. 이를 통해 개발자는 서비스의 성능과 안정성을 향상시킬 수 있습니다.

전부 다뤄보면 좋겠지만 람다가 양이 방대하네요...

profile
greenTea입니다.

0개의 댓글