[1부] 첫 걸음 떼기
▣ 1장: 서버리스로 출발
1.1 어떻게 여기까지 다다랐을까?
__1.1.1 서비스 지향 아키텍처와 마이크로서비스
__1.1.2 소프트웨어 설계
1.2 서버리스 아키텍처의 원칙
__1.2.1 컴퓨팅 서비스를 사용해 필요할 때 코드 실행
__1.2.2 단일 목적의 상태 없는 함수 작성
__1.2.3 푸시 기반, 이벤트 주도 파이프라인 설계
__1.2.4 더 두텁고 강력한 프런트엔드 구축
__1.2.5 서드파티 서비스 포용
1.3 서버에서 서비스로 이전
1.4 서버리스 장점과 단점
__1.4.1 의사 결정 요인
__1.4.2 서버리스를 사용할 때
1.5 요약
▣ 2장: 아키텍처와 패턴
2.1 사용 사례
__2.1.1 애플리케이션 백엔드
__2.1.2 데이터 처리와 조작
__2.1.3 실시간 분석
__2.1.4 레거시 API 프록시
__2.1.5 스케줄링 서비스
__2.1.6 봇과 기술
2.2 아키텍처
__2.2.1 백엔드 컴퓨팅
__2.2.2 레거시 API 프록시
__2.2.3 하이브리드
__2.2.4 GraphQL
__2.2.5 연결형 컴퓨팅
__2.2.6 실시간 처리
2.3 패턴
__2.3.1 명령 패턴
__2.3.2 메시징 패턴
__2.3.3 우선 순위 큐 패턴
__2.3.4 팬아웃 패턴
__2.3.5 파이프 및 필터 패턴
2.4 요약
▣ 3장: 서버리스 애플리케이션 구축
3.1 24-Hour Video
__3.1.1 일반적인 요구사항
__3.1.2 아마존 웹 서비스
__3.1.3 첫 번째 Lambda함수 작성
__3.1.4 Lambda 함수 이름 지정
__3.1.5 로컬에서 하는 테스트
__3.1.6 AWS에 배포
__3.1.7 S3을 Lambda에 연결
__3.1.8 AWS에서 테스트
__3.1.9 로그 확인
3.2 SNS 구성
__3.2.1 S3에 SNS 연결
__3.2.2 SNS로부터 이메일 수신
__3.2.3 SNS 테스트
3.3 비디오 권한 설정
__3.3.1 두 번째 함수 작성
__3.3.2 구성 및 보안
__3.3.3 두 번째 함수 테스트
3.4 메타데이터 생성
__3.4.1 세 번째 함수와 FFprobe 생성
3.5 깔끔하게 마무리하기
3.6 연습문제
3.7 요약
▣ 4장: 클라우드 설정
4.1 보안 모델 및 자격 증명 관리
__4.1.1 IAM 사용자 생성 및 관리
__4.1.2 그룹 생성
__4.1.3 역할 생성
__4.1.4 자원
__4.1.5 권한과 정책
4.2 로깅 및 경고
__4.2.1 로깅 설정
__4.2.2 로그 보존
__4.2.3 필터, 지표, 경보
__4.2.4 로그 데이터 검색
__4.2.5 S3와 로깅
__4.2.6 경보에 대한 추가 정보
__4.2.7 CloudTrail
4.3 비용
__4.3.1 결제 경보 생성
__4.3.2 비용 모니터링 및 최적화
__4.3.3 Simple Monthly Calculator 사용
__4.3.4 Lambda 및 API Gateway 비용 계산
4.4 연습문제
4.5 요약
[2부] 핵심 아이디어
▣ 5장: 인증과 권한
5.1 서버리스 환경에서의 인증
__5.1.1 서버리스 방식
__5.1.2 Amazon Cognito
__5.1.3 Auth0
5.2 24-Hour Video에 인증 추가
__5.2.1 계획
__5.2.2 Lambda를 직접 호출
__5.2.3 24-Hour Video 웹 사이트
__5.2.4 Auth0 구성
__5.2.5 웹 사이트에 Auth0 추가
__5.2.6 Auth0 통합 테스트
5.3 AWS와 통합
__5.3.1 사용자 프로필 Lambda
__5.3.2 API Gateway
__5.3.3 매핑
__5.3.4 API Gateway를 통한 Lambda 호출
__5.3.5 사용자 정의 권한 모듈
5.4 위임 토큰
__5.4.1 실제 사례
__5.4.2 위임 토큰 프로비저닝
5.5 연습문제
5.6 요약
▣ 6장: 조율자 Lambda
6.1 Lambda 내부
__6.1.1 이벤트 모델과 소스
__6.1.2 푸시와 풀 이벤트 모델
__6.1.3 동시 실행
__6.1.4 컨테이너 재사용
__6.1.5 차가운 Lambda와 따뜻한 Lambda
6.2 프로그래밍 모델
__6.2.1 함수 핸들러
__6.2.2 이벤트 객체
__6.2.3 컨텍스트 객체
__6.2.4 콜백 함수
__6.2.5 로깅
6.3 버전 관리, 별칭 및 환경 변수
__6.3.1 버전 관리
__6.3.2 별칭
__6.3.3 환경 변수
6.4 CLI 사용
__6.4.1 호출 명령어
__6.4.2 함수 생성 및 배포
6.5 Lambda 패턴
__6.5.1 비동기 폭포(Async waterfall)
__6.5.2 직렬 및 병렬
__6.5.3 라이브러리 사용
__6.5.4 로직을 다른 파일로 이동
6.6 Lambda 함수 테스트
__6.6.1 로컬에서 테스트
__6.6.2 테스트 작성
__6.6.3 AWS에서 테스트
__6.7 연습문제
6.8 요약
▣ 7장: API Gateway
7.1 인터페이스 역할을 하는 API Gateway
__7.1.1 AWS 서비스와의 통합
__7.1.2 캐싱, 스로틀링, 그리고 로깅