[書評] AWS の使いどころとポイントがわかる「みんなの AWS」を読んでみた #awsforeveryone
2020-06-09AWS には 170 を超えるサービスがありますが、それらのサービスをどのように組み合わせて使えばよいのかは、実際に動くものを作ってみないと理解が出来ない部分が大きいです。今回紹介する 「みんなの AWS 〜AWSの基本を最新アーキテクチャでまるごと理解!」 では、 AWS の基本から最新情報も含めた AWS の使いどころとポイントが詰まっています。購入から少し時間が経ってしまいましたが、レビューを書いておきます。
届いた #みんなのAWS #awsforeveryone pic.twitter.com/oy9yyghbwi
— よっしー Lv.854 (@michimani210) April 20, 2020
目次
書籍の概要
AWS の基礎と最新情報が詰まった一冊になっています。詳細な目次は下にも書きますが、本書では次の 4 つの章で構成されています。
- AWS の基礎知識
- AWS で作るWeb サービス
- サーバーレスプラットフォームで作るモバイル向けアプリケーション
- AWS で作るデータの収集・可視化
AWS の全てのサービスに関する情報が書かれているわけではありませんが、一般的な Web アプリケーション構築、サーバーレスアーキテクチャでのアプリケーション構築、データ分析について、それぞれ AWS のサービスを利用したプラクティスについて書かれています。
AWS の基礎知識については、その前段階にあたる「クラウドとは」という内容から話が始まるため、これから AWS を、クラウドを始めようと思っている方にも読みやすい内容になっています。
また、本書内で紹介されているコードやハンズオンパートで使用するコードについては GitHub で公開されています。
著者
技術評論社から出版されている本書ですが、著者は AWS のプレミアコンサルティングパートナーで、「やってみた」系技術メディアの Developers.IO を運営されているクラスメソッドに所属しているエンジニアの方々です。 AWS について何か調べたことがある方なら、その技術ブログに一度はお世話になっていると思います。
普段ブログを書かれている方々が書いた書籍ということで、非常に読みやすい文章構成になっています。
書籍の目次
本書の目次は下記のようになっています。
-
1 章 AWS の基礎知識
- 1.1 クラウドとは
- 1.2 AWS のベストプラクティス
- 1.3 最低限押さえておくべきアカウント開設時のセキュリティ
- 1.4 AWS における監視 (モニタリング)
- 1.5 AWS を学習するコツ
-
2 章 AWS で作る Web サービス
- 2.1 本性で解説するアプリケーションの全体構成と利用する AWS サービス
- 2.2 AWS のネットワーク基礎
- 2.3 アプリケーション構築・運用手段としてのコンテナ関連サービス
- 2.4 CI/CD を実現する Code シリーズ
- 2.5 モニタリング:障害監視、リソース監視
- 2.6 アプリケーションセキュリティ
- 2.7 コードによるインフラの運用管理
- 2.8 CloudFormation を利用したコンテナアプリケーション構築
-
3 章 サーバーレスプラットフォームで作るモバイル向けアプリケーション
- 3.1 サーバーレスアーキテクチャとは
- 3.2 サーバーレスを実現する AWS サービス
- 3.3 構築するアプリケーションの全体構成
- 3.4 クラウド開発キット (AWS CDK) の準備
- 3.5 バックエンドアプリケーション (API) の構築
- 3.6 フロントエンドアプリケーションの作成
- 3.7 フロントエンドアプリケーションの配信
- 3.8 サーバーレスプリケーションのモニタリング
-
4 章 AWS で作るデータの収集・可視化
- 4.1 AWS で作るデータ収集基盤
- 4.2 データ分析の基本知識と AWS サービス
- 4.3 データレイクを構築する
- 4.4 データウェアハウスを構成し、グラフ表示する
- 4.5 機械学習を導入する
- 4.6 構築したシステム (AWS リソース) を削除する
各章の概要と感想
ここからは各章の概要を簡単に書いていきます。
1 章 AWS の基礎知識
この章は、 IT インフラの歴史からクラウドの登場、 そして AWS の登場についての内容から始まります。 AWS に関しては、 AWS Well-Architected フレームワーク に沿った内容で構成のポイントに触れられています。
アカウント開設時のセキュリティ設定に関連して、 IAM の概要と使い方、権限設定の考え方についても解説されています。監視については、 AWS での監視の核となる Amazon CloudWatch の各用語 (メトリクス、ダッシュボード、 Logs Insight など) について説明されています。
AWS を少し触ったことがある方にとっては基本的な部分のおさらいをすることができますし、 AWS が初めてだという人にとっても、導入としてわかりやすい内容になっています。
2 章 AWS で作る Web サービス
この章では、実際に AWS のサービスを組み合わせて Web アプリケーションを構築していきます。章の各節では Web アプリケーションの構築に使用するサービスの詳細説明と、インフラのコード化、 CI/CD についても触れられています。章の最後では、ハンズオン形式で Web アプリケーションを構築していく構成になっています。
ここで構築する Web アプリケーションは、下図のようないわゆる三層の Web アプリケーションになっています。
ご覧の通り、コンピューティングリソースには Amazon EC2 ではなく Amazon Fargate が利用されています。この構成を構築するハンズオンはマネジメントコンソールでポチポチするのではなく、すべて CloudFormation を使用して構築していきます。
サンプルとはいえ、実際そのままでも使える構成のアプリケーションになっていて、 CLoudFormation のテンプレート、スタック作成のセルスクリプトについても本番運用でそのまま利用できそうな内容になっています。個人的にはインフラのコード化の部分がすごく参考になったと感じていて、この部分の執筆を担当されている濱田さん (ハマコーさん) の IaC のノウハウがすごく詰まっていて良いなと思います。
3 章 サーバーレスプラットフォームで作るモバイル向けアプリケーション
この章では、サーバレスアーキテクチャの概要 (メリット、選択する理由) の話から始まり、 AWS でサーバレスを実現するためのサービスが紹介されています。そして、実際にそれらのサービスを用いたモバイル向け Web アプリケーションを構築するハンズオンが用意されています。
構築するアプリケーションのバックエンドは Amazon API Gateway 、 AWS Lambda 、 Amazon DynamoDB を利用し、フロントエンドには Vue.js でビルドしたアプリケーションを Amazon S3 に配置し、 Amazon CloudFront から配信する構成になっています。そして、それらは AWS CDK で管理するようになっており、サーバレスアーキテクチャだけでなく CDK についても学習することができます。
もちろんこの章で使用するコードについても GitHub で公開されています。
ここ最近はサーバレスという言葉をたくさん聞くようになって、個人的にも Lambda や DynamoDB はよく使うようになっています。 AWS CDK に関しては昨年 7 月に GA となって以来ものすごいスピードでアップデートがされていて、注目のフレームワークになっています。個人的には AWS CDK で IaC 人生をスタートしたと言っても過言ではないので、実際に CDK を使ったアプリケーションの構築を経験することができたのは良かったです。
4 章 AWS で作るデータの収集・可視化
この章では、 IoT デバイスから送信されるデータの収集基盤の構築、 AWS Glue 、 Amazon Athena 、 Amazon Redshift 、 Amazon QuickSight といったデータ分析サービスを利用したデータの分析方法について書かれています。
前半部分は、 AWS SAM (AWS Serverless Application Model) を使って IoT デバイスから送信されるデータの収集基盤を構築し、データの取得、格納の流れを確認できます。 IoT デバイスを実際に準備するのは難しいため、 EC2 上に仮想の IoT デバイス (アプリケーション) を構築し、データを IoT Core で受け取り Kinesis Data Firehose で処理するといった構成を構築します。
後半部分では、データレイク、データウェアハウスの用語の説明からはじまり、データウェアハウスを構築するために必要な前処理である ETL (Extract-Transform-Load) についても説明されています。その後、実際にデータレイク、データウェアハウスを構築し、 Amazon QuickSight でデータを参照するというハンズオンが用意されています。
正直、データ分析に関してはわからない部分が多すぎるので、実際に手を動かして分析基盤を構築できるのは良いなと思いました。あらためて時間を作ってハンズオンはやり直してみます。
まとめ
AWS の使いどころとポイントがわかる「みんなの AWS」を読んでみた話でした。
技術書に関しては、出版時点で既に情報が古くなっている可能性もあり、特に AWS に関しては日々のアップデートスピードがはやいので書籍を買うのは躊躇していました。しかし、日々のアップデートを追いかけるためにはそもそも今がどういう状態なのかを知る必要があります。そのためにはある時点での情報がぎっしり詰まっている書籍を買って、しっかり理解するというのは大事なことだなと感じました。
この「みんなの AWS」 に関しては出版イベントが開催され、 (ほぼ) 全著者集合で出版までの流れやそれぞれの執筆部分に対する想いについて語られていました。イベント参加者からの質問でも
あえて紙ベースで今後古い情報になっていくであろう書籍を買う意義って何なんでしょうか?
という質問があり、その答えとして
書籍は体系立てられた教材で学習するのに向いていると考えています。そのため、基礎がしっかりしている方、応用を知りたい方、最新情報に触れたい方などは、インターネットの公式ドキュメント等で学習すると良いと考えています。
という回答をされていました。
「みんなの AWS」では、この 体系立てられた教材で学習する という部分がしっかりできる書籍になっているなと感じました。ハンズオンで使用するコードも本番運用を意識された内容になっているので、公開されているサンプルコードを見るだけでも勉強になります。
書籍内では基本的な部分とポイントとなる部分が書かれていますが、より詳細な部分に関する情報については Developers.IO の関連記事の URL が記載されているので、それも親切だなと思いました。
そういう意味では、 AWS をこれから始めようと思っている方にはもちろんですが、私のように既に AWS は触っているけど実際の運用や構築方法に自信がないという方にもおすすめの書籍だと思います。
comments powered by Disqus