
サーバーレスによるAPI開発
はじめに
サーバーレスによるAPI開発を行ったので触りだけでも共有したいと思います。
実際には認証機構やデータベースも使用したので、これだけではありませんが、最低限の構成であればすぐ構築できるということが感じられれば幸いです。
サーバーレスとは
サーバーレスアーキテクチャ(以下:サーバーレス)とは、サーバーを自身で管理せずにアプリケーションの構築と実行を実現するアーキテクチャのことを指します。
サーバーレスには主に以下のようなメリット、デメリットがあります。
メリット
- サービス開発の時間短縮が計れる
- 開発者はコードのみに集中できる
- サーバーを管理、運用する費用を抑えられる
- コンピューティングリソースの拡張が容易
デメリット
- トランザクションが頻繁に利用されるシステムに向いていない
- 低レイテンシ(遅延)が求められるサービスに向いていない
サーバーレスAPIの構築に利用したアーキテクチャ
- AWS Lambda
Lambdaは、サーバーレスでイベント駆動型のコンピューティングリソースを提供するサービスです。
ユーザーはサーバーのプロビジョニングや管理をすることなく、あらゆるタイプのアプリやバックエンドサービスのプログラムを実行できます。
Lambdaで作成したプログラムはLambda関数と呼ばれ、今回作成したアプリでは後述するAPI GatewayによってこのLambda関数が呼び出されプログラムが実行されます。
- Amazon API Gateway
API GatewayはAPIの作成や管理を行うためのサービスです。
API Gatewayを使用すると、Lambdaで実行しているコードのカスタムAPIをすばやく簡単に作成し、LambdaコードをAPIから簡単に呼び出せます。
シンプルなAPI構築
簡単に言うと、Lambda関数を作成し、API Gatewayを作成し、それにLambda関数を紐づけし、APIをデプロイするだけです。
本当にこれだけで動くものが出来るのか思いますが、5分程度で構築でき利用可能となりました。
所感
APIを作成するには本来ならインフラ構築から初めていくと考えていました。
初めて触ってみましたが、特にインフラを気にする必要もなく、シンプルなAPIであればこんなに簡単に作成することができると驚きました。
全てを理解しているわけではないので、パフォーマンスにやはり課題があると感じました。もう少し突き詰めていけばそのあたりを解消することもできるとは思いますが、今回そこまで深く追わなかったので今後の課題としたいです。