AWS Serverlessサービス温故知新

## はじめに

皆さん、サーバーレスしてますか？
re:Inventでもたくさんのアップデートがありましたね。
今回の記事では過去を振り返ってみようと思います。

## サーバーレスサービス年表

![Snag_11122330.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192873/d2935e44-b2ba-e96f-8d34-9275605aed90.png)

というわけでサーバーレスサービスの年表を作ってみました。
すべてのサービスではないですが、リリースノートを簡単に振り返っていきましょう！
※すべてのサービスを参照したい方は以下のリンクからどうぞ
[AWS でのサーバーレス](https://aws.amazon.com/jp/serverless/)

### Amazon S3(2006)

[リリースノート](https://press.aboutamazon.com/2006/3/amazon-web-services-launches)
[AWSブログ](https://aws.amazon.com/jp/blogs/aws/amazon_s3/)

>"Amazon S3 is based on the idea that quality Internet-based storage should be taken for granted," said Andy Jassy, vice president of Amazon Web Services. "It helps free developers from worrying about where they are going to store data, whether it will be safe and secure, if it will be available when they need it, the costs associated with server maintenance, or whether they have enough storage available. Amazon S3 enables developers to focus on innovating with data, rather than figuring out how to store it."
「Amazon S3 は、インターネット ベースの高品質なストレージは当然のものであるという考えに基づいています」と Amazon Web Services の副社長である Andy Jassy 氏は語ります。「これにより、開発者は、データの保存場所、データの安全性、必要なときに利用できるかどうか、サーバーのメンテナンスに関連するコスト、十分なストレージがあるかどうかなどについて心配する必要がなくなります。Amazon S3 により、開発者はデータの保存方法を考えるのではなく、データを使ったイノベーションに集中できます。」

S3はAWSが初めて一般に提供したサービスといわれています。
上記にもある通り、「開発者はデータを使ったイノベーションに集中できる」という考え方がこの頃から始まって、2024年の今までしっかりと受け継がれているのはほんとにすごいですよね。


### Amazon SQS(2006)

[AWSブログ](https://aws.amazon.com/jp/blogs/aws/amazon_s3/)

>The production release allows you to have an unlimited number of queues per account, with an unlimited number of items in each queue.
製品版リリースでは、アカウントごとに無制限の数のキューを持つことができ、各キュー内のアイテムの数も無制限です。

2006年は中学生だったんですけれども、この時代にもう「無制限の数のキュー、無制限のアイテム数」というのが謳われていたことに驚きです。


### AWS DynamoDB(2012)

[AWSブログ](https://aws.amazon.com/jp/blogs/aws/amazon-dynamodb-internet-scale-data-storage-the-nosql-way/)

>We want you to think big, to dream big dreams, and to envision (and then build) data-intensive applications that can scale from zero users up to tens or hundreds of millions of users before you know it. We want you to succeed, and we don’t want your database to get in the way. Focus on your app and on building a user base, and leave the driving to us.
私たちは、皆さんが大きなことを考え、大きな夢を描き、知らない間にユーザー数ゼロから数千万、数億にまで拡張できるデータ集約型アプリケーションを構想し、構築することを望んでいます。私たちは皆さんの成功を望んでいますが、データベースが邪魔になることは望んでいません。アプリとユーザーベースの構築に集中し、運転は私たちに任せてください。

はい、皆さんお待ちかねのDynamoDBですよ！
これが2012年なんですね。
大学生の時にMongoDBを使っていたので、DynamoDBの概念もすんなり理解できたのを覚えています。
ちなみに、今年のアップデートで[Aurora DSQL](https://aws.amazon.com/jp/blogs/news/introducing-amazon-aurora-dsql/)が発表されていましたね。
とうとうRDBもサーバーレスの時代が来たのかーと感動してました。

>本日、私たちは常時利用可能なアプリケーションに最適な、最速のサーバーレス分散 SQL データベース「Amazon Aurora DSQL」をご紹介します。Aurora DSQL は、事実上無限のスケーラビリティ、最高の可用性、そしてインフラストラクチャ管理ゼロを提供します。ワークロードの需要に合わせて、データベースのシャーディングやインスタンスのアップグレードなしにスケーリングできます。
(上記ブログからの引用)

### AWS Lambda(2015)

[AWSブログ](https://aws.amazon.com/jp/blogs/aws/run-code-cloud/)

>Lambda is a zero-administration compute platform. You don’t have to configure, launch, or monitor EC2 instances. You don’t have to install any operating systems or language environments. You don’t need to think about scale or fault tolerance and you don’t need to request or reserve capacity. A freshly created function is ready and able to handle tens of thousands of requests per hour with absolutely no incremental effort on your part, and on a very cost-effective basis.
Lambda は、管理が不要なコンピューティング プラットフォームです。EC2 インスタンスを構成、起動、監視する必要はありません。オペレーティング システムや言語環境をインストールする必要はありません。スケールやフォールト トレランスについて考える必要はなく、容量を要求したり予約したりする必要もありません。新しく作成された関数は、ユーザー側で追加作業を行うことなく、1 時間あたり数万件のリクエストを非常にコスト効率よく処理できる状態ですぐに使用できます。

はい、次はLambdaです。
GAは2015年ですが発表は2014年なので、約10年前ですね。
私が初めてLambdaを知ったのは大学生の時で、「FaaS(Function as a Service)」という単語を知った時だったと思います。
ちょうどPaaSやIaaSに代わる新しい概念がでてきたぞ、というので盛り上がっていたような記憶があります。

### Amazon API Gateway(2015)

[AWSブログ](https://aws.amazon.com/jp/blogs/aws/amazon-api-gateway-build-and-run-scalable-application-backends/)

>Today we are introducing the new Amazon API Gateway. This new pay-as-you-go service allows you to quickly and easily build and run application backends that are robust, and scalable. Instead of worrying about the infrastructure, you can focus on your services.
本日、新しいAmazon API Gatewayをご紹介します。この新しい従量課金制サービスにより、堅牢でスケーラブルなアプリケーション バックエンドを迅速かつ簡単に構築して実行できます。インフラストラクチャについて心配する代わりに、サービスに集中できます。

Lambdaとセットで語られることが多いAPI Gateway。
API GatewayとLambdaの組み合わせは非常に強力だと思います。
これにより開発者は本当にビジネスロジックにのみ集中することができ、煩雑なインフラの管理から解放される時代が来たんだと思います。

### AWS Step Functions(2016)

[AWSブログ](https://aws.amazon.com/jp/blogs/aws/new-aws-step-functions-build-distributed-applications-using-visual-workflows/)

>We want to make it even easier for you to build complex, distributed applications by connecting multiple web and microservices. Whether you are implementing a complex business process or setting up a processing pipeline for photo uploads, we want you to focus on the code instead of on the coordination. We want you to be able to build reliable applications that are robust, scalable, and cost-effective, while you use the tools and libraries that you are already familiar with.
複数の Web サービスとマイクロサービスを接続することで、複雑な分散アプリケーションをさらに簡単に構築できるようにしたいと考えています。複雑なビジネス プロセスを実装する場合でも、写真アップロードの処理パイプラインを設定する場合でも、調整ではなくコードに集中していただきたいと考えています。使い慣れたツールとライブラリを使用しながら、堅牢でスケーラブルでコスト効率に優れた信頼性の高いアプリケーションを構築できるようにしたいと考えています。

初めてStep Functionsを触ったときはいろいろと疑問に思うこともありました。
ジョブ管理ツールなのか、ノーコードツールなのかどういう立ち位置なんだろうと。
私が触ったときは利用できるサービスが限定的だったので、まだまだ伸びしろのあるサービスなのかな、という印象でしたが、アップデートでどんどん使いやすくなっているようです。
個人的に印象的なアップデートは以下でしょうか。

* [AWS Step Functions が AWS SDK 統合で 200 を超える AWS のサービスのサポートを追加](https://aws.amazon.com/jp/about-aws/whats-new/2021/09/aws-step-functions-200-aws-sdk-integration/)
* [[アップデート] AWS Step Functions で変数が使えるようになりました](https://dev.classmethod.jp/articles/step-functions-variables/)

ノーコードツールは今生成AIという別の切り口でサービスが展開されている部分もあるので、なかなか立ち位置が難しいと思いますが今後のアップデートに期待ですね。

## 最後に

2006から振り返ってみましたがいかがだったでしょうか。
個人的にも、開発者から不要なインフラ管理を取り除き、ビジネスの拡大に集中できるような環境を作る、というAWSの意思がずっと受け継がれているのを感じることができてよかったです。
今後もシステム開発はどんどん効率的になっていくと思います。
AWSの新しいサービスを使って、効率的に高品質なシステムを作れるように、これからも頑張って新しい情報をキャッチアップしていきましょう！！