その後のその後

iOSエンジニア 堤 修一のブログ github.com/shu223

【書評】モバイルエンジニア向けのAWS解説書

著者・監修の佐々木 拓郎さん、 高柳さん、および SB Creative さまより『Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく』をご献本いただきました。



昨今のモバイルアプリケーションには大抵の場合バックエンドも必要になりますが、たとえば僕はiOSアプリしかつくれません。そういう場合に、他のサーバーサイドエンジニアやインフラエンジニアと組む以外に、ちょっと前であれば Parse.com を利用してサクッと済ませてしまう、という選択肢もありましたが、来年にはサービス終了してしまうという悲しい事態になってしまった今、やはりモバイルアプリケーションのバックエンドのインフラとして真っ先に候補に挙がるのは AWS(Amazon Web Services)です。


ただそのAWS、LambdaとかMobile HubとかIoTとか色々ありすぎて、手を付け始める前からハードルを感じてしまう部分があることも否めません。例えば外部デバイスからアプリで吸い上げたデータを置いておきたい場合にはどれがいいんだろう、とか。お手軽さとか値段とかそのデータをどう利用したいか等にもよるのだと思いますが、どう検討・比較したらいいのか素人目には難しく思えてしまいます。


前置きが長くなりましたが、そんなAWSの各種サービスについてモバイルエンジニアを対象読者として(※)解説されている本がこちらです。


(Kindle版もありますが、固定レイアウトのようです。)


600ページ強の大作です。以下、個人的にいいなと思ったポイントを紹介していきます。


※ちなみに実際には『対象とする読者は、モバイルやJavaScript等でフロントエンドアプリを開発するアプリケーションエンジニア』とあるのでモバイルエンジニアだけではないのですが、僕がモバイルエンジニアなのでその視点で書かせていただきます。

AWS各サービスの詳細かつ丁寧な解説

Chapter 3 には、各サービスの特徴や使いどころ、機能・導入方法・料金・制限事項など、かゆいところに手が届く情報がまとめられています。

  • 3-1 Amazon S3
  • 3-2 Amazon API Gateway
  • 3-3 Amazon Simple Notification Service
  • 3-4 Amazon DynamoDB
  • 3-5 AWS Lambda
  • 3-6 Amazon Cognito
  • 3-7 Amazon Machine Learning
  • 3-8 Amazon Kinesis
  • 3-9 Amazon Simple Queue Service
  • 3-10 AWS IoT
  • 3-11 AWS Mobile Hub


全項目に利用方法と基本的な使い方が書かれていて、それぞれ10〜20ページにわたって豊富なスクリーンショット付きで丁寧に解説されているので、迷うことなく試してみることができそうです。



すぐに使う予定があるわけではなくても、これを見ながら一通り触ってみるのも良さそうです。一度でも触っておけば、どんなことができるのかとか、どれぐらい簡単なのかとかの感触がつかめるので。(個人的には、Lambda、Machine Learning、IoT、Mobile Hub あたりを本書を見つつ触ってみたいと思っています)

興味深いサンプル群

Chapter4からは具体的なアプリケーションを実装してみるチュートリアルとなっており、モバイルエンジニアにとっても魅力的なサンプルが並んでいます。


以下にそのリストを列挙してみます。(個人的に特に気になったものを太字にしてみました)

  • 4-1 Cognitoによる認証を利用したスマートフォン向け写真共有アプリケーション(iOS/Android)
  • 4-2 API GatewayとLambdaによるサーバ連携するモバイルアプリケーション(Android)
  • 4-3 API GatewayとCognito、Lambdaを連携した認証・認可サービス
  • 4-4 API Gatewayを使ったモバイルのスタブAPI
  • 4-5 DynamoDBとApple Watchによる健康情報の収集(iOS/watchOS)
  • 4-6 iBeaconと連動する勤怠管理アプリケーション(iOS/Android)
  • 4-7 Device Farmを利用したモバイルの多端末自動テストの実施(Android)
  • 4-8 S3とLambdaによるキーワードキュレーションサービス
  • 4-9 KinesisによるTwitter情報の収集
  • 4-10 Machine Learningを用いたWeb閲覧履歴保存&キュレーションサービス
  • 4-11 Cognito Syncを使った簡易メモアプリケーション(iOS/Android)

カッコ()内はiOSもしくはAndroidのどちらのサンプルが付いているかを示しています


いかがでしょうか。太字をつけたものの、私はいずれのサンプルも実際に仕事で必要になりそうなシーンが浮かんで、自分で手を動かして試してみたい、と思いました。


ちなみにiOSのサンプルはSwiftで書かれています。

まとめ

アプリケーションエンジニア向けに書かれたAWS解説本、『Amazon Web Services クラウドネイティブ・アプリケーション開発技法』を紹介しました。普段あまりサーバーサイドの開発に携わることのない私のようなクライアントサイドのエンジニアにもわかりやすく、興味深い技術書だと思います。バックエンドやAWSまわりに興味がある・知識をつけたい方はぜひ一度書店などで検討されてはいかがでしょうか。(僕も勉強します!)