クラウドコンピューティングの技術の中でも、昨今注目を集めているのがサーバーレスアーキテクチャです。
FaaS(Function-As-A-Service)とも呼ばれるサーバーレスアーキテクチャは、ファンクション(関数)と呼ばれるマイクロサービスを実装し、組み合わせながら、サービスを構築していくアーキテクチャです。
その際、実行環境となるサーバーのスケーリングや管理をクラウドプロバイダに任せることで、開発者はオンプレミスなサーバーを考えることなしに、開発時間の短縮と運用コストの削減を図ることができます。
本書は、現場で役に立つ開発パターンをハンズオン形式で学べる『Serverless Architectures on AWS: With examples using AWS Lambda』の日本語版です。
本書では、サーバーレスアーキテクチャに興味のある開発者がAmazon Web Services(AWS)上で新技術を実践・体験するための例として、
・マイクロサービスのコードを実行する「AWS Lambda」
・「Amazon S3」などのクラウドストレージ
・「Amazon DynamoDB」などのデータベース
・「Auth0」などの認証サービス
といったサービスを組み合わせながら、実際に動かすことのできる動画シェアサイトを構築していきます。
世界的な技術カンファレンス「Serverlessconf」の責任者である著者による、サーバーレスアーキテクチャの主要なデザインパターンを学べる1冊です。
第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 まとめ
第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 まとめ
第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 これからの展開のために
●付録A サーバーレスアーキテクチャのためのサービス
・A.1 Amazon API Gateway
・A.2 Amazon SNS(Simple Notification Service)
・A.3 Amazon S3(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 まとめ