注目の記事

【書評】「AWSクラウドネイティブ本」はアプリエンジニア以上にインフラエンジニアに読んで欲しい

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ウィスキー、シガー、パイプをこよなく愛する大栗です。

先日2016年4月20日にSBクリエイティブより「Amazon Web Services クラウドネイティブ・アプリケーション開発技法 一番大切な知識と技術が身につく」が出版されました。「パターン別本」とも呼ばれるAmazon Web Services パターン別構築・運用ガイドに引き続き第二段という位置付けのようです。 著者および監修をされている佐々木 拓郎 様より本書を頂きましたので、内容について書きたいと思います。

一部では「鈍器本」とも呼ばれるほどに分厚く、なんと632ページという凄いボリュームになっています。

2016-04-18 12.02.07

アプリケーションエンジニアのためのAWS開発技法

AWSがインフラエンジニアだけのサービスではなく、アプリケーションエンジニアこそが活用するべきだと行っているように感じました。

今まではAWSを「簡単にITインフラが構築できるサービス」と紹介していることが多かったと思います。「簡単にITインフラが構築できるサービス」ということは「AWSの上にアプリケーションを乗せる」前提ということです。

しかし本書では「AWSを組み込んでアプリケーションを作る」ことを紹介しています。つまり、AWSを「簡単にアプリケーションが構築できるサービス」と捉えています。簡単にアプリケーションを構築できるのであれば、出番はアプリケーションエンジニアです。AWSを活かした開発をしたいアプリケーションエンジニアが読むべき1冊です。

では、インフラエンジニアは読む必要が無いのでしょうか?そんなことはありません。AWSを活かしたアプリケーションにはインフラの知識が不可欠です。インフラエンジニアがコードを書けばAWSを的確に活用できます。タイトルにアプリケーション開発技法と書いていますが、インフラエンジニが更にステップアップするために読むべき本だと感じました。

本書のポイント

Chapter1

まず目を引いたのは、「1-3 認証と認可の仕組み」です。認証と認可の違いを知ることで、本書の最も重要なサービスであるCognitoの理解が進みます。

Chapter2

「クラウドネイティブ・アプリケーション開発技法」をいう副題の通り、「2-3 開発環境の設定」をCLIやSDKのインストールだけでなく、アクセスキーの漏洩防止に役立つgit-secretsの設定方法や、Android Studioの導入方法まで紹介しています。

Chapter3

本章では、クラウドネイティブなアプリケーションに必要な以下のAWSサービスを紹介しています。AWSでアプリケーションを構築するために必要な知識をChapter3で確認しましょう。

  • Amazon Simple Storage Service(S3)
  • Amazon API Gateway
  • Amazon Simple Notification Service(SNS)
  • Amazon DynamoDB
  • AWS Lambda
  • Amazon Cognito
  • Amazon Machine Learning
  • Amazon Kinesis
  • Amazon Simple Queue Service(SQS)
  • AWS IoT
  • AWS Mobile Hub

圧巻の200ページ超は、Chapter3を別の本にして出版すればいいんじゃないかと思うくらいです。

Chapter4

スマフォアプリを中心として、Apple WatchやiBeaconと連携したアプリケーション、機械学習を連携させたサーバレスアプリケーションなど11個のサンプルアプリケーションでAWSの活用方法を紹介しています。各サンプルを丁寧に解説しており、非常に勉強がしやすくなっています。

この辺りは、私もスキルが全く不足しています。アプリケーションのサンプルコードが公開されていますので、特に興味を引いた「4-9 KinesisによるTwitter情報の収集」を中心に勉強したいと思います。なお、サンプルのコードは全体で30万行を超えています。

Amazon Web Services クラウドネイティブ・アプリケーション開発技法のサンプルアプリケーションをGitHubで公開しました

Appendix

「A-1 クラウドとエンジニア」は必読のコラムです。アプリケーションとインフラの境界が無くなってきている今後を、エンジニアがどのように進むべきかを示唆しています。

なお、情報収集の仕方としてDevelopers.IOも記載して頂きました。ありがとうございます。

まとめ

この本はアプリケーションエンジニアにもインフラエンジニアにもお薦めです。正確にはアプリケーションエンジニアやインフラエンジニアの殻を破ろうと考えているエンジニアが読むべきでしょう。

この1年間はAWSのサービスを紹介するのではなく、その次のステップを書いている本が増えていると思います。2015年11月に出版されたAmazon Web Services実践入門では、紹介しているサービスに対してAWS CLIのコマンドも記載しており大変玄人好みな内容になっています。今年の2月に出版されたAWSエキスパート養成読本では、AWSに最適化したアーキテクチャを紹介しています。そして本書が2016年4月に出版されました。この様にAWSの「使い方」ではなく、「使いこなし方」を紹介する書籍が増えています。

今までAWSといえば「簡単にITインフラが構築できるサービス」と見られる事が多くありました。しかし、CognitoやLambdaの発表から2年経ち、やっと今年は「簡単にアプリケーションが構築できるサービス」としてのAWSが広まる年になると考えています。