책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > OS/Networking > 네트워크 구축
· ISBN : 9791188621064
· 쪽수 : 428쪽
책 소개
목차
PART 1 첫 번째 단계
CHAPTER 1 클라우드 기반 함수 실행하기 3
1.1 AWS Lambda 소개 6
1.2 백엔드 함수 구성하기 13
1.3 단일 백엔드 구성하기 14
1.4 이벤트 기반 애플리케이션 17
1.5 클라이언트에서 함수 호출하기 22
CHAPTER 2 첫 람다 함수 만들기 27
2.1 새로운 함수 만들기 27
2.2 함수 작성하기 31
2.3 다른 설정 지정하기 32
2.4 함수 테스트하기 35
2.5 Lambda API로 함수 실행하기 37
CHAPTER 3 웹 API 기반 람다 함수 43
3.1 Amazon API Gateway 소개 44
3.2 API 생성하기 46
3.3 API 연동하기 48
3.4 연동 테스트하기 51
3.5 응답 변환하기 53
3.6 매개변수로 리소스 경로 사용하기 59
3.7 API 게이트웨이 콘텍스트 사용하기 62
PART 2 이벤트 기반 애플리케이션 만들기
CHAPTER 4 보안 관리하기 73
4.1 IAM 사용자, 그룹과 역할 74
4.2 IAM 정책 이해하기 79
4.3 IAM 정책 사용하기 82
4.4 IAM 정책 변수 사용하기 88
4.5 IAM 역할 사용하기 91
CHAPTER 5 독립 실행 함수 만들기 95
5.1 람다 함수에 라이브러리와 모듈 패키징하기 96
5.2 이벤트에 따라 함수 실행하기 98
5.3 함수에 바이너리 함께 사용하기 112
5.4 함수 스케줄링하기 120
CHAPTER 6 사용자 관리하기 127
6.1 Amazon Cognito Identity 소개 128
6.2 외부 아이덴티티 제공자 131
6.3 사용자 인증 통합하기 133
6.4 인증 사용자와 미인증 사용자 134
6.5 Amazon Cognito 정책 요소 사용하기 135
CHAPTER 7 클라이언트에서 함수 호출하기 145
7.1 자바스크립트에서 함수 호출하기 145
7.2 모바일 앱에서 함수 호출하기 157
7.3 웹 브라우저에서 함수 호출하기 162
CHAPTER 8 인증 서비스 설계하기 171
8.1 상호작용 모델 172
8.2 이벤트 기반 아키텍처 175
8.3 Amazon Cognito로 작업하기 180
8.4 사용자 프로필 저장하기 181
8.5 사용자 프로필에 데이터 추가하기 182
8.6 암호 암호화하기 182
CHAPTER 9 인증 서비스 구현하기 187
9.1 통합 구성 관리하기 189
9.2 초기화 자동화 및 배치 190
9.3 코드 공유하기 192
9.4 홈페이지 만들기 193
9.5 신규 사용자 등록하기 195
9.6 사용자 이메일 인증하기 202
CHAPTER 10 인증 기능 추가하기 213
10.1 분실된 암호 보고하기 214
10.2 암호 재설정하기 221
10.3 사용자 로그인하기 227
10.4 인증된 사용자를 위해 AWS 자격 증명 가져오기 232
10.5 암호 변경하기 233
CHAPTER 11 미디어 공유 서비스 만들기 245
11.1 이벤트 기반 아키텍처 246
11.2 Amazon S3 객체 이름 짓기 254
11.3 Amazon DynamoDB의 데이터 모델 디자인하기 256
11.4 클라이언트 애플리케이션 258
11.5 콘텐츠 업데이트에 반응하기 270
11.6 콘텐츠 인덱스 업데이트하기 274
CHAPTER 12 이벤트 기반의 장점 283
12.1 이벤트 기반 아키텍처 개요 284
12.2 프론트엔드로부터 시작하기 286
12.3 백엔드는 무엇인가? 287
12.4 반응형 프로그래밍 293
12.5 마이크로서비스를 향한 길 296
12.6 플랫폼의 확장성 299
12.7 가용성과 탄력성 301
12.8 비용 산정하기 302
PART 3 개발부터 배포까지
CHAPTER 13 서버리스 개발 방식 개선하기 311
13.1 로컬에서 개발하기 311
13.2 로그와 디버그 315
13.3 람다 함수 버전 관리하기 318
13.4 별칭을 사용하여 다른 환경 관리하기 319
13.5 개발 도구 및 프레임워크 321
CHAPTER 14 배포 자동화하기 337
14.1 Amazon S3에 코드 저장하기 337
14.2 이벤트 기반 서버리스 연속적으로 배포하기 341
14.3 AWS CloudFormation 배포하기 343
14.4 다중 리전 배포 351
CHAPTER 15 인프라 관리 자동화하기 359
15.1 알람에 반응하기 360
15.2 이벤트에 반응하기 363
15.3 실시간에 가까운 속도로 로그 처리하기 364
15.4 반복되는 활동 스케줄링하기 365
15.5 다중 리전 아키텍처와 데이터 동기화 366
PART 4 외부 서비스 활용하기
CHAPTER 16 외부 서비스 요청하기 373
16.1 시크릿 키와 자격 증명 관리하기 373
16.2 IFTTT Maker Channel 사용하기 378
16.3 Slack 팀으로 메시지 보내기 381
16.4 GitHub 저장소 관리 자동화하기 383
CHAPTER 17 다른 서비스로부터 이벤트 받기 387
17.1 호출 서비스 종류 387
17.2 웹훅 패턴 389
17.3 Slack으로부터의 이벤트 처리하기 390
17.4 GitHub로부터의 이벤트 처리하기 392
17.5 Twilio로부터의 이벤트 처리하기 393
17.6 MongoDB를 트리거로 사용하기 394
17.7 로그 모니터링 패턴 395
찾아보기 399
책속에서
이 책은 네 부분으로 나뉘어 있다. 첫 번째 단계(1~3장)에서는 AWS Lambda 및 Amazon API Gateway, 웹 API와 같은 기본 기술에 관해 설명한다. 두 번째 단계(4 ~12장)에서는 이벤트 기반 애플리케이션 개발을 다룬다. 바로 이 책의 핵심으로서 이벤트 기반의 다양한 함수를 통해 애플리케이션 개발을 직접 진행한다. 세 번째 단계(13~15장)에서는 개발 생산성을 높이는 작업을 통해 서버리스 애플리케이션 개발 및 배포를 최적화하는 방법을 알아본다. 마지막으로 네 번째 단계(16~17장)에서는 외부 서비스 사용 방법을 통해 AWS Lambda에서 기능적 확장성과 함께 AWS 플랫폼 서비스와 통합할 수 있는 방법을 설명한다.
이것은 이벤트 중심으로 구동되는 미디어 공유 백엔드 애플리케이션에서 실제 작동하는 예제들이다. 람다 함수를 이벤트에 등록하면 동작 관계에 따라 자동적이고 연쇄적으로 실행한다. 예를 들어, 사진에서 새 메타데이터를 업데이트하면 파일 저장소에서 생성된 이벤트에 의해 첫 번째 함수가 호출되어 데이터베이스상의 메타데이터를 업데이트한다. 그러면 콘텐츠를 볼 수 있는 모든 사용자의 콘텐츠 목록을 업데이트하는 두 번째 함수를 호출하는 새 이벤트가 발생하고, 연결된 람다 함수를 실행한다.
Node.js의 npm 또는 파이썬의 pip과 같은 표준 패키지 관리자로부터 관리하는 모듈을 사용해야 하는 경우 로컬 개발 환경에서 함수 소스가 있는 폴더에(npm의 경우) 직접 설치할 수 있다. pip의 경우 로컬 디렉터리를 지정하는 옵션(-t), 예를 들어 ‘-t ./’를 사용한다. 그리고 람다 함수와 의존성 파일을 포함하는 zip 파일을 루트 폴더에 만들어야 한다. 이 zip 파일이 바로 배포 패키지(deployment package)이며, AWS Lambda(10MB 미만일 경우)에 직접 업로드하거나 Amazon S3에서 람다 서비스로 보낼 수 있다.