プログラマでありたい

おっさんになっても、プログラマでありつづけたい

アプリケーションエンジニア向けのAWS本を書きました

 たまに呟いていましたが、『Amazon Web Services パターン別構築・運用ガイド』に続くAWSの第二弾として、『Amazon Web Services クラウドネイティブ・アプリケーション開発技法』という本を書きました。今回も、所属している会社であるNRIネットコム株式会社の同僚たちと書いています。そして今回の本は、主にアプリケーション・エンジニアを想定して書いています。何とEC2の使い方が一切でてきません。

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく

  • 作者: NRIネットコム株式会社,佐々木拓郎,佐藤瞬,石川修,高柳怜士,佐藤雄也,岸本勇貴
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2016/04/20
  • メディア: 単行本
  • この商品を含むブログを見る

本を書いた理由



 前回の『Amazon Web Services パターン別構築・運用ガイド』で、サーバサイドのAWSの構築についてはわりと書ききって、もうしばらくAWSはいいやと思っていました。しかし、自分が想定していた以上にAWSの進化が早すぎました。クラウド・ネイティブやサーバレス・アーキテクチャと呼ばれる仮想サーバを利用せずにシステムを構築する概念が出てきて、それを支えるためのサービスが急速に整ってきたためです。
 一方で、いわゆるインフラエンジニアと呼ばれる人たちには、何が凄いのかピンとこない部分があります。またモバイルやJavaScriptを得意とするアプリケーション・エンジニアには、そもそも情報があまり伝わっていないように思えました。ということで、書くのならば今しかないと予定を早めての投入です。

本書の構成



 まだ校正中ですが、4部構成となっています。

1. クラウドネイティブなアーキテクチャ
2. AWS導入の準備
3. サービスの導入
4. クライアントサイドの設計と構築
付録1 クラウドとエンジニア
付録2 Open API Initiative (OAI) (旧Swagger)

 1章で、クラウドネイティブの概念の説明と、そのアーキテクチャがどうなるかという話を書いています。AWSを念頭に書いていますが、AWS以外のクラウドサービスでも適用できるはずです。2章は、実際にAWSを利用する為の前準備です。アカウントの作成やIAMの設定、SDKの導入などを書いています。
 3章からが本番で、本書で使うAWSのサービスの説明と使い方・サンプルソースを載せています。Lambda,API Gateway,Cognito,DynamoDBなどクラウドネイティブな設計において中心的な役割を果たすサービスの他に、KinesisやAWS IoT、Machine Larning、Mobile Hubと新しいサービスも取り扱っています。ちなみにEC2は取り扱っていません。
 そして4章です。3章で紹介したサービスを組み合わせて、実践的なアプリ構築をおこなっています。iOSやAndroidの他に、フロントエンドアプリとしてJavaScriptを利用したアプリを作っています。チラ見せすると、「サーバ連携するモバイルアプリの作り方」、「Kinesisによるお手軽ELTでTwitter情報の収集」、「Machine LearningでWebサイトの閲覧履歴とお勧めサービス」、「AppleWatchを利用した健康情報の収集」といった感じです。こういったアプリを10個取り扱います。
 付録については、API Gatewayを扱うには外せないSwagger(Open API Initiative)と「クラウドとエンジニア」ということで技術ポエムを書いています。ポエムについてはちょっと恥ずかしいですが、この変化の時代には考え方も大事だなということで載せています。そこの部分は私が書いています。

 ちなみに分量が多すぎて、AWSの分厚い本と言われた前回の本より大幅にボリュームが多くなっています。その分量をどうやって削るか、四苦八苦しています。

対象としている読者



 今回の対象としている読者はアプリケーションエンジニアです。特にモバイルやフロントエンドエンジニアと呼ばれる人に読んで欲しいと考えています。こういった人たちは、Parseに代表されるようなBaaS/SaaSを当たり前のように使っています。そういう人たちが、AWSを使うことにより、もっと自由度高く素早くサービス構築できるということを知ってもらいたいと思っています。
 もちろん今までAWSを使ってインフラを構築してきたエンジニアにも読んでもらいたいです。サーバの上にミドル・アプリをインストールして一からシステムを構築する時代は、オンプレからクラウドに移り変わったように、終わろうとしています。そのことを体感して貰えればなと思います。(ちなみにサーバ構築が完全になくなることは無く、主従が逆転するのではと考えています。)

Kinesis



 IoTを意識して、Kinesisiも入れています。このサービス改めてちゃんと調べると、やっぱり凄いですね。スシローさんの皿センサーのイメージが強くてIoT向きというイメージ強いですが、それだけでは勿体ないです。今では、Webサービスにこそ、もっと使うべきだなと思います。上手く使えば、可用性が高くてコストが安く楽ちんなシステムになるのが一杯あるはずです。ここは今後もっと深掘りしていきたいですね。

まとめというか感想



 今回の本は、面白いメンバーを集めて好き勝手に書けたので楽しめました。若手エースのアプリエンジニアを集めたので、実装とか見ているのも楽しかったです。一方で例によって書いてる途中でどんどんサービスがアップデートされ、追随するのは大変でした。ただ、AWSを使ってアプリを構築するにはという点では、長く使える1冊にはなったのではないでしょうか。発売まであと1ヶ月ほどです。最後の最後まで精度を上げるために校正をがんばります。
 ちなみに今回も、書名を覚えられそうにないです。

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく

Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく

  • 作者: NRIネットコム株式会社,佐々木拓郎,佐藤瞬,石川修,高柳怜士,佐藤雄也,岸本勇貴
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2016/04/20
  • メディア: 単行本
  • この商品を含むブログを見る

See Also:
Amazon Web Services クラウドネイティブ・アプリケーション開発技法の目次
『Rubyによるクローラー開発技法』を書きました
『Amazon Web Services パターン別構築・運用ガイド』を書きました
プログラマになりたい Advent Calendar 2015 - Qiita
プログラマになりたい Advent Calendar 2015 - Adventar