SLSとは

SLSは、Amazon Web Services(AWS)が提供するサーバーレスコンピューティングサービスであるAWS Lambdaの実行環境において、関数を呼び出し、実行し、その結果を返す一連のライフサイクルと、その基盤となるインフラストラクチャ全体を指す概念です。

SLSの概要とサーバーレスコンピューティング

SLS(ServerLess System、サーバーレスシステム)という用語は、文脈によって広範な意味を持ちますが、特にAWSのコンテキストでは、開発者がサーバーのプロビジョニング、スケーリング、および管理を意識することなく、コードの実行に集中できる環境を指します。AWS LambdaがこのSLSの中心的なサービスです。

従来のクラウドコンピューティングでは、アプリケーションを実行するためにEC2インスタンスのような仮想サーバーを手動で設定・維持する必要がありました。これに対し、SLSでは、ユーザーはコード(関数)をアップロードするだけで、そのコードを実行するために必要な全てのインフラストラクチャの管理(スケーリング、パッチ適用、高可用性の確保など)をクラウドプロバイダー(AWS)が自動的に行います。

主な目的は、サーバーの運用管理タスクを完全に抽象化し、イベント駆動型のアーキテクチャを通じて、コスト効率と開発速度を最大化することです。

AWS LambdaにおけるSLSの動作原理

AWS LambdaのSLSは、イベント駆動のパラダイムに基づいて動作します。

1. イベント駆動型実行

Lambda関数は、HTTPリクエスト、データベースの変更(例:DynamoDB)、ファイルアップロード(例:S3)、メッセージキューの受信(例:SQS)など、様々なイベントが発生したときにのみ実行されます。

2. コンテナ管理とスケーリング

  1. コールドスタート(Cold Start): 初めてイベントが発生した際、AWSは関数を実行するための**実行環境(Execution Environment、実質的なコンテナ)**を準備します。これには、関数のコードのダウンロードと初期化が含まれ、この起動時間(レイテンシ)をコールドスタートと呼びます。
  2. 実行: コードが実行され、タスクが完了すると、環境はアイドル状態になります。
  3. ウォームスタート(Warm Start): 一定時間内に次のイベントが到着した場合、AWSは既存のアイドル状態の実行環境を再利用します(ウォームスタート)。これにより、コールドスタートのレイテンシが回避されます。
  4. 自動スケーリング: イベントのトラフィックが増加すると、AWSは自動的かつ瞬時に関数実行環境のインスタンス(コンテナ)を複製し、トラフィックを処理します。ユーザーが手動でスケーリング設定を行う必要はありません。

3. 課金モデル

SLSの最も大きな特徴の一つが従量課金モデルです。ユーザーは、関数が実際に実行された時間(ミリ秒単位)と、使用されたメモリ量に対してのみ課金されます。アイドル状態のサーバー維持費は発生しません。

\text{総コスト} = \sum (\text{実行回数} \times \text{実行時間} \times \text{メモリサイズ})

SLSの主要な利点と考慮事項

利点

  • 運用オーバーヘッドの削減: サーバー、OS、ミドルウェアの管理が不要になります。
  • 自動スケーリング: トラフィックの変動に応じて自動でリソースが調整されるため、スケーラビリティの設計が簡素化されます。
  • 高い費用対効果: コードが実行されている間にのみ課金されるため、使用率の低いアプリケーションや間欠的に実行される処理においてコスト効率が非常に高くなります。

考慮事項

  • コールドスタート: コールドスタート時のレイテンシは、特にリアルタイム性が求められるアプリケーションにおいて課題となることがあります。
  • 実行時間の制約: Lambda関数には最大実行時間(通常は15分)の制限があり、長時間実行されるバッチ処理などには不向きです。
  • 状態管理: 実行環境は一時的であり、関数の実行が終了すると状態(メモリ上のデータ)は失われます。永続的なデータ管理には、S3やDynamoDBなどの外部サービスを利用する必要があります。

関連用語

サーバーレスアーキテクチャ | 今更聞けないIT用語集
スケーリング | 今更聞けないIT用語集
クラウドソリューション

お問い合わせ

システム開発・アプリ開発に関するご相談がございましたら、APPSWINGBYまでお気軽にご連絡ください。

APPSWINGBYの

ソリューション

APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

既存事業のDXによる新規開発、既存業務システムの引継ぎ・機能追加、表計算ソフトによる管理からの卒業等々、様々なWebシステムの開発を行っています。

iOS/Androidアプリ開発

既存事業のDXによるアプリの新規開発から既存アプリの改修・機能追加まで様々なアプリ開発における様々な課題・問題を解決しています。


リファクタリング

他のベンダーが開発したウェブサービスやアプリの不具合改修やソースコードの最適化、また、クラウド移行によってランニングコストが大幅にあがってしまったシステムのリアーキテクチャなどの行っています。