概要
- サーバーレスとは何かの定義と特徴をまとめ、AWSの主なサービスおよびユースケースをまとめました
- 対象読者はサーバーレスの入門者およびサーバーレスで実装してみたいユースケースのある方です
定義
利用者によるサーバーのプロビジョニングやメンテナンス、耐障害性の確保が不要なサービス
プロビジョニングとは、必要に応じてネットワークやコンピューターの設備などのリソースを提供できるよう予測し、準備しておくこと
耐障害性は、何か障害が起きたときでもシステムのパフォーマンスを落とすことなくシステムを稼働し続けられる冗長構成のこと
代表的なサーバーレスAWSサービス
Amazon QuickSight
クラウド駆動の高速なBI(ビジネスインテリジェンス)サービス
Amazon Kinesis
動画とデータストリームをリアルタイムで収集、処理、分析するためのサービス
Amazon Simple Queue Service
AWS AppSync
GraphQLを使用してアプリケーションが必要なデータを正確に取得できるようにするマネージド型サービス
AWS Lambda
サーバーのプロビジョニングや管理をすることなくコードを実行できるコンピューティングサービス
Amazon DynamoDB
規模に関係なく高速で柔軟なパフォーマンスを実現するNoSQLデータベースサービス
Amazon Personalize
アプリケーションを使用している顧客に対して開発者が個別のレコメンデーションを簡単に作成できるようにする機械学習サービス
Amazon CloudWatch
AWSのリソースとアプリケーションのモニタリング/おブザーbアビリティサービス
AWS Systems Manager
AWSで利用中のインフラストラクチャを可視化し、制御するためのサービス
Amazon API Gateway
規模に応じたAPIの作成、公開、保守、モニタリング、保護を行えるサービス
Elastic Load Balancing
アプリケーションへのトラフィックを複数のターゲットに自動的に分散するサービス
Amazon Cognito
シンプルでセキュアなユーザーのサインアップ、サインイン、アクセスコントロールの機能を実現するサービス
主な特徴
- サーバーの管理が不要
- 事前に調達が不要
- 必要なときにプロビジョニング可能
- インフラの保守・運用をクラウドサービス事業者(AWSなど)が実施
- 価値に対する支払い
- 利用したリソースや処理時間等を元にした従量課金性
- 初期投資不要
- 柔軟なスケーリング
- 利用状況に応じてスケールアウト・スケールインを自動的に実施
- 自動化された高可用性
- 冗長化構成等の可用性、耐障害性を高める仕組みが組み込み済み
AWSにおけるユースケース
動的Web/モバイルバックエンド
リアルタイムモバイル/オフライン対応
業務系API/グループ企業間API
Private API記事(英語)
VPC Lambda記事
関連事例
Push配信系・インタラクティブAPI
画像処理/シンプルなデータ加工
分散並列処理
イベント駆動の業務分散処理連携
アプリケーションフロー処理
流入データの連続処理
関連資料
参考アーキテクチャ
チュートリアル1
チュートリアル2
IoTバックエンド
関連資料
関連事例動画
参考アーキテクチャ
ソリューション1(英語)
ソリューション2(英語)