AWS 자원 관리 자동화 서비스, ‘람다’

가 +
가 -

지난해 11월 아마존웹서비스(AWS)는 개발자 행사 ‘AWS 리인벤트’에서 새로운 서비스를 대거 출시했다. 그 중 ‘EC2 컨테이너 서비스’, ‘오로라’, ‘람다’ 등이 많은 관심을 받았다. 이 서비스들은 아직 평가판으로 공개됐으며, 사용자들 의견을 받고 있다. 마쿠 레피스토 AWS 아태지역 기술 에반젤리스트는 3월3일 한국을 방문해 람다를 소개하고 구체적인 활용법을 알리는 시간을 가졌다.

AWS_Lamda_05

▲마쿠 레피스토 AWS APAC 기술 에반젤리스트

람다는 자동으로 컴퓨팅 자원을 관리하는 컴퓨팅 서비스이다. ‘이벤트’에 응답해 개발자 작성한 소스코드를 실행하는 게 핵심 기능이다. 마쿠 레피스토 에반젤리스트는 람다를 “이전에 없던 혁신적인 기술”이라 설명하며, 이를 스프레드시트 기능에 비유해 소개했다.

스프레드시트 파일에 수입과 지출, 합계라는 칸이 있다고 치자. 수입 칸에 300을, 지출 칸에 –150을 입력하고 합계에는 ‘SUM()’이라는 함수를 입력했다. SUM()은 수입 칸에 있는 숫자와 지출 칸에 있는 숫자를 자동으로 더해 결과 값을 표시한다. 마쿠 레피스토 에반젤리스트는 “빈칸에 숫자 –150를 입력하는 그 자체를 ‘이벤트’라고 정의할 수 있다”라고 설명했다.

숫자를 입력하지 않아도, SUM() 함수가 작동했을까? 아니다. SUM() 함수는 숫자가 입력돼야만 숫자를 합하는 고유의 기능을 수행할 수 있다. 람다 역시 특정 이벤트가 발생했을 때만 함수가 작동된다. AWS가 람다를 ‘이벤트 기반 컴퓨팅 서비스(An event-driven computing service for dynamic applications)’라고 표현하는 것도 이 때문이다. 현재 람다는 ‘S3’ 버킷 알림, ‘다이나모DB’ 스트림이나 ‘키니시스’ 스트림 이벤트, 커스텀 이벤트에서 얻은 정보로 함수를 실행시킨다.

AWS_Lamda_03

▲지난 11월 ‘AWS 리인벤트’ 행사에서 람다를 소개하는 모습. AWS는 람다를 ‘이벤트 기반 컴퓨팅 서비스’라고 표현했다. (사진 : AWS 유튜브 영상)

좀 더 자세히 살펴보자. 블로그 사진 썸네일을 만드는 함수가 있다고 치자. 사용자는 썸네일을 생성하는 애플리케이션을 만들 수 있다. 이 애플리케이션은 블로그에 있는 사진을 읽고 크기를 조절하고 웹 저장소에 올리는 기능을 수행한다. 작은 기능이지만 애플리케이션을 실행하려면 운영체제, 미들웨어, 네트워크 등 인프라가 필요하다.

람다를 이용하면 다르다. 코드만 있으면 된다. 해당 함수를 실행시키기 위한 인프라 자원은 걱정할 필요 없다. 보안도 알아서 관리해준다. 해당 함수가 잘 작동되는지 분석 그래프를 볼 수도 있다. 마쿠 레피스토 에반젤리스트는 “서버 없이도 원하는 서비스를 만들 수 있다”라고 설명했다.

AWS_Lamda_07

▲람다는 사용자가 원하는 함수를 직접 작성할 수 있도록 지원한다(사진 : AWS 블로그)

AWS_Lamda_02

▲썸네일 생성하는 람다 함수의 예(사진 : 마쿠 레피스토 발표 자료)

AWS_Lamda_04

▲썸네일 생성하는 람다 함수 소스코드(사진 : 마쿠 레피스토 발표 자료)

AWS_Lamda_06

▲썸네일 생성하는 람다 함수를 모니터링하는 기능(사진 : 마쿠 레피스토 발표 자료)

마쿠 레피스토 에반젤리스트는 람다의 장점으로 ‘저렴한 가격’을 내세웠다. 썸네일 애플리케이션을 AWS 클라우드 인프라에 올린다고 치자. 대표적인 컴퓨트 서비스 ‘EC2’는 보통 1시간에 1센트에서 1달러 정도 금액을 내고 이용할 수 있다. 이용 단위가 1시간이다. 썸네일이 하루에 두세번만 생성돼도 24시간 내내 EC2를 이용해야 할지도 모른다. 만약에 함수 호출을 기준으로 요금을 내면 어떨까? 기존보다 요금이 줄어들 수 있다. 코드 실행에 필요한 컴퓨팅 시간과 서비스된 요청에 대해서만 비용을 지불하기 때문이다.

람다 요청은 100밀리초 단위로 금액을 책정한다. 람다 요청 1건당 가격은 0.0000002 달러다. 썸네일 함수 1개가 호출되는 데 500밀리초가 걸렸다면, 람다는 5건이 이뤄졌다고 본다. 호출되는 시간이 빠른 가벼운 함수라면 비용은 더 내려간다. 만약 다른 AWS 서비스를 사용하거나 데이터를 전송한다면 추가 요금이 부과될 수 있다.

현재 람다는 노드JS로 작성된 코드만 지원된다. 마쿠 레피스토 에반젤리스트는 “지원 범위를 점차적으로 확대할 것”이라며 “사물인터넷(IoT), 스트리밍 프로세싱, 인덱싱, 동기화 기술 등에 활용하기 좋다”라고 설명했다.

AWS_Lamda_01

▲람다를 활용할 수 있는 분야(사진 : 마쿠 레피스토 발표 자료)

지난 11월 AWS 리인벤트 행사에 참여한 염동훈 AWS 한국지사장은 람다에 대한 큰 기대를 내비쳤다. 사물인터넷 사업과 활용될 요소가 많기 때문이다. 그는 “이틀간 행사에서 첫째 날은 ‘오로라’, 둘째 날은 ‘람다’ 기술이 가장 인상적”이라며 “시간이 지날수록 람다를 기반으로 새로운 서비스들이 많이 나올 것”이라고 말했다.