[書評]サーバーレスアプリケーション開発ガイド

More than 1 year has passed since last update.


はじめに

Amazon Web Servicesを使ったサーバーレスアプリケーション

西谷さんに献本いただきました。ありがとうございます!!

hon.png

サーバーレスアプリケーションに関して、

語句の説明からユースケース、コード例まで、まとめられていました。

サーバーレスアプリケーション(AWS)入門へは、内容の濃い、

とても良い本だと感じました。

この本に関する西谷さんのブログ記事

本書くの大変そうだけど、面白そうだなー!!


思ったこと


Lambda!!!!

サーバーレスの文脈においての主役。

「いか上手くLambdaをユースケースに乗せれるか」がポイントかな。と。

例として挙げられているのは、

* Twitterのリアルタイム分析

* 写真投稿サイトのシングルページアプリケーション


Twitterのリアルタイム分析

要するに、クライアント側から、大量データがKinesis Data Stream

流れてくるので、Event Source付けてLambdaでリアルタイムに

処理しましょう。って感じ。

メリットとして、

* データが入った時しかプロビジョニング(課金)されない

* 大量データをシームレスにスケールさせてさばける

ここでは、Lambdaで処理させた後、DynamoDBへデータが格納される例であった。

Lambdaの後ろのデータストアが「なぜDynamoDBか。」に関して、とても重要だと思う。

上記に関して、後ほど詳細な説明があった点が、かなり良かった。(5-2 p87~)


写真投稿サイトのシングルページアプリケーション

こちらの例では、認証・認可から始まり、S3ウェブホスティング等で実装。

バックエンドをAPI Gateway, Lambda, DynamoDB等で実装。

特に5-2p86~がなぜこのサービスを選定したのか。

という理由が書かれている。

AWSをベンダーに選ぶ上で重要なのは、このサービス選定だと僕は思ってます。

数あるサービス群の中から、システム要件にマッチしそうなサービスを選択することは、

とても難しく、これを間違えると、

とても大きな損失(時間・コスト・リスク)につながりかねません。

また、サービスの使い方も一通り、コード例を交えながら書かれている。

こちらも実際に動かしながら、学習できるので良いポイントだと思いました。


6章 サーバーレスアプリケーションのライフサイクル管理

ここもとても重要な章だと思います。

ここではSAMを使った例、複数環境(dev環境, test環境, prod環境)の管理方法など紹介があり、

参考になります。


7章 トラブルシューティング

運用ですね。

サーバーレスで開発すると、〜のメリットがある。と冒頭部分にいろいろ書かれていました。

* サーバー運用から解放される

など。

ですが、反面、実際のシステム・アプリケーションの運用は、複雑で大変になると僕は思っています。

そのデメリットを解決するために、運用基盤を早期から整えておく必要があります。

ここがしっかりしていないと、運用が回らず、すごく苦労することになると思います。

DevOps!!!!がすごく大切だと思います。


さいごに

開発ガイドとしては、とてもわかりやすく、手を動かしながら学習できるので、おすすめです!(僕は動かしませんでしたがw)

あと、最近気づきましたが、サーバーレス(シームレスにスケール)の文脈に

Step Functionsは、あまり有効ではないように思います。(使い込んでみると、限界がくる。)

サーバーレスに組んでいくと、機能が小さい単位で切り出されていって、マイクロサービス風に近づくように設計されていくのかな?なんかふと、思いました。