概要~Lambda初心者にオススメの入門書 書籍5冊~
最近、AWS Lambdaの本増えてきましたよね。ということで今回はLambdaのおすすめ本の紹介です。
本格的な専門書やサーバーレスの基礎編、アーキテクト、実際にAmplifyを使った開発と様々な内容になっているのでLambdaを学びたい人は一つずつ読んでいってみてください。
Lambdaおすすめ本 5冊
今回紹介するAWS Lambdaのおすすめ本の一覧です。
忙しい方はここだけ確認してください。
- AWS Lambda実践ガイド 第2版
- 基礎から学ぶ サーバーレス開発
- AWSではじめる クラウド開発入門
- AWSによるサーバーレスアーキテクチャ
- AWS Amplify Studioではじめるフロントエンド+バックエンド統合開発
AWS Lambda実践ガイド 第2版 impress top gearシリーズ
まずは、Lambdaの専門書としてぜひ手に取っていただきたい一冊です。この本は非常に人気があり、第二版も発売されています。Lambdaの基礎からSAMを使った本格的な開発までを網羅している良書です。Lambdaの専門書として、まずはこの本を抑えておくことをおすすめします。
この本は、基本をしっかりと押さえつつ、現場で役立つバージョン管理やエイリアスといった運用面についても詳しく解説しています。また、コールドスタートやコネクションなど、現場で知っておかなければならない制限事項についても触れられています。Lambdaの専門書として、この本は非常に優れており、一読の価値があります。
<補足>
今なら、 KindleUnlimited でこの本が無料で読めます。
KindleUnlimited たまにこの手の専門書籍が無料対象になるので、非常におすすめです。
Lambdaに関わらずAWSの無料対象本も多くあるので、AWS/Lambdaの知識を深めたい方は、この機会を逃さずにぜひチェックしてみてください。
以下の記事はこの本を読んで実際に現場の運用に取り入れたかなり便利な機能を紹介をした内容になっています。
AWS Lambda 同時実行数、エイリアス、環境変数とか実際の現場で使える機能を勉強してみる
AWS Lambda実践ガイド~目次~
- 第1章 Lambda で実現するサーバーレスシステム
- 第2章 Lambda 事始め
- 第3章 Lambda の実行環境とイベント
- 第4章 Lambda の開発環境と SAM
- 第5章 S3 のイベント処理
- 第6章 API Gateway、DynamoDB、SES との連携
- 第7章 SQS やSNS を使った連携
基礎から学ぶ サーバーレス開発
いきなりLambdaはレベルが高いと感じた場合はこちらの基本編があります。Lambdaというかサーバレスとは?という導入編です。サーバレスとはどういうものか丁寧に書かれています。まずはサーバ有りでの開発と比較してサーバレスにはどういったメリットデメリットがあるのかこの本で学びましょう。
基礎から学ぶ サーバーレス開発~目次~
- CHAPTER 01 サーバーレスとは
- 1 サーバーレスの概要
- 2 サーバーレスが注目された要因と新たなる課題
- 3 サーバーレスのメリット・デメリット
- CHAPTER 02 サーバーレス開発でよく使うサービス
- 4 AWS Lambda
- 5 Amazon API Gateway
- 6 Amazon Aurora Serverless
- 7 Amazon CloudWatch
- 8 Amazon Simple Queue Service (Amazon SQS)
- 9 AWS CodeCommit
- 10 AWS CodePipeline
- 11 AWS CodeBuild
- 12 AWS CodeDeploy
- 13 Amazon Simple Storage Service (Amazon S3)
- 14 AWS Step Functions
- 15 Amazon DynamoDB
- 16 AWS Cloud9
- 17 AWS X-Ray
- CHAPTER 03 サーバーレスアプリケーションの構築
- 18 フレームワーク
- 19 CI/CD
- 20 AWSにおけるCI/CD
- 21 デプロイ手法
- 22 トラフィックシフト
- 23 昇格
- CHAPTER 04 サーバーレスの運用監視
- 24 サーバーレスのコスト
- 25 サーバーレスにおける監視
- CHAPTER 05 サーバーレス開発におけるセキュリティ
- 26 サーバーレス開発におけるセキュリティの考え方
- 27 Lambda@Edgeの利用
- CHAPTER 06 サーバーレスの構築例
- 28 完全サーバーレスでのWebページ構築事案
- 29 完全サーバーレスでのWebページのバッチ部分
- 30 APIバックエンドにAmazon RDSを用いた事例および2019年のアップデートについて
- 31 サーバーレスで作る在宅勤務中の勤務時間登録システム
- 32 AWS LambdaをAlexaのエンドポイントとして使う事例
- CHAPTER 07 サーバーレスの失敗談と問題解決
- 33 失敗談①~Amazon RDSを起動させ続けた
- 34 失敗談②~AWS Lambda でスロットリングが発生してしまった
- 35 SPA+サーバーレスで再読み込みをするとAccessDeniedになってしまう問題の解決方法
AWSではじめる クラウド開発入門
東大の人気授業が書籍化された内容です。Lambdaに限らずクラウド開発入門という位置付けのため様々な開発内容が書かれています。クラウドでこうやって開発するのかと開発内容の概略が把握できる内容になっています。 特徴的なのがAWSでの構築作業をAWS CDKで統一しておりコードが提供されているので再現性高く勉強できる本という印象があります。様々なハンズオンがサンプルコードとともに提供されているので、1つ1つハンズオンをこなすだけで非常に有益だと思います。最後のハンズオンは、以下のAWSサービスを組み合わたSPA/バッチアプリケーションを作っており、かなり実践的で勉強になります。
計算系:EC2, ECS, ECR, AWS Batch
サーバーレス系:Lambda, S3, DynamoDB, CloudFront, Route 53, API Gateway
以下の記事でも参考にさせて頂いたため、参考書籍として紹介しています。
Amazon Cognitoを使ってシンプルなログイン画面を作ってみる
AWSではじめる クラウド開発入門~目次~
- Chapter 1 はじめに
- 1-1 本書の目的内容
- 1-2 本書のフィロソフィー
- 1-3 AWS アカウント
- 1-4 環境構築
- 1-5 前提知識
- 1-6 本書で使用する表記について
- Chapter 2 クラウド概論
- 2-1 クラウドとは?
- 2-2 なぜクラウドを使うのか?
- Chapter 3 AWS入門
- 3-1 AWSとは?
- 3-2 AWSの機能・サービス
- 3-3 Region と Availability Zone
- 3-4 AWSでのクラウド開発
- 3-5 CloudFormationとAWS CDK
- Chapter 4 Hands-on #1:初めてのEC2インスタンスを起動する
- 4-1 準備
- 4-2 SSH
- 4-3 アプリケーションの説明
- 4-4 プログラムを実行する
- 4-5 小括
- Chapter 5 Hands-on #2: AWS でディープラーニングを実践
- 5-1 なぜ機械学習をクラウドで行うのか?
- 5-2 GPU による深層学習の高速化
- 5-3 準備
- 5-4 アプリケーションの説明
- 5-5 スタックのデプロイ
- 5-6 ログイン
- 5-7 Jupyter Notebook の起動
- 5-8 PyTorch はじめの一歩
- 5-9 実践ディープラーニング! MNIST手書き数字認識タスク
- 5-10 スタックの削除
- Chapter 6 Docker 入門
- 6-1 クラウドシステムの構築に向けて
- 6-2 機械学習の大規模化
- 6-3 Docker とは
- 6-4 Docker チュートリアル
- 6-5 Elastic Container Service (ECS)
- Chapter 7 Hands-on #3 : AWS で自動質問回答ボットを走らせる
- 7-1 Fargate
- 7-2 準備
- 7-3 Transformer を用いた question-answering プログラム
- 7-4 アプリケーションの説明
- 7-5 スタックのデプロイ
- 7-6 タスクの実行
- 7-7 タスクの同時実行
- 7-8 スタックの削除
- Chapter 8 Hands-on #4: AWS Batch を使って機械学習のハイパーパラメータサーチを並列化する
- 8-1 クラウドを用いた機械学習モデルの最適化
- 8-2 AWS Batch
- 8-3 準備
- 8-4 MNIST 手書き文字認識(再訪)
- 8-5 アプリケーションの説明
- 8-6 スタックのデプロイ
- 8-7 Docker image を ECR に配置する
- 8-8 単一のジョブを実行する
- 8-9 並列に複数の Job を実行する
- 8-10 スタックの削除
- 8-11 クラウドを用いた機械学習アプリケーションの開発とデバッグ
- 8-12 小括
- Chapter 9 ウェブサービスの作り方
- 9-1 個人のためのクラウドからみんなのためのクラウドへ
- 9-2 ウェブサービスの仕組み Twitter を例に
- 9-3 REST API
- 9-4 Twitter API
- Chapter 10 Serverless architecture
- 10-1 Serverful クラウド (従来型)
- 10-2 Serverless クラウドへ
- 10-3 サーバーレスクラウドを構成するコンポーネント
- Chapter 11 Hands-on #5: サーバーレス入門
- 11-1 Lambda ハンズオン
- 11-2 DynamoDB ハンズオン
- 11-3 S3 ハンズオン
- Chapter 12 Hands-on #6: Bashoutter
- 12-1 準備
- 12-2 アプリケーションの説明
- 12-3 アプリケーションのデプロイ
- 12-4 API リクエストを送信する
- 12-5 大量のAPIリクエストをシミュレートする
- 12-6 Bashoutter GUI を動かしてみる
- 12-7 アプリケーションの削除
- 12-8 小括
- Chapter 13 Hands-on #7: boto3 道場
- 13-1 boto3 の基本
- 13-2 S3 道場
- 13-3 DynamoDB 道場
- 13-4 小括
- Chapter 14 Hands-on #8: シン・Bashoutter
- 14-1 シン・Bashoutter プロジェクトの概要
- 14-2 STEP1:ドメインの設定とCloudFront の配置
- 14-3 STEP2:Cognito によるユーザー認証の追加
- Chapter 15 Hands-on #9: 深層学習を用いたアート自動生成アプリケーション
- 15-1 Neural Art Canvas プロジェクト
- 15-2 Neural style transfer
- 15-3 ローカルで Neural style transfer を実行
- 15-4 Step Functions
- 15-5 Lambda layers
- 15-6 アプリケーションの説明
- 15-7 アプリケーションのデプロイ
- 15-8 画像の生成 (コマンドラインから)
- 15-9 画像の生成 (GUIから)
- 15-10 アプリケーションの削除
- Appendix 環境構築
- A-1 本書で必要な計算機環境
- A-2 AWS アカウントの取得
- A-3 AWS のシークレットキーの作成
- A-4 AWS CLI のインストール
- A-5 AWS CDKのインストール
- A-6 WSL のインストール
- A-7 Docker のインストール
- A-8 Python venv クイックガイド
- A-9 ハンズオン実行用の Docker image の使い方
AWSによるサーバーレスアーキテクチャ
アーキテクト部分からの一冊です。サーバレスアーキテクチャの本ということですが、Lambdaの解説書になっているのでLambdaの専門書という一面もあります。基礎からアーキテクトまで書かれていて参考になります。
アーキテクトの内容のため、Lambda単体にとどまらず他のAWSサービスと連携して実際のサービス提供を行うための内容(まさにシステムアーキテクト)が丁寧に書かれている本になります。
AWSによるサーバーレスアーキテクチャ~目次~
- 第1部 導入
- 第1章 サーバーレスの世界へ
- 1.1 ここに至るまでの流れ
- 1.2 サーバーレスアーキテクチャの原則
- 1.3 サーバーからサーバーレスへの乗り換え
- 1.4 サーバーレスの長所と短所
- 1.5 まとめ
- 第2章 アーキテクチャとパターン
- 2.1 ユースケース
- 2.2 アーキテクチャ
- 2.3 パターン
- 2.4 まとめ
- 第3章 サーバーレスアプリケーションの構築
- 3.1 24-Hour Video
- 3.2 Amazon SNS の設定
- 3.3 動画ファイルのアクセス権限の設定
- 3.4 メタデータの生成
- 3.5 仕上げ
- 3.6 演習問題
- 3.7 まとめ
- 第4章 クラウドの設定
- 4.1 セキュリティモデルとID管理
- 4.2 ログとアラート
- 4.3 料金
- 4.4 演習問題
- 4.5 まとめ
- 第1章 サーバーレスの世界へ
- 第2部 コア機能
- 第5章 認証と認可
- 5.1 サーバーレス環境における認証
- 5.2 24-Hour Videoへの認証の追加
- 5.3 AWS との統合
- 5.4 委任 トークン
- 5.5 演習問題
- 5.6 まとめ
- 第6章 オーケストレーターとしての AWS Lambda
- 6.1 AWS Lambdaの内部
- 6.2 プログラミングモデル
- 6.3 バージョニング、エイリアス、環境変数
- 6.4 CLI の使い方
- 6.5 AWS Lambdaのパターン
- 6.6 Lambda関数のテスト
- 6.7 演習問題
- 6.8 まとめ
- 第7章 Amazon API Gateway
- 7.1 インターフェイスとしてのAmazon API Gateway
- 7.2 Amazon API Gateway の操作
- 7.3 ゲートウェイの最適化
- 7.4 ステージとバージョン
- 7.5 演習問題
- 7.6 まとめ
- 第5章 認証と認可
- 第3部 アーキテクチャの拡張
- 第8章 ストレージ
- 8.1 賢いストレージ
- 8.2 セキュアなアップロード
- 8.3 ファイルへのアクセス制限
- 8.4 演習問題
- 8.5 まとめ
- 第9章 データベース
- 9.1 Firebase 入門
- 9.2 24-Hour VideoへのFirebase の追加
- 9.3 ファイルへのアクセスの保護
- 9.4 演習問題
- 9.5 まとめ
- 第10章 仕上げの学習
- 10.1 デプロイとフレームワーク
- 10.2 よりよいマイクロサービスのために
- 10.3 AWS Step Functions
- 10.4 AWS Marketplaceが開くビジネスチャンス
- 10.5 これからの展開のために
- 第8章 ストレージ
- 付録A サーバーレスアーキテクチャのためのサービス
- A.1 Amazon API Gateway
- A.2 Amazon SNS (Simple Notification Service)
- A.3 Amazon 53 (Simple Storage Service)
- A.4 Amazon SQS (Simple Queue Service)
- A.5 Amazon SES (Simple Email Service)
- A.6 Amazon RDS (Relational Database Service) & Amazon DynamoDB
- A.7 Amazon CloudSearch
- A.8 Amazon Elastic Transcoder
- A.9 Amazon Kinesis Data Streams
- A.10 Amazon Cognito
- A.11 Auth0
- A.12 Firebase
- A.13 その他のサービス
- 付録B インストールとセットアップ
- B.1 システムの準備
- B.2 IAM ユーザーとCLI のセットアップ
- B.3 ユーザーアクセス権限の設定
- B.4 新しいS3バケットの作成
- B.5 IAMロールの作成
- B.6 Lambda関数のための準備
- B.7 Amazon Elastic Transcoder の設定
- B.8 npm のセットアップ
- 付録C 認証と認可について
- C.1 認証と認可の基本
- C.2 JWT
- 付録D AWS Lambdaの内部
- D.1 実行環境
- D.2 制限
- D.3 古いランタイムの扱い方
- 付録 E モデルとマッピング
- E.1 動画リストの取得
- 付録 F Amazon S3のイベントメッセージ構造
- F.1 S3 イベントメッセージの構造
- F.2 覚えておくべきこと
- 付録 G Serverless Framework & AWS SAM
- G.1 Serverless Framework
- G.2 AWS SAM
- G.3 まとめ
AWS Amplify Studioではじめるフロントエンド+バックエンド統合開発
AWS Amplify Studioではじめるフロントエンド+バックエンド統合開発
最後はより実践編という位置付けでAmplifyを使った開発の内容の本にしました。Lambdaの基礎ではないため、これまでの本で基礎をおさえつつ再度のAmplifyでアプリ開発の本格入門という位置付けの本としています。Amplify自体いろんな機能があって覚えることがたくさんあるのですが、それらを丁寧に解説してくれる内容になってます。
Lambdaの真価が問われるのは、バックエンドとしてフロントエンドから連携されたアプリだと思っており、それを簡単に実現してくれるAmplifyには個人的には非常に期待しています。本の内容としては、Amplifyの一機能としてLambdaの使用方法を説明した内容になるのでLambdaに特化した内容ではないのですが、実業務でのLambdaで完結することはあまりないと思うで、一番実践に近い本だと思っています。
以下の記事でも参考書籍として紹介させて頂いています。AWSの公式チュートリアルに間違いはなく正しく実践できるのですが、概念的な理解がないと体系的な理解が難しいため、この本で理解を補足しました。
Cloud9でAWS Amplifyの公式チュートリアルGetting startedをやってみる
AWS Amplify Studioではじめるフロントエンド+バックエンド統合開発~目次~
- Chapter1 AWS Amplifyを使おう
- 1.1. AWS Amplifyを準備する
- 1.2. サンプルアプリを作成する
- Chapter2 Amplify Studioでバックエンドを設計する
- 2.1. Reactアプリケーションの作成
- 2.2. Amplify Studioとユーザー認証
- 2.3. データモデルの設計
- Chapter3 FigmaによるUI設計
- 3.1. Figmaの基本操作
- 3.2. Figmaでデザインする
- 3.3. グラフィックの作成
- 3.4. データモデル用のコンポーネントの利用
- Chapter4 Reactによるフロントエンド開発
- 4.1. Reactアプリケーションの基本
- 4.2. Reactコンポーネントの設計
- 4.3. ステートフックと副作用フック
- 4.4. Reactコンポーネントを活用する
- Chapter5 DataStoreによるデータベースアクセス
- 5.1. コレクションコンポーネントの利用
- 5.2. ReactとDataStoreの利用
- 5.3. モデルデータの操作
- Chapter6 GraphQLによるデータの利用
- 6.1. Amplify MockとGraphQL
- 6.2. コードからGraphQLを利用する
- 6.3. GraphQLによるデータの書き換え
- Chapter7 S3ストレージとLambda関数
- 7.1. Amazon S3の利用
- 7.2. ファイルの基本操作
- 7.3. Lambda関数の利用
- 7.4. LambdaからAWSの機能を使う
- Chapter8 JavaScriptベースによるフロントエンド開発
- 8.1. JavaScriptベースのアプリケーション作成
- 8.2. Amplifyの機能を利用する
まとめ
AWS Lambdaに特化した本はまだ数が少ないのですが、その中でもわかりやすいと思える本をAWSの基礎からLambdaを使った本格サービス開発の実践編まで、5冊を紹介してみました。
誰かのLambda理解に役立てば幸いです。良いサーバレスライフを!