【書評】サーバーレスシングルページアプリケーション

こんにちは、sparkgeneです。

ServerlessConf Tokyo 2016Serverless Community(JP)のオーガナイザでもある吉田真吾様より、2017/6/23にオライリー・ジャパンより発売されたサーバーレスシングルページアプリケーション ―S3、AWS Lambda、API Gateway、DynamoDB、Cognitoで構築するスケーラブルなWebサービスを頂きましたので、本書についてご紹介したいと思います。

技術系の書籍を読む背景や目標は人によって様々です。この書籍では『本書の読み方』というまえがきにて、それぞれの目標に応じた読み進め方が紹介されています。

目標1 サーバレスvs.従来のシングルページアプリケーションを理解する
目標2 初めてのシングルページアプリケーションを作る
目標3 お気に入りのWebフレームワークを使ってサーバレスアプリケーションを作る
目標4 MVP(Minimum Viable Product:実用性最低限の製品)を作る

それぞれ読者の立場になってこの本をどう読み解いていくかが紹介されているので、流し読みするよりもより理解度が深まると思います。

読み終えた感想

本書を読むことで、AWSを使ったサーバーレスのSPAを作るうえでどのようなマネージドサービス使って実現できるかが理解出来ます。私自身サーバーレスでSPAを作ったことはないので、Cognitoなどが特に参考になりました。

題名に『シングルページアプリケーション』とありますが、フロントエンドとしてiOSやAndroidなどのネイティブアプリを作る場合でもCognito、DynamoDB、Lambda、API Gatewayを使ったサーバーレスの構成は参考になることでしょう。

本書でサーバーレスの基本を学び、より複雑なアプリケーションが必要になったらAWSの他のマネージドサービスと組み合わせることで、より高度なサーバーレスアプリケーションを作れると思いました。

気になった章を簡単に紹介

4章:Amazon CognitoによるIdentity as a Service

AWSのCognitoを使って外部プロバイダの認証サービスを利用する方法が紹介されています。

ちょっとしたサービスを作る場合でも認証のために個人情報を持つとなると色々と考えなければならないことが増えてしまいますが、これならそういったことを最低限に抑えられるのでいいですね。

5章:DynamoDBにデータを格納する

この本ではサーバサイドで必要な処理はLambdaで実現していることから、Lambdaと相性の良いDynamoDBを解説しているのがいいですね。先日DynamoDB Accelerator (DAX)が正式リリースされましたが、負荷の高いDBアクセスでもレイテンシーが小さくなるし、今後より出番が増えるのではないかと思います。

6章:Lambdaを使って(マイクロ)サービスを作る

AWS SDKから直接Lambdaファンクションをinvokeする方法とAPI Gatewayを使って読み出す方法が両方とも紹介されています。サンプルではNode.jsを使った場合の解説となっていますが、Pythonを使った場合でも大きな違いはないので参考になります。

さいごに

もっとサーバーレスのこと詳しく知りたい!と思ったら。

先月にアメリカはオースティンで開催されたServerlessconfの各セッション動画が公開されています。世界の最先端のサーバーレス事例を見ることができます。

国内の事例は?と思ったら、私もお手伝いさせていただいているServerless Community(JP)に参加して、meetupで実際の事例などを聞くのも良いかと思います。