Top

실전 예제로 배우는 AWS Lambda [서버리스 애플리케이션 구축 방법]

  • 원서명Mastering AWS Lambda: Learn how to build and deploy serverless applications (ISBN 9781786467690)
  • 지은이요한 와디아(Yohan Wadia), 우디타 굽타(Udita Gupta)
  • 옮긴이장준호
  • ISBN : 9791161751207
  • 30,000원
  • 2018년 02월 28일 펴냄
  • 페이퍼백 | 356쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약

서버리스 컴퓨팅의 명확한 개념과 장단점을 소개하고, AWS Lambda 함수의 설계 및 작성, 배포, 테스트, 모니터링, 트러블슈팅을 다룬다. 또한 실전 예제를 중심으로 AWS Lambda 함수를 S3, DynamoDB, SNS, CloudWatch, Kinesis, API Gateway, Step Functions 등 다양한 AWS 서비스와 연동하는 법을 설명한다. 아울러 AWS Lambda를 기반으로 GitHub와 Slack 등 외부 서비스 활용 방안, EC2 인스턴스 관리, 차세대 챗봇 제작 및 IoT 서비스 데이터를 처리하는 방법을 소개한다. 다양한 예제를 따라가다 보면 AWS Lambda의 사용법을 충분히 숙지함은 물론, 어디에 접목해 활용할 수 있을지 통찰력을 얻을 수 있을 것이다.

이 책에서 다루는 내용

■ 서버리스 컴퓨팅과 서버리스 애플리케이션의 명성, 중요성 및 비즈니스 이점 이해
■ AWS Lambda와 함께 서버리스 세계로 입문하여 구성 요소 파악
■ Node.js를 사용해 Lambda 함수를 효과적으로 설계, 개발, 테스트하는 방법
■ 서버리스 애플리케이션의 코드 작성법과 모범 사례
■ AWS Lambda와 S3, DynamoDB, SNS, Kinesis 서비스 이벤트 매핑 방법
■ AWS CloudWatch와 Datadog, Loggly를 사용해 서버리스 애플리케이션을 효과적으로 모니터링하고 트러블슈팅하는 방법
■ 서버리스 애플리케이션 프레임워크(SAF)와 다양한 AWS 서비스를 활용해 AWS Lambda, DynamoDB, API Gateway로 구성된 서버리스 애플리케이션을 설계 및 개발하는 방법
■ Lambda의 풍부한 사용 사례를 알아보고 운영 환경에 적용하는 방법
■ Lamgda@Edge, Lambda Chatbot, Greengrass 등 AWS Lambda의 미래

이 책의 대상 독자

서버리스 컴퓨팅을 속속들이 배우고 AWS Lambda를 활용해 서버리스 컴퓨팅을 구현하고자 하는 독자를 위한 책이다. Java와 Node.js 등 기본적인 개발 지식과 리눅스 환경에서 실습 예제를 따라할 수 있는 실력을 갖추고 있으며, AWS EC2와 IAM 등에 대한 이해가 있다면 수월할 것이다.

이 책의 구성

1장, 'AWS Lambda 소개'에서는 서버리스 컴퓨팅이 도입된 계기와 일반적인 장점을 살펴보고, AWS Lambda를 상세히 다룬다. AWS 관리 콘솔과 AWS CLI를 사용해 AWS Lambda를 시작하기 위한 첫 번째 단계인 Lambda 함수 배포 방법을 알아본다.
2장, 'AWS Lambda 함수 작성'에서는 Lambda 함수 작성 방법과 구성 요소의 기본 개념을 다룬다. 버전 관리와 별칭, 환경변수 등을 쉽게 따라 할 수 있는 예제와 함께 살펴본다.
3장, 'AWS Lambda 함수 테스트'에서는 코드 결함과 버그와 관련해 함수 테스트의 전반적인 중요성을 설명한다. Mocha와 Chai라는 훌륭한 테스트 프레임워크를 소개하고, 함수를 Lambda에 배포하기 전 로컬에서 테스트하는 방법을 알아본다.
4장, '이벤트 중심 모델'에서는 이벤트 중심 시스템의 개념을 소개하고 실제로 동작하는 방식을 설명한다. 이벤트 매핑과 일부 손쉽게 복사해 사용할 수 있는 실제 사용 사례를 기반으로 Lambda의 이벤트 중심 모델이 어떻게 동작하는지 자세히 관찰한다.
5장, '외부 서비스를 사용한 AWS Lambda 확장'에서는 웹훅의 개념과 중요성을 소개하고, 타사 서비스와 서버리스 함수를 연결하는 방법을 설명한다. Lambda 함수를 실 환경에서 사용하는 Teamwork, GitHub, Slack 서비스와 통합하는 방법을 살핀다.
6장, 'AWS Lambda와 서버리스 애플리케이션 구축 및 배포'에서는 SAM과 Step Functions와 같은 AWS 서비스를 사용해 확장 가능한 서버리스 애플리케이션 구축 예제를 실습해본다.
7장, 'AWS Lambda 모니터링과 트러블슈팅'에서는 서버리스 애플리케이션을 AWS CloudWatch와 X-Ray를 사용해 모니터링하는 방법을 설명한다. 또한 Datadog와 Loggly라는 타사 도구를 소개하고 함수를 효과적으로 모니터링하고 로깅하는 방법을 다룬다.
8장, '서버리스 애플리케이션 프레임워크 소개'에서는 서버리스 프레임워크의 개념과 이점을 간략히 소개하고, 실습 예제를 통해 서버리스 프레임워크를 사용한 개발 및 배포에 중점을 둔다.
9장, 'AWS Lambda 사용 사례'에서는 따라 하기 쉬운 예제 코드와 함께 실제 서버리스 사용 사례를 폭넓게 보여준다.
10장, 'AWS Lambda의 미래'에서는 서버리스 애플리케이션의 발전에 대한 다음 단계를 요약하고, 곧 새롭고 개선된 Lambda의 모습을 예상해본다.

저자/역자 소개

지은이의 말

AWS는 클라우드 컴퓨팅 시장을 주도하는 선두 기업이라 할 수 있다. EC2와 S3 등 기본적인 서비스를 제공하기 시작한 후, 많은 발전을 이룩했다. 오늘날 AWS는 IoT에서 머신 러닝, 이미지 인식, 챗봇 프레임워크에 이르기까지 폭넓은 서비스를 지원한다. 최근 이목을 끌고 있는 서비스는 AWS Lambda다. Lambda는 사용하기 쉽고 간단하며, 매우 효과적으로 확장 가능한 컴퓨팅 서비스다. 게다가 서버리스 이벤트 중심 시스템과 애플리케이션을 개발할 수 있는 강력한 플랫폼을 제공한다.
이 책은 서버리스 컴퓨팅의 상세한 개념과 장점, 사용 사례를 소개하고 AWS Lambda를 자세히 알아본다. 또한 AWS Lambda가 개발자에게 제공하는 서비스, 즉 Lambda 함수의 설계, 작성, 테스트, 모니터링, 트러블슈팅 방법을 배운다. 실제로 사용할 수 있는 다양한 예제와 사용 사례를 바탕으로 샘플 코드를 함께 제공하므로 서버리스 애플리케이션을 빠르게 접해볼 수 있다.
이 책을 읽고 나면 AWS Lambda 서비스를 능숙하게 다룰 수 있고 필요한 기술을 터득할 수 있을 것이다.

지은이 소개

요한 와디아(Yohan Wadia)

클라우드 업계에서 7년 이상 경험을 쌓은 고객 중심의 에반젤리스트이자 기술자로, 고객이 클라우드 환경에서 성공할 수 있게 돕는 데 주력한다. 세계 유수 IT 기업의 기술 컨설턴트로서 아마존 웹 서비스, 윈도우 애저, 구글 클라우드 플랫폼을 기반으로 클라우드 컴퓨팅을 활용하고자 하는 고객에게 구현 서비스와 실천 지침을 제공, 기업 발전에 실용적인 솔루션을 고안할 수 있도록 도움 준다. 『Learning VMware vCloud Air』(Packt, 2015), 『AWS Administration – The Definitive Guide』(Packt, 2016)를 저술했다. 클라우드 플랫폼과 기술을 이야기하고, 블로그를 운영하며 사람들에게 관련 교육을 제공하는 것을 즐긴다.

우디타 굽타(Udita Gupta)

아마존 웹 서비스 클라우드 플랫폼에서 맞춤형 솔루션을 개발하는 열정 있고 노련한 클라우드 엔지니어다. AWS 공인 솔루션 아키텍트로, 신기술을 개발 탐구하고 재사용 가능한 구성 요소와 솔루션 설계를 즐긴다. IoT와 AI와 같은 다가올 기술과 더불어 서버리스 패러다임을 좋아한다. 매우 활발한 창작가이자 열혈 독서가로 다양한 종류의 책을 읽으며 시간을 보낸다. 특히 셰릴 샌드버그(Sheryl Sandberg)와 할레드 호세이니(Khaled Hosseini)의 책을 좋아한다.

옮긴이의 말

서버리스(serverless)를 이야기하면 AWS Lambda가 빠질 수 없다. AWS Lambda는 요청 수에 따라 요금을 내는, 서버리스 서비스 개발에 특화된 실속 있는 서비스다. 불과, 몇 년 전만 해도 클라우드 컴퓨팅의 시대라고 여겼지만 이제는 서버리스 컴퓨팅이 새로운 패러다임으로 떠오르고 있다.
서버리스는 무궁무진하게 활용할 수 있지만, 만능이 아니라는 점을 기억해야 한다. 아직 서버리스 생태계는 성숙과 진화의 단계에 놓여 있다. 서버리스 서비스에 특화된 모니터링 도구가 부족해 장애 대처에 어려움을 겪거나 함수 자원 사용에 명확한 기준이 없어 난항을 겪을지 모른다. 하지만 서버리스 생태계는 급속도로 성장하고 있으며, 세계 유수 기업에서 AWS Lambda를 운영 환경에 도입해 사용 중이다.
사실상 서버리스 생태계에서 부족한 부분은 기술이 아니라, 적재적소에 사용하는 기준일지도 모른다. 요구 사항을 명확히 하고 필요한 상황에 서버리스 아키텍처를 도입한다면 확장성과 비용 측면에서 큰 효과를 얻을 수 있는 것은 두말할 필요도 없다. 아무리 좋은 도구라도 잘못 사용하면 흉기가 될 수 있듯, 적절히 서버리스를 활용해 그 진가를 발휘하도록 힘써야 한다.
게다가 AWS는 무서운 속도로 성장하고 있다. 이 책이 출간된 지 3개월 만에 AWS Lambda에 다양한 업데이트 소식이 들려왔다. 함수 최대 메모리 용량 2배 증가, 동시성 한도 설정, 클라우드 기반 통합 개발 환경인 Cloud9 지원 등 지속해서 AWS Lambda 업데이트가 이뤄지고 있다. 무엇보다 AWS Lambda 함수를 손쉽게 편집할 수 있도록 웹 콘솔 UI가 대폭 변경됐다.
번역을 마무리한 시점에 콘솔 환경이 업데이트됐지만, 독자 여러분이 예제를 따라 하기 쉽도록 다시 한 번 캡쳐해 일일이 편집했다. 혹여나, 부족한 부분이 있다면 미리 양해를 구하며 잘못된 사항은 지적해주길 바란다. 아울러 이 책을 밑거름 삼아 AWS 한국 사용자 모임 AWSKRUG에서 주최하는 각종 학술회와 소모임, 커뮤니티를 이용하면 AWS Lambda의 지식을 한층 더 넓혀 갈 수 있으리라 생각한다. 모쪼록 이 책이 서버리스 컴퓨팅 세계에 입문할 수 있는 훌륭한 지침서가 되길 기원한다.

옮긴이 소개

장준호

배우고 학습하는 것을 즐기는 평범한 개발자다. 장인 개발자로 한 걸음 더 도약하기 위해 늘 노력하고 있다.

목차

목차
  • 1장. AWS Lambda 소개
    • 서버리스 컴퓨팅이란?
      • 서버리스 컴퓨팅의 장단점
    • AWS Lambda 소개
      • 동작 방식
    • AWS Lambda 시작하기
      • AWS 관리 콘솔 이용하기
      • CLI 이용하기
    • 가격 정책 및 제약 사항
    • 향후 계획 수립
    • 요약

  • 2장. AWS Lambda 함수 작성
    • Lambda 프로그래밍 모델
      • 핸들러
      • 컨텍스트 객체
      • 로깅
      • 예외 및 오류 처리
    • 버전 관리 및 별칭
      • 환경변수
    • 패키징 및 배포
      • APEX
      • Claudiajs
    • 권장 사항 및 모범 사례
    • 향후 계획 수립
    • 요약

  • 3장. AWS Lambda 함수 테스트
    • Lambda 함수 테스트의 필요성
      • AWS 관리 콘솔을 사용해 수동으로 테스트하기
      • Mocha와 Chai를 사용해 테스트하기
      • NPM 모듈을 사용해 테스트하기
    • 서버리스 테스트 하네스를 사용해 테스트하기
    • 권장 사항 및 모범 사례
    • 향후 계획 수립
    • 요약

  • 4장. 이벤트 중심 모델
    • 이벤트 중심 아키텍처 소개
    • 이벤트와 AWS Lambda 이해하기
      • Lambda 아키텍처 패턴
    • AWS Lambda와 이벤트 매핑 알아보기
      • Lambda와 S3 매핑하기
      • Lambda와 DynamoDB 매핑하기
      • Lambda와 SNS 매핑하기
      • Lambda와 CloudWatch 이벤트 매핑하기
      • Lambda와 Kinesis 매핑하기
    • 향후 계획 수립
    • 요약

  • 5장. 외부 서비스를 사용한 AWS Lambda 확장
    • 웹훅 소개
    • Lambda와 GitHub 통합하기
    • Lambda와 Slack 통합하기
    • 외부 애플리케이션에서 Lambda 함수 호출하기
    • 향후 계획 수립
    • 권장 사항 및 모범 사례
    • 요약

  • 6장. AWS Lambda와 서버리스 애플리케이션 구축 및 배포
    • SAM 소개
      • SAM 템플릿 작성하기
      • SAM을 이용한 서버리스 애플리케이션 구축
    • AWS Step Functions 소개
      • 구성 요소
      • Step Functions 시작하기
      • Step Functions를 사용한 분산 애플리케이션 구축
    • 향후 계획 수립
    • 요약

  • 7장. AWS Lambda 모니터링과 트러블슈팅
    • CloudWatch를 사용해 Lambda 함수 모니터링하기
    • AWS X-Ray 소개
    • Datalog를 사용해 Lambda 함수 모니터링하기
    • Loggly를 사용해 Lambda 함수 로깅하기
    • 권장 사항 및 모범 사례
    • 요약

  • 8장. 서버리스 애플리케이션 프레임워크 소개
    • 서버리스 프레임워크란?
      • 서버리스 프레임워크 시작하기
      • 서버리스 프레임워크 작업하기
    • 권장 사항 및 모범 사례
    • 요약

  • 9장. AWS Lambda 사용 사례
    • 인프라 관리
      • 인스턴스 시작 및 중지 예약하기
      • Lambda를 사용한 주기적인 EBS 볼륨 스냅숏
      • EC2 태그와 Lambda를 사용한 거버넌스 지원
    • 데이터 변환
    • 요약

  • 10장. AWS Lambda의 미래
    • Lambda@Edge를 사용한 엣지 콘텐츠 처리
    • AWS Lambda와 Lex를 사용한 차세대 챗봇 제작
    • Lambda와 Greengrass를 사용한 엣지 데이터 처리
    • Snowball Edge 소개
    • 요약

관련 블로그 글

미래를 이끄는 AWS의 머신 러닝, 람다

새로운 패러다임으로 떠오르고 있는
서버리스 컴퓨팅


서버리스 컴퓨팅이란?

운영체제 종류나 소프트웨어 플랫폼, 하드웨어에 신경 쓸 필요 없이

오직 CPU메모리만을 사용해 애플리케이션 코드를 실행하는 것을 말한다.


AWS 로고

그 중 AWS(Amazon Web Services, 아마존 웹 서비스)는 서버리스 컴퓨팅 시장을 선두에서 이끌고 있다.

AWS는 IoT에서 머신 러닝, 이미지 인식, 챗봇 프레임워크에 이르기까지 폭넓은 서비스를 지원한다.


지난 11월 29일 월트 디즈니 컴퍼니도 AWS를 클라우드 제공업체로 선정했다고 선정했다.

AWS와 디즈니는 IT 혁신을 추진하기 위해 8년 동안 협업했다.

현재 미디어 네트웍스, 파크 앤드 리조트, 월트 디즈니 스튜디오 등을 포함한 디즈니의 다양한 사업 부문이

AWS에서  비즈니스 크리티컬한 워크로드를 운영하며, 최적의 운영 성과와 고객 경험을 실현하고 있다고 한다.


...


'단순함'으로 승부하는

AWS 머신 러닝


아마존은 AWS 머신 러닝에 20년 이상 꾸준히 투자했다.

아마존의 수많은 내부 시스템 역시 머신 러닝 알고리즘으로 구동되고 있어

고객이 경험하는 기능들의 핵심이기도 하다.



AWS 머신 러닝을 사용하고 있는 기업들


AWS 머신 러닝은 아마존이 제공하는 예측 분석을 위한 지도학습을 수행하는 온라인 서비스다.

아마존 머신 러닝 자체는 단순하지만

일단 AWS의 데이터 관련 서비스와 결합하면 훨씬 복잡하고, 더욱 강력한 서비스를 구현할 수 있다.


아마존 머신 러닝은 2015년 4월, 고수준의 기술 자원 없이도 성능과 비용의 균형을 유지할 수 있는 서비스를 제공해

예측 분석에 대한 진입 장벽을 낮춘다는 명확한 목표를 갖고 출시됐다.


아마존 머신 러닝은 AWS 생태계와 결합해 예측 분석을 비즈니스 데이터 파이프라인의 자연스러운 요소로 만든다.

<AWS 머신러닝> 책으로 다음 두 가지 목표를 달성할 수 있다.
-----------------------------------------------------------------------------------------------------------------------------------------
아마존 머신 러닝의 단순화 접근법

1. 서비스의 잠재력을 충분히 활용하는 데 필요한 데이터 과학에 관련된 핵심 지식

2. 예측 분석을 중심으로 완전한 기능을 갖춘 데이터 파이프라인을 구축함으로써

예측 분석을 데이터 주도 애플리케이션의 핵심 추진력으로 만드는 것
-----------------------------------------------------------------------------------------------------------------------------------------

아마존 머신 러닝의 진짜 강점은 쓰기 쉽고 단순하다는 것이다.

단순한 인터페이스 아래에는 아마존의 머신 러닝에 관한 다양한 전문성이 있다.

끝으로, 아마존 머신 러닝은 머신 러닝 자동화를 좀 더 가깝게 만드는 유용한 회기 및 분류 서비스다. 


실제 인공 지능 애플리케이션을 구축하려고 하는 파이썬 개발자들이라면

<AWS 머신러닝>을 통해 원하는 기술력을 얻을 것이다.


...


서버 없는 컴퓨팅 서비스

AWS Lambda


AWS Lambda는 이벤트에 응답해 코드를 실행하고 자동으로 컴퓨팅 리소스를 관리하는 컴퓨팅 서비스다.

AWS Lambda는 서버를 프로비저닝하거나 관리할 필요가 없어서

사용하기 쉽고 간단하며, 매우 효과적으로 확장도 가능하다.



AWS 람다 로고


다른 AWS 서비스에서 코드를 자동으로 트리거하도록 설정하거나 웹 또는 모바일 앱에서 직접 코드를 호출할 수도 있다.

또한 사용한 컴퓨팅 시간만큼만 비용을 지불하고, 코드가 실행되지 않을 때는 요금이 부가되지도 않는다.



<실전 예제로 배우는 AWS Lambda>

서버리스 컴퓨팅의 상세한 개념부터 장점, 사용 사례까지  소개하고 있다.

또한 AWS Lambda가 개발자에게 제공하는 서비스인 Lambda 함수를 효과적으로 작성하고

개발, 패키징, 테스트하는 방법을 배울 수 있다.


실제로 사용할 수 있는 다양한 예제사용 사례를 바탕으로 하고 있기 때문에

서버리스 애플리케이션을 빠르게 접해볼 수도 있다.



<AWS 머신 러닝><실전 예제로 배우는 AWS Lambda>를 통해

아마존 웹 서비스에서 제공하는 머신 러닝과 람다 함수를 익혀

서버리스 컴퓨팅에 숙련된 개발자가 될 수 있다.



CC

크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[p.16, 246]
Datalog를 사용해 Lambda 함수 모니터링하기
->
Datadog를 사용해 Lambda 함수 모니터링하기

[p.62]
context.succed()
->
context.succeed()