サーバーレスアーキテクチャ入門
AWS Lambda を中心としたサーバーレス設計の基礎から実践パターンまで
プロローグ — サーバーを捨てる日
インフラエンジニアのダイチが、深夜のサーバー障害対応から解放されるためにサーバーレスへの旅を決意するまで
サーバーレスとは — FaaS と BaaS の理解
Lambda の基礎、実行モデル、FaaS と BaaS の違いを理解してサーバーレスアーキテクチャの全体像を掴む
最初の Lambda 関数 — Hello World から始める
AWS CLIとSAMを使ってRuby製Lambda関数をデプロイし、テスト・ログ確認まで一通り体験する
API Gateway + Lambda — REST API を構築する
API GatewayとLambdaを組み合わせてREST APIを構築し、Railsとの設計比較からプロキシ統合まで理解する
イベント駆動パターン — S3・SQS・EventBridge トリガー
S3アップロードトリガーによる画像処理、SQSによる非同期ジョブ処理、EventBridgeによるスケジュール実行など実践的なイベント駆動パターンを学ぶ
データストア — DynamoDB と Aurora Serverless
サーバーレスなデータ管理の二大選択肢、DynamoDBのデータモデリングとAurora Serverless v2の使い分けを理解する
Step Functions — ワークフローを設計する
AWS Step Functionsで複数のLambda関数を組み合わせた注文処理ワークフローを構築し、エラーハンドリングと補償トランザクションを実装する
サーバーレスのセキュリティ — IAMと最小権限
Lambda実行ロールのIAM設計、最小権限の原則、VPC配置、Secrets Managerによる機密情報管理でサーバーレスアプリケーションを堅牢にする
パフォーマンスとコスト — コールドスタートと最適化
Lambdaのコールドスタート問題の原因と対策、Provisioned Concurrency、メモリとコストのトレードオフ、実際の料金計算方法を学ぶ
Rails × サーバーレス — ハイブリッドアーキテクチャ
既存のRailsアプリを活かしながらLambdaを周辺処理に活用するハイブリッドアーキテクチャの設計と実装パターン
エピローグ — サーバーレスの未来と適材適所
ダイチの旅の締めくくりとして、サーバーレスを選ぶべき場面・選ばない場面、今後の展望を整理する