비전공자를 위한 AWS Lambda 1편 — 소개

완전 베이직한 내용과 설명중심

주의: 지난번 Labmda와 관련한 너무 Advanced한 내용을 다루어서 이번엔 Lambda에 대해 아무것도 모르는 분들을 위한 내용입니다.

Serverless 중요하다는데 도대체 뭐야?

서버리스 특히 AWS Lambda와 Google Cloud Function은 흔히 완전관리형서비스 또는 서버가 없는 컴퓨팅이라고 합니다. 용어가 너무 딱딱한데 아직 뒤로가기를 누르시기는 이릅니다…

조금 쉽게 말해 OS가 필요없는 컴퓨팅을 말합니다. 예를들어 우리가 일반적으로 로컬컴퓨터에서 노드서버를 구축한다거나 JSP를 구축할때 내 OS 버전에 맞는 설치프로그램이 필요합니다. 벌써부터 OS에 종속적인 행동이 들어가게됩니다. 즉 최소한 OS단계 부터는 환경에 맞는 설정을 해주어야합니다.

서비스 단계에서의 계층도

OS에 설치하였다는 뜻은 그 위의 Middleware, Runtime, Data까지 설정을 해주어야함을 말합니다. 하지만 Serverless는 딱 Application 레벨에서만 생각을하면됩니다. 그것도 웹브라우저 안에서 할 수 있습니다.

서버리스의 등장배경

Serverless의 배경은 위 이미지에 나와있는 IaaS,Paas,Saas와 레이어 7계층 이야기보다는 조금 쉽게 접근하겠습니다. 맨 처음 클라우드나 데이터센터가 등장하기전 개발자는 직접 하드웨어를 다루어야했습니다. 사용자가 몰리나요? 서버를 구매해야합니다. 그리고 주문한 서버가 오는데 1~2주씩 기다려야합니다. 서버가 왔다고 해결이 될까요? 이제 네트워크 설정부터 시작해야합니다(상단 Traditional IT) 하지만 AWS와 같은 클라우드가 나오면서 우리는 서버를 늘리거나 초기세팅등을 웹브라우저와 API를 통해서 구축할 수 있게 되었습니다. 네트워크,스토리지,서버를 AWS에서 해주는 IaaS의 등장이죠.

우리가 흔히 알고있는 AWS의 EC2같은 서비스입니다. 더이상 서버를 구매하거나 네트워크를 설정할 필요 없이 웹브라우저와 API만으로 설정이 가능합니다. 하지만 여전히 OS를 선택해야하고 미들웨어 런타임역시 마찬가지입니다.코드와 관련없는 이런부분들을 해결하고자 서버리스가 등장하였습니다.

다른거 신경쓰지말고 코드에만 집중하자!

OS와 미들웨어 심지어 런타임(어떤 언어를 쓸지 등등)까지 알아서 세팅해주니 우린 딱 코드만 작성하면됩니다. AWS 람다를 흔히 람다함수라고 이야기를 합니다. (자바에서의 Lambda 함수와는 개념이 완전히 다릅니다.) 한번 초등학교때 배운 함수의 정의를 보겠습니다.

(참고로 저는 7차교육과정이라… 교육과정에따라 다를 수 있습니다?!)

6을 넣으면 16이 나옵니다. 함수를 더하기 11함수로 바꾼다면 17나오겠죠. 이처럼 어떤 인자를 넣으면 출력인자를 내뱉습니다. 람다도 마찬가지입니다.

서버이벤트발생(Input) -> SNS를 통해 문자전송(Output)
S3로 이미지 전송(Input) -> S3를 통해 압축된 이미지 전송(Output)
Restful을 통해 데이터요청(Input) -> 데이터에 저장(Output)

다음편에선 람다를 문자로 보내보는 실습을 하겠습니다.

https://medium.com/@herryhan2435/%EB%B9%84%EC%A0%84%EA%B3%B5%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-aws-lambda-2%ED%8E%B8-%EB%9E%8C%EB%8B%A4%EB%A1%9C-%EB%AC%B8-3b73f43d2e20