2022/09/6

AWSのServerless(サーバーレス)なサービスとは?

 
  

AWSの「Serverless(サーバーレス)」なサービスとは?


AWSの「Serverless(サーバーレス)」なサービスとは、物理的なサーバーの管理が不要で、必要な機能だけを提供してくれるサービス群のことです。

具体的なサービスとしては、コンピューティングの「AWS Lambda」やデータストアの「Amazon DynamoDB」等で、多数の分野でサポートされています。

例えば「AWS Lambda」のようなServerless(サーバーレス)サービスでは、システムの負荷が増大した際の「オートスケーリング機能」等は自動で実施してくれます。そのため要件の処理に必要なコードのみを作成するだけで済みます。

AWSの「Serverless(サーバーレス)」に関する特徴やサポートしているサービスについて解説してきます。

Serverless(サーバーレス)なサービスの特徴

「Serverless(サーバーレス)」なサービスの特徴としては、サーバー管理作業のようなオーバーヘッドを無くすことで、システム等のリリースまでの期間を短縮できます。

リリース後にフィードバックを行い、システムを改善するサイクルを速めることも可能です。サーバーインスタンス等のシステムリソースも自動的にサイズ最適化してくれるので、プロビジョニング(リソースの構築準備)用の無駄なコストも掛かりません。

特に最近のAWSでは、サービスの「Serverless(サーバーレス)」化を積極的に採用する戦略を取っています。コンピューティング、アプリケーション、データストアの三層レイヤーのすべてにおいてその戦略が活かされ、数多くのサーバーレスサービスが提供されるようになりました。

「Serverless(サーバーレス)」サービスの具体例について


「Serverless(サーバーレス)」サービスの具体例について、「コンピューティング」、「アプリケーション」、「データストア」の三層レイヤーに分類できます。

これらの三層レイヤーごとに、具体例を解説していきます。

「Serverless(サーバーレス)」サービスの具体例1:コンピューティング

「Serverless(サーバーレス)」サービスの具体例1として、コンピューティングでは「AWS Lambda」、「AWS Fargate」があります。

「AWS Lambda」は、代表的なServerless(サーバーレス)なコンピューティングサービスで、プロビジョニング、クラスタースケーリング等のシステム管理作業は不要で、必要な機能を記述したコードのみを準備するだけとなります。

「AWS Fargate」は、「Amazon Elastic Kubernetes Service(EKS)」と「Amazon Elastic Container Service (ECS)」とで動作するコンテナ用の「Serverless(サーバーレス)」なコンピューティングエンジンです。同様にシステム管理作業が不要で、アプリケーションの構築のみに特化できます。

「Serverless(サーバーレス)」サービスの具体例2:アプリケーション

「Serverless(サーバーレス)」サービスの具体例2として、アプリケーションでは、「Amazon EventBridge」、「AWS Step Functions」、「Amazon Simple Queue Service(SQS)」、「Amazon Simple Notification Service(SNS)」、「Amazon API Gateway」、「AWS AppSync」があります。

これらのサービスは、単体で使用するよりも、他のAWSと連携して相乗効果を生むように構成する場合が一般的です。

「Serverless(サーバーレス)」サービスの具体例3:データストア

「Serverless(サーバーレス)」サービスの具体例3として、データストアでは「Amazon S3」、「Amazon DynamoDB」、「Amazon RDS プロキシ」、「Amazon Aurora Serverless」があります。

これらのサービスは、サーバーレスに加えて「マネージド型」でもあることで、利便性を向上させています。

「Serverless(サーバーレス)」サービスのユースケース


「Serverless(サーバーレス)」サービスのユースケースは、「Webアプリケーション」、「データ処理」、「バッチ処理」、「イベントの取り込み」等があります。

それぞれの代表的なケースについて解説してきます。

ユースケース1:Webアプリケーション

ユースケース1として、「To-Do リストアプリ」のWebアプリケーションがあります。

機能要件としては、ユーザーがリスト中の「To-Do」を作成、変更、表示、削除できるといった内容です。

具体的なアーキテクチャ例は、業務処理に「AWS Lambda」と「Amazon API Gateway」を採用した「イベント駆動型」のWebアプリケーションになります。

「Amazon DynamoDB」をデータベースとして利用します。また「Amazon Cognito」をユーザー管理に採用します。「AWS Amplify」コンソール上から静的コンテンツをアップロードします。

ユースケース2:データ処理

ユースケース2でデータ処理としては、「リアルタイムファイル処理」があります。

この処理のアーキテクチャは、「AWS Lambda」を利用した「イベント駆動型」の並列データ処理になります。イベントをトリガーとして新たな処理を行うといった業務処理に適したアーキテクチャです。

業務処理の例としては、会議録を「Markdown形式」で「Amazon S3」に登録します。登録により発生したイベントは、次の業務処理のトリガーとして機能します。次の業務処理としては、「Markdownファイル」を「HTMLファイル」に変換し、会議録の内容を分析して発言者の感情を分析する、といったケースが考えられます。

ユースケース3:バッチ処理

ユースケース3として、バッチ処理におけるデータ抽出、データ変換、ロードがあります。

具体例としては、「AWS Step Functions」を利用し、「AWS Lambda」によりデータ抽出、データ変換、ロード処理の実施といった、いわゆる「ETL処理」となります。

この「ETL処理」の対象データの例としては、一般に公開されている「オープンデータ」で、「AWSレジストリ」で利用できる「OpenAQ(グローバル大気品質データ)」等があります。

「ETL処理」自体は、トリガーを手動で作成する必要があります。この作成には「Amazon EventBridge」を利用することで、容易にスケジュール実行させることが可能です。

変換が完了すると、要約されたデータのS3での場所がE メールで通知されます。

ユースケース4:イベントの取り込み

ユースケース4として、イベントの取り込みにおける「Serverless(サーバーレス)」ドキュメントのリポジトリ処理があります。

この処理のアーキテクチャは、「キューイング」サービスを利用し、大量のドキュメントのリポジトリ用に設計されています。

「Amazon ML サービス(「Comprehend」、「Rekognition」等)」を活用し、ドキュメントファイルや画像ファイルに「インデックス」を付与し、そのインデックス情報を「Elasticsearch」に登録して高速インデックスデータを生成します。

その他の「Serverless(サーバーレス)」サービス


その他の「Serverless(サーバーレス)」サービスとして、「AWS Serverless Application Repository」や「AWS サーバーレスアプリケーションモデル」があります。

これらのサービスについて解説していきます。

「AWS Serverless Application Repository」とは?

「AWS Serverless Application Repository」とは、「Serverless(サーバーレス)」アプリケーションのための「マネージド型」のリポジトリサービスです。

チームや個人の間で、アプリケーションを再利用可能な状態で保存や共有が可能です。例えば、ソースコードを複製したり、ソースコードをパッケージ化したりできます。

「AWS サーバーレスアプリケーションモデル」とは?

「AWS サーバーレスアプリケーションモデル (SAM、Serverless Application Model)」とは、「Serverless(サーバーレス)」アプリケーション構築するためのオープンソース・フレームワークです。

アプリケーションの定義に「YAMLファイル」を利用し、モデリングすることが可能で、サーバーレスアプリケーションを迅速に開発できます。

サーバーレスなサービスで自社プロダクトの開発高速化コスト削減を実現しよう!

サーバーレスなサービスを紹介しましたが、いかがだったでしょうか。

このようなサーバーレスなサービスを利用して、自社プロダクトの開発高速化、コスト削減につなげてみてはいかがでしょうか。

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】