MEGAZONE

MEGAZONEブログ

Building serverless applications with AWS storage
re:Invent 2023 Serverless Compute

Building serverless applications with AWS storage

Pulisher : Managed & Support Center キム・ソンド
Description : S3とEFSを使ったアプリケーション構築の説明セッション

はじめに

サーバーレステクノロジーは、俊敏性を高め、コストを削減し、モダンアプリケーションを構築するのに最適です。
ストレージなどのバックエンドコンポーネントのプロビジョニング、メンテナンス、スケーリングを意識することなく、アプリケーションに集中することができます。
今回、S3とEFSを使ったアプリケーション構築について深く学びたいと思い、このセッションを申し込みました。

サーバーレスの概要

サーバーレスは速度、性能、コスト、セキュリティをすべて満たすことが可能です。

サーバーレスの代表的なサービスはAWS LambdaとAWS Fargateがありますが、サーバーレスは単なるコンピューティングだけではありません。
データを保存できるS3、EFS、DynamoDBと統合サービスであるAPI Gateway、AppSync、SQS、SNS、Step Functions、EventBridgeなどが全て含まれます。

Lambda

Lambdaの場合、/tmpに一時的にデータを保存することができ、追加費用なしで各Lambda Functionに512MBのテンポラリストレージが利用でき、追加費用を払うことで最大10GBまでのテンポラリストレージが利用できます。

Amazon S3 イベント通知

ストリーミングでS3にデータが入る度にイベントを実行させることができ、Event Bridgeのフィルターを追加すると、それぞれ違うLambdaを実行させることができます。
データがたくさん入ってくるとターゲットを早く処理できないので、途中でSQSやSNSを使う必要があります。

Amazon S3

S3はAWSで2番目に古いサービスで、2006年3月14日(円周率の日)に作られました。
数十億個のオブジェクトを保存することができ、ペタバイト規模に自動拡張されます。 そのため、単にストレージへのアクセス方法のみを考慮するだけです。

Amazon EFS と AWS Lambda

EFSとAWS Lambdaを利用して写真のようなアーキテクチャを作ることができます。 また、EFSの場合は新しいTierが発表されたとのことで、詳細は下記のリンクから確認できます。
https://aws.amazon.com/ko/blogs/aws/optimize-your-storage-costs-for-rarely-accessed-files-with-amazon-efs-archive/

GenAI Demo

Amazon S3とBedrockサービスを組み合わせてGenAIをデモを披露されました。
また、Amazon CodeWhispererでコードを自動で生成した後、API Gatewayを通じてその場でコードを生成するのも印象的でした。
AWS SDKによって回答内容が異なり、下の写真のようにLambdaからファイルを呼び出して保存したり、一時的に生成するファイルは”/tmp/”に保存することが確認できました。

セッションを終えて

ひとつのセッションでいくつかのサービス(Lambda, API Gateway, S3, Bedrock, Code Whisperer)を利用して実際のアプリケーションを作成して構築するセッションでした。
セッションを通してProductionアプリケーションで100個以上のLambda Functionを使うユーザーが多いことに驚きました。
そして、簡単なサービスの場合、上記のサービスを利用して素早く構成が可能で、S3のメリットであるデータ保存の心配がなく、使った分だけ支払えば良いという点が印象的なセッションでした。

ブログ一覧

この記事の読者はこんな記事も読んでいます