はじめに
今回はAWSのサーバレスサービスを紹介します!
ここでいうサーバレスは、AWSがサーバーを管理し、利用者側はサーバ管理不要なコンピューティングサービスを指すことにします。
利用者はサーバー管理不要なので、毎週のように来る脆弱性対応やミドルウェアの設定・管理、スケーリングを考えた構成をしなくて済みます。
また、利用者はビジネスロジックに集中でき、使用した分だけ課金されるので、コスパの良いサービスを作ることができます。
YouTube動画
動画で確認したい方はこちらをどうぞ
【YouTube動画】 AWSの主要なサーバレスサービス4選
AWS Lambda
LambdaはAPI呼び出し時やイベント発生時にLambda関数を実行できるサービスです。
Lambda関数はNode.jsやRuby, Pythonなどで書かれたコードを実行するために利用します。
S3やSQSと連携して、データを処理したり、スケジューリングにより定期実行したりできます。
Amazon API Gateway
API Gatewayは様々なサービスと連携して、REST APIやWebSocket APIを作成し、管理できるサービスです。
LambdaやDBと連携すると、CRUDのアプリも作れます。
AWS Step Functions
AWS上の様々なサービスを連携させて、ワークフローを作れるサービスです。
Lambda1の処理が終わったら、Lambda2に情報を渡したいといった場面で威力を発揮します。
このサービスを使わない場合は、Lambda1にLambda2の情報を入れておく必要があります。
Lambda関数の実行順やエラー時の対処をLambda関数外で制御でき、Lambda間を疎結合にできます。
AWS AppSync
GraphQLのAPIを簡単に作れるサービスです。
GUIでクエリ文を書いて実行できます。
ビジネスロジックはVTLという言語で記述します。
おわりに
今回はAWSのサーバレスサービスについて紹介しました!
サーバレスを簡単に扱うためのサーバレスフレームワークもいくつか候補があります。
例えば、AWS SAM CLIやServerlessなどがあり、ローカルで実験してデプロイすることもできます。
既存のフレームワークと同じように書きたい場合もRubyならRSpecが標準で使えるJetsなどがありますし、一度触ってみてはいかがでしょうか?