BOS‐09 はじめてのサーバーレス ‐ AWS Lambda で サーバーレスアプリケーション開発 - novel-suzukikeisuke/study GitHub Wiki

サーバーレスとは

  • サーバーの存在を意識しない(ユーザーコントロール可能なサーバーを前提としない)

サーバーレスとは - 従来型のシステム設計

  • プレゼンテーション層 : Webサーバー(Apache, Nginx 等)
  • アプリケーション層 : アプリケーションサーバー(Tomcat, WebLogic 等)
  • 永続層 : データベース サーバー(Oracle DB, MySQL 等)

サーバーレスアーキテクチャーの例(従来型との対比)

  • Amazon API Gateway, AWS Lambda, Amazon DynamoDBを用いることのメリット
    • クエスト量に応じて 自動スケール
    • 設計済みのリトライ マルチ AZ 構成済
    • データ可用性

AWS Lambda とは

  • お客様が開発した 関数(プログラム) をサーバーレスに実行できるサービス → コスト効率と管理性に優れたイベントドリブンでのプログラム実行基盤お客様が開発した 関数(プログラム) をサーバーレスに実行できるサービス → コスト効率と管理性に優れたイベントドリブンでのプログラム実行基盤

AWS Lambda とは - イベント処理の担い手

  • Lambda は 「関数」を「開発・デプロイ・実行」する単位として扱い、 様々なイベントをトリガーに実行する
    • Lambda関数
      • 【代表的な特徴(仕様)】
      • 実行時間は最⻑で15分(デフォルト3秒)
      • リソース量はメモリサイズのみを指定
      • ライフサイクル直接制御不可(挙動はLambdaサービスが制御)
  • 主な特徴・メリット
    • 可用性/拡張性 設計不要
    • 仮想サーバー(OS)管理不要
    • 使用量に応じた課金

サーバーレスの良くある使い方

Web アプリケーションの実行環境として

  • Amazon API Gateway : 前捌き
    • 主な特徴・メリット
      • 可用性・拡張性 設計不要
      • 仮想サーバー(OS)管理不要
      • 使用量に応じた課金
  • AWS Lambda : プログラム実行
  • Amazon DynamoDB : データ保持
    • どんな規模にも対応する高速で柔軟なキーバリューデータベース

Amazon S3

  • AWSが提供するオブジェクトストレージ
  • 自動的にオブジェクトを冗⻑化
  • 低コストに大容量のデータを保存

リアルタイムなデータ加工処理

  • AWSにアップロードされたデータをリアルタイムに処理

サーバーレスの始め方

サーバーレスなWebアプリケーション

  • サーバーレスの Web アプリケーションやバックエンドを構築し、ウェブ・モバイルからのリクエストを処理し、永続化レイヤーでデータを保存

AWS Lambda Function URLs

  • HTTP リクエストで AWS Lambda 関数を同期的に呼び出すシンプルな方法
  • Function URLs は任意の Lambda 関数に HTTPS エンドポイントを追加

デモ動画視聴