Serverless #1 サーバーレスアーキテクチャで翻訳 Web API を構築する

AWS Hands-on for Beginners Serverless #1 サーバーレスアーキテクチャで翻訳 Web API を構築する | AWS Webinar

  • AWS Lambdaの特徴
    • サーバーのプロビジョニング/管理なしでプログラムを実行できるサービス
    • コードの実行やスケーリングに必要なことは、Lambda側で実施するので、開発者の方はコードを書くことにより集中できる
    • リクエストベースの料金体系(実行回数 + 実行時間)
  • Lambda のライフサイクル
    • Lambda は呼び出されると、コンテナ上でプログラムを実行する
    • 1つのコンテナで同時に実行できるのは1つのリクエストまで
    • コンテナは再利用されるが、利用可能なコンテナがないときはコールドスタート
      • コンテナ生成→デプロイ→ランタイム起動/初期化→メソッド起動

https://pages.awscloud.com/rs/112-TZM-766/images/03_lambda_stand_alone.py

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/translate.html

https://pages.awscloud.com/rs/112-TZM-766/images/04_lambda_translate.py

  • Amazon API Gatewayの特徴
    • サーバーをプロビジョニング/管理することなく、APIを作成・管理できるマネージドサービス
    • 可用性の担保、スケーリング、APIキー管理といったAPI開発で必要なことを API Gateway に任せることで、開発者はビジネスの差別化に繋がる作業に集中できる
    • REST API と WebSocket に対応
    • リクエストベースの料金体系(REST API の場合)
      • 実行回数 + データ転送料金
  • API Gateway の使い方
    • リソースとメソッドタイプの定義→メソッドリクエストの設定→統合タイプの設定→リクエスト/レスポンス変換の定義→デプロイ

https://pages.awscloud.com/rs/112-TZM-766/images/06_apigw-mock.json

https://pages.awscloud.com/rs/112-TZM-766/images/07_lambda_apigw.py

API Gateway で統合レスポンスを設定する - Amazon API Gateway

  • Amazon DynamoDB の特徴
    • フルマネージド型の NoSQL データベースサービス
    • 3つの Availability Zone に保存されるので信頼性が高い
    • 必要要件に応じて、テーブルごとにスループットキャパシティを定義する
    • ストレージの容量制限がない
    • 料金体系
      • 設定した Readキャパシティユニット + Writeキャパシティユニット + ストレージ利用料

https://pages.awscloud.com/rs/112-TZM-766/images/10_lambda_dynamodb.py

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb.html
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb/table/index.html

https://pages.awscloud.com/rs/112-TZM-766/images/11_lambda_function_with_exception_handling_example.py