「『サーバーレス』の勉強を始めたいんだけど何すればいい?」「Lambda について教えてー。」「SAMのハンズオンしてほしい!」というような相談を最近多くもらうようになりました。そんな方におすすめしたいのが「サーバーレスアプリケーション開発ガイド」です。
Amazon Web Servicesを使ったサーバーレスアプリケーション開発ガイド
- 作者: 西谷圭介
- 出版社/メーカー: マイナビ出版
- 発売日: 2018/03/16
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
おすすめする理由は大きく2つあります。
- 実践で使える「深い」知見を得られる
- 「手を動かしながら」学べる
この記事では、この2つを軸に、簡単に本の内容を紹介させていただきます。
実践で使える「深い」知見を得られる
まず、この本の1章で、
- 「なぜ」サーバーレスなのか?
- 「いつ」サーバーレスを使うのか?
- 「どのように」サーバーレスを使うのか?
が解説されています。サーバーレスが初めての方は、この20ページ弱を読むだけでも非常に勉強になると思います。
その後、後述する「手を動かしながら学ぶ」ユースケースをベースにした章が始まるので、個々人が興味を持っている内容から読み進めるといいと思うのですが、各章で「こういう構成にすべき」だけではなく、「その背景にはこういう理由があって..」という解説があるため、
- サーバーレスにすべきか/サーバありにすべきかの検討をするシーン
- お客さんにサーバーレスな提案をするシーン
で、自信をもって議論/説明ができる力がつくと感じました。
特に、5章のサーバーレス構成におけるファイルアップロード方式の検討は、個人的にもどうするか悩んでいた部分だったので、非常に参考になりました。
サーバレスなファイルアップロード方式の部分がとても参考になる。#サーバレスアプリケーション開発ガイド
— ちゃんけ (@ketancho) 2018年4月5日
その他、
- Lambda と RDS の相性が悪い理由
- グローバルスコープを用いることで、コンテナの再利用を有効活用する
- DynamoDB のオペレーションの選択(
GetItem
,Query
,Scan
の動き)
などは、AWS でサーバーレス構成を採用する場合に抑えておきたい内容ですが、どれも丁寧に解説されていて非常に勉強になりました。
「手を動かしながら」学べる
個人的に、サーバーレスを学ぶには「実際に手を動かしながら学ぶ」のが一番手っ取り早く&楽しいと思います。3章以降はユースケース毎に CLI コマンドやソースコードが丁寧に紹介されており、「手を動かしながら学ぶ」のにもってこいです。紹介されているユースケースは下記の通りです。
- 3章: CloudWatch のメトリクスに応じて Lambda で AWS リソースの設定を変更する
- 4章: Kinesis を使って Twitter の内容を取得&DynamoDB に格納する
- 5章: SPA フロントエンド& REST API バックエンドをサーバーレスに構築する
- 6章: SAM や Code シリーズを使って、サーバーレスアプリケーションのCI/CDを自動化する
- 7章: XRay などを用いて、サーバーレスなシステムのトラブルシューティングを行う
特におすすめしたいのが、5章の「SPA フロントエンド& REST API バックエンドをサーバーレスに構築する」です。この構築手順を抑えれば、大抵のWebサービスは作れるのではないかと思います。また、ネイティブアプリのバックエンドとしても使えるので、アプリ屋さんは REST API バックエンドの部分だけでも理解できると、作れるサービスの幅がかなり広がると思います。
5章本当にいい内容だー。この章マスターするだけでサーバレスの基本的な実装できるようになるやつだ。#サーバレスアプリケーション開発ガイド
— ちゃんけ (@ketancho) 2018年4月6日
個人メモ
CW -> SNS -> Lambda の方式、実は実装したことないのでこれを機に手を動かしてみよう。あと普段 Python 独学で書いてるので、Python コードの部分?書き方?がとても参考になる。#サーバレスアプリケーション開発ガイド
— ちゃんけ (@ketancho) 2018年4月5日
URL 監視、ブループリントで提供されてるんだー。ブループリント経由で作ったことないのでどこかで一通り見てみよう。こう書くべきだというベスプラの宝庫な気がしてきた。#サーバレスアプリケーション開発ガイド
— ちゃんけ (@ketancho) 2018年4月5日
logging モジュール使ったことなかったー。使おう。#サーバレスアプリケーション開発ガイド
— ちゃんけ (@ketancho) 2018年4月5日
ついに Swagger を学ぶときがきたようだ(◯ヶ月ぶり◯回目)|SAM を使って CORS の設定を行うには SAMテンプレート内で Swagger による定義を行う必要があります。#サーバレスアプリケーション開発ガイド
— ちゃんけ (@ketancho) 2018年4月5日
差別化につながらないにも関わらず、不具合があるとビジネスインパクトが大きいタスクからの解放#サーバレスアプリケーション開発ガイド
— ちゃんけ (@ketancho) 2018年4月6日
謝辞
実は、元々この本は MUST BUY だと思っていたのですが、著者である西谷さんにおねだりして本を頂戴しました。本当にありがとうございます。非常に学びが多く、今後の血肉になったと感じます。5章の写経を通して、更に理解を深めていければと考えています。
まとめ
「サーバーレスアプリケーション開発ガイド」の感想と学びについて紹介させていただきました。先日の JAWS DAYS 2018 でもサーバーレス系セッションは非常に盛り上がりをみせていました。世の中に沢山需要がある反面、まだまだ枯れていない部分が多い分野ということもあり、エンジニアの関心が高いのだと思います。そんな中でまずは知識の土台を作れるこの本は本当に良い本だと感じました。本からナレッジを吸収し、自分のプロダクトに反映させ、今後も新しい知見をこのブログなどで共有していければと思います。
Amazon Web Servicesを使ったサーバーレスアプリケーション開発ガイド
- 作者: 西谷圭介
- 出版社/メーカー: マイナビ出版
- 発売日: 2018/03/16
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る