서버리스 이제는 AWS Lambda로 간다 (설계, 개발, 배포 및 모니터링 지표와 비용 계산까지)

서버리스 이제는 AWS Lambda로 간다 (설계, 개발, 배포 및 모니터링 지표와 비용 계산까지)

$39.66
Description
5가지 웹 서비스를 직접 만들면서 배우는 서버리스 플랫폼!
AWS Lambda는 이벤트 기반의 서버리스 컴퓨팅 플랫폼이다. 제한된 CPU, 메모리, 수행 시간을 갖지만 사용한 만큼만 비용을 지불하고 요청량에 맞게 인스턴스가 실행되어 빠르게 확장 및 축소할 수 있다. 그래서 Lambda의 한도와 한계를 이해하고 다룰 수 있다면, 다양한 서비스의 시나리오를 구현하면서도 인프라와 비용 걱정을 크게 줄일 수 있다. 빠른 출시를 결심했거나 토이 프로젝트를 진행할 경우라면 서버리스 플랫폼 사용이 큰 도움이 될 것이다.

이 책은 Lambda를 비롯해 AWS가 제공하는 여러 서버리스 플랫폼을 활용한다. 5가지 서비스 예제를 통해 그 예제 안에서 활용하는 서버리스 플랫폼을 소개하고 직접 실습한다. 이해를 돕기 위해 각 장은 예제에 대한 서비스 소개 및 설계와 구현, 로컬 테스트 환경 구축 및 테스트, 서버리스 스택 배포와 모니터링, 상용 확장을 위해 고민해야 하는 요소와 서버리스 서비스의 한계와 한도, 트래픽 규모를 가정하고 이때 발생하는 비용을 계산한다. 저자의 노하우가 듬뿍 담긴 이 책으로 웹 서비스 개발을 준비해 보자.
저자

최재영

개발자들이도메인개발에만집중할수있도록그외의다른모든부분을자동화하는데관심이많다.특히서비스개발초반에빌드-배포-모니터링운영비용을크게낮출수있는서버리스의매력에푹빠져있다.틈틈이서버리스서버개발자에도전하고있다.
블루홀스튜디오에서게임개발자로경력을시작한이후웹서비스,추천백엔드,빌링을거쳐다시웹서비스업무를수행하고있다.여러도메인의백엔드를개발하며얻은경험을토대로기존의백엔드시스템을서버리스기반으로옮기는연습을하기도한다.다양한토이프로젝트를AWSLambda기반으로올려비용을최적화하는것을즐기며가끔만나는지인들에게서버리스플랫폼사용을권유하는활동을한다.

목차

지은이소개
서문
베타리더추천사

1장준비하기
1-1AWS서버리스
___1-1-1기존의서버개발
___1-1-2서버리스기반의서비스개발
1-2개발환경구축
___1-2-1AWS계정설정
___1-2-2AWSCLI설치
___1-2-3Node.js
___1-2-4nvm
___1-2-5타입스크립트
___1-2-6VisualStudioCode
___1-2-7direnv
___1-2-8Docker
___1-2-9리눅스용윈도우하위시스템(WSL)
1-3SeverlessFramework소개
___1-3-1간단한선언예시
___1-3-2도구익히기

2장HelloAPI
2-1HelloAPI자바스크립트구현
2-2HelloAPI타입스크립트구현
___2-2-1템플릿으로시작
___2-2-2타입스크립트적용
___2-2-3웹팩적용
___2-2-4source-map적용
___2-2-5serverless.ts사용
2-3상용서비스고려
___2-3-1서비스한도
___2-3-2APIGateway의한도
___2-3-3APIGateway통합Lambda의한도
___2-3-4CloudWatchLogs의한도
___2-3-5운영전략
2-4모니터링
___2-4-1Lambda의로그확인
___2-4-2APIGateway의로그확인
___2-4-3Lambda의지표
___2-4-4Lambda의호출지표
___2-4-5Lambda의성능지표
___2-4-6Lambda의동시성지표
___2-4-7Lambda의동시성
___2-4-8Lambda의지표확인
___2-4-9APIGateway의지표확인
___2-4-10CloudWatch대시보드구성
___2-4-11CloudWatch경보설정
2-5비용계산
___2-5-1APIGateway비용
___2-5-2Lambda비용
___2-5-3Lambda와EC2의가격비교
___2-5-4Lambda의메모리와CPU의관계
___2-5-5CloudWatch비용계산
___2-5-6경보이메일전송비용
___2-5-7HelloAPI비용계산
2-6정리

3장사진최적화서비스
3-1서비스소개및설계
3-2Lambda에서외부프로세스실행준비
3-3첫번째시스템구현
___3-3-1S3와CloudFront인프라준비
___3-3-2awscli도구로인프라설정
___3-3-3CloudFormation으로인프라선언
___3-3-4ServerlessFramework에인프라선언통합
___3-3-5S3Bucket에파일업로드
___3-3-6중복업로드막기
3-4두번째시스템구현:Public,Private,Bucket분리
3-5세번째시스템구현:S3이벤트로최적화수행
3-6상용서비스고려
3-7모니터링
3-8비용계산
___3-8-1S3비용
___3-8-2CloudFront비용
___3-8-3서비스비용계산
___3-8-4비용줄이기
3-9정리

4장블로그서비스
4-1서비스소개및설계
4-2기본API구현
___4-2-1models.ts구현
___4-2-2handler.ts구현
___4-2-3storage.ts구현
4-3DynamoDB연동
___4-3-1자원선언
___4-3-2AWS-SDK라이브러리추가
___4-3-3글에대한CRUD구현
___4-3-4글목록구현
___4-3-5로컬환경준비
___4-3-6Serverlessoffline
___4-3-7로컬DynamoDB준비
___4-3-8로컬테스트
___4-3-9배포및테스트
___4-3-10정리
4-4MySQL연동
___4-4-1자원선언
___4-4-2방화벽설정
___4-4-3MySQL라이브러리추가
___4-4-4글에대한CRUD구현
___4-4-5로컬테스트
___4-4-6배포
___4-4-7MySQL테이블작성
___4-4-8테스트
___4-4-9정리
4-5SQLite연동
___4-5-1자원선언
___4-5-2VPC설정
___4-5-3SQLite라이브러리추가
___4-5-4BetterSQLite3준비
___4-5-5SQLite기반쿼리함수구현
___4-5-6잠금함수구현
___4-5-7CRUD함수구현
___4-5-8로컬S3준비
___4-5-9로컬Redis준비
___4-5-10로컬테스트
___4-5-11배포
___4-5-12느린응답시간
___4-5-13응용
___4-5-14정리
4-6저장소비교
___4-6-1응답지연시간
___4-6-2비용
___4-6-3유지보수
___4-6-4유리한시나리오
4-7프런트엔드연동
___4-7-1create-react-app
___4-7-2웹페이지설계
___4-7-3컴포넌트기본
___4-7-4서버API연동
___4-7-5컴포넌트구현
___4-7-6프록시서버
___4-7-7개발서버시작
___4-7-8주소기반라우트
___4-7-9빌드
___4-7-10로컬테스트
___4-7-11서버주소문제해결
___4-7-12정리
4-8S3와CloudFront를사용해배포
___4-8-1서버API주소설정
___4-8-2CORS문제해결
___4-8-3배포
4-9CloudFront의다중오리진사용
___4-9-1서버API주소설정
___4-9-2배포
___4-9-3동작이해
___4-9-4장점과단점
4-10APIGateway에서웹페이지제공
___4-10-1서버리스스택설정
___4-10-2서버API주소설정
___4-10-3배포
___4-10-4도메인연결
4-11RESTAPI사용
___4-11-1서버리스스택변경
___4-11-2코드변경
___4-11-3로컬테스트
___4-11-4X-Ray추가
___4-11-5X-Ray지표분석
___4-11-6정리
4-12인증구현
___4-12-1Lambda인증
___4-12-2함수구현
___4-12-3서버리스스택변경
___4-12-4빌드오류수정
___4-12-5CloudFront수정
___4-12-6프런트엔드작업
___4-12-7테스트
___4-12-8정리
4-13상용서비스고려
___4-13-1DynamoDB
___4-13-2MySQL
___4-13-3SQLite
___4-13-4API요청횟수제한
___4-13-5인증
___4-13-6CloudFront와S3
4-14모니터링
___4-14-1DynamoDB모니터링
___4-14-2MySQL모니터링
___4-14-3Redis모니터링
___4-14-4인증실패율
4-15비용계산
___4-15-1시나리오
___4-15-2시스템구성
___4-15-3CloudFront와S3오리진사용
___4-15-4APIGateway에서웹페이지제공
___4-15-5APIGateway의API요청처리비용
___4-15-6Lambda권한부여자실행비용
___4-15-7통합된Lambda실행비용
___4-15-8DynamoDB비용
___4-15-9MySQL비용
___4-15-10SQLite데이터베이스를위한S3비용
___4-15-11비용정리
___4-15-12비용줄이기
4-16정리

5장추천서비스
5-1시나리오
___5-1-1Word2vec
___5-1-2기반데이터
5-2개발환경구축
___5-2-1파이썬환경구축
___5-2-2AWSECR로그인
___5-2-3SAMCLI설치
5-3시스템설계
5-4학습구현
___5-4-1의존라이브러리설치
___5-4-2이벤트다운로드
___5-4-3학습
___5-4-4S3Bucket준비
___5-4-5배포
5-5추천API구현
___5-5-1추천구현
___5-5-2SAM프로젝트작성
___5-5-3로컬테스트
___5-5-4배포
___5-5-5수행시간확인
___5-5-6ECR리포지토리관리
5-6서비스API구현
___5-6-1추적쿠키발급API
___5-6-2좋아요횟수조회API
___5-6-3좋아요API
___5-6-4VPC에서SQS연결
___5-6-5서버리스스택구성
___5-6-6로컬테스트
___5-6-7배포
5-7웹페이지구현
___5-7-1추적쿠키사용
___5-7-2좋아요노출
___5-7-3좋아요버튼
___5-7-4추천목록
___5-7-5프록시서버구성
___5-7-6로컬테스트
5-8CDN배포
5-9상용서비스고려
___5-9-1SQS이벤트채널
___5-9-2추천Lambda의수행시간
___5-9-3AVX2지원
___5-9-4모델파일의크기
5-10모니터링
___5-10-1SQS모니터링
___5-10-2ECR모니터링
___5-10-3PrivateLink모니터링
5-11비용계산
___5-11-1시나리오
___5-11-2고정비용
___5-11-3API비용
___5-11-4비용일람
___5-11-5비용줄이기
___5-12정리

6장채팅
6-1WebSocketAPI
6-2에코
___6-2-1로컬테스트
___6-2-2배포
___6-2-3라우트선택표현식활용
6-3채팅전파
___6-3-1연결ID관리
___6-3-2메시지전파
___6-3-3서버리스스택선언
___6-3-4로컬테스트
___6-3-5배포
6-4주제-구독-전파
___6-4-1테이블설계
___6-4-2DynamoDB테이블선언
___6-4

출판사 서평

“웹서비스는개발하고싶은데,서버인프라는어떡하지?”
서버리스플랫폼인AWSLambda로고민해결!

수많은서버리스SaaS가있지만이책에서는AWSLambda를중점으로다룹니다.사진최적화서비스,추천서비스,게임서버,채팅,블로그서비스를각각단계별로만들어보면서서버리스플랫폼을배울수있습니다.저자의친절하고자세한설명으로입문자도충분히이해하며따라해볼수있습니다.

이책의구성
-1장:서버리스서비스의사용이유소개
-2장:ServerlessFramework를익히고타입스크립트기반의개발환경구축
-3장:사진을업로드한후화질을적당히낮춰CDN으로제공하는서비스개발
-4장:DynamoDB,MySQL,SQLite를저장소로활용하는블로그서비스개발
-5장:Word2vec을활용한문서ID기반의임베딩구축과이를제공하는추천서비스개발
-6장:WebSocketAPI를활용한채팅서비스개발
-7장:세션기반의게임서버개발

이책의대상독자
-AWS서버리스플랫폼으로웹서비스를개발해보고싶은분
-만들어야할웹서비스가있지만인프라관리가피곤한분
-사내개발자도구를웹서비스로빠르게만들어야하는데인프라가마땅치않은분
-Lambda를좀더다양한패턴으로사용해보고싶은분
-간단한게임서버를인프라고민없이개발해보고싶은분