LoginSignup
8
7

More than 5 years have passed since last update.

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

Posted at

はじめに

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は、あまり有効ではないように思います。(使い込んでみると、限界がくる。)

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

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7