AWS で実現するモダンアプリケーション入門 〜サーバーレス、コンテナ、マイクロサービスで何ができるのか
エーダブリューエスデジツゲンスルモダンアプリケーションニュウモン サーバーレス コンテナ マイクロサービスデナニガデキルノカ
- 著者:
- 落水恭介 / 吉田慶章(オチミズキョウスケ / ヨシダヨシアキ)
- 出版社:
- 技術評論社
- 出版日:
- 2023年01月21日
- ISBN:
- 9784297133269
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
アプリケーションの設計・構築・管理を継続的に見直し、変化に迅速な対応をする開発戦略として、注目されている「モダンアプリケーション」。高い俊敏性・柔軟性のある開発を実現し、ビジネスを成長させることができます。しかし、モダンアプリケーション構築に役立つプラクティスは抽象度が高いことから、現場に適用しにくいのではないでしょうか。
そこで本書では、架空の開発現場を題材に、実際のプラクティスを解説。サーバーレスやコンテナによる運用改善・CI/CD パイプライン構築による自動化・アーキテクチャ最適化などを実践する方法を、イメージしながら読み進められるようまとめました。要件にあった技術選択をする重要性も紹介し、アプリケーションや組織の規模にあった考え方ができるようなアクティビティ (問いかけ) も提供しています。
各企業の技術戦略などによって最適解は変わりますが、アプリケーションの課題を改善して生産性を高めたい方にとって参考になる情報が多いでしょう。「なんとなく流行っているから……」「過去に使ったことがあるから……」という理由で技術選定されている現場に違和感を感じる方にもお勧めの 1 冊です。
技書の森解説
クラウドの上でアプリケーションを作り直したいのに、サーバーレス、コンテナ、マイクロサービスという言葉のどれから手を付ければよいか決められない。『AWS で実現するモダンアプリケーション入門』 (落水恭介、吉田慶章 著、技術評論社、2023 年 1 月刊) は、そうした状況に向けて、架空の開発現場を題材にモダンアプリケーションのプラクティスを実践する方法をまとめた書籍です。副題は「サーバーレス、コンテナ、マイクロサービスで何ができるのか」で、版元の紹介文によれば、サーバーレスやコンテナによる運用改善、CI/CD パイプライン構築による自動化、アーキテクチャ最適化などを扱い、要件にあった技術選択の重要性も紹介しています。刊行時の版元のプロフィールでは、落水恭介氏は 2018 年に AWS に入社したソリューションアーキテクトで Amazon ECS や Amazon EKS を中心にコンテナ関連の課題解決を支援しており、吉田慶章氏は AWS テクニカルトレーナーと紹介されています。
全 8 章の構成、モダンアプリケーションの定義から設計パターンまで
本書は全 8 章で、各章は「まとめ」の節で締めくくられます。第 1 章「モダンアプリケーションとは何か」でモダンアプリケーションのメリットとベストプラクティスを整理し、第 2 章で題材となるサンプルアプリケーションとそのシナリオを紹介します。第 3 章は「The Twelve-Factor App」と「Beyond the Twelve-Factor App」を軸に開発のベストプラクティスを扱い、第 4 章「データの取得による状況の可視化」ではビジネスデータ、運用データ、システムデータの 3 つと、オブザーバビリティ (可観測性) を取り上げます。第 5 章「サーバーレスやコンテナテクノロジーによる運用改善」と第 6 章「CI/CD パイプラインによるデリバリーの自動化」が実装基盤と届け方の章で、第 7 章「要件にあったデータベースの選択」は Purpose-built database の考え方を扱います。最後の第 8 章「モダンアプリケーションパターンの適用によるアーキテクチャの最適化」では、シングルページアプリケーション、API Gateway、メッセージング、Saga、CQRS、イベントソーシング、サーキットブレーカー、サービスディスカバリ、サービスメッシュ、フィーチャーフラグ、分散トレーシングの 11 のパターンが並びます。
架空のシナリオで技術選択の理由を追う読み方
本書の進め方の軸は、第 2 章で用意したシナリオを後の章でも使い回す点にあります。第 5 章ではサーバーレスとコンテナのワークロードを比較したうえで、「シナリオによるサーバーレスワークロードの構成例」と「シナリオによるコンテナワークロードの構成例」を別々に示し、第 6 章と第 7 章も「シナリオによる CI/CD の構成例」「シナリオによるデータベースの選択」という節を持ちます。同じ題材に対して複数の選択肢を当てはめるため、ある構成がなぜ選ばれ、別の構成ではなぜいけないのかを比べながら読めます。版元はアプリケーションや組織の規模にあった考え方ができるよう、アクティビティ (問いかけ) を提供していると説明しており、読者が自分の現場に置き換えて考える手がかりが組み込まれています。
サービスを分けるほど増える判断、データの整合性と観測
1 つのアプリケーションを小さな単位に分ける マイクロサービス の構成は、チームごとに独立して変更と配備ができる反面、それまで 1 つのプロセスの中で済んでいた呼び出しがネットワーク越しになり、障害の伝わり方や遅延の積み重なりを設計で受け止める必要が出てきます。データも同じで、サービスごとに保存先を分けると、複数のサービスにまたがる更新を 1 つのトランザクションで閉じられなくなり、結果整合性 を前提にした処理の組み立てが要ります。さらに、どこで処理が止まったのかを追うには、各サービスの記録を横断して見られる仕組みが欠かせません。本書の第 4 章と第 8 章が並べる題材は、こうした分割の代償に対する定番の打ち手に当たり、個々の技術を流行で選ぶのではなく、抱えている課題との対応で選ぶための見取り図として読めます。
運用負荷やリリースの速さに悩む開発者に向く一冊
版元は、機能改善や追加のスピードを上げたい方、運用負荷を軽減してコストも抑えたい方、自動化で効率と品質を向上させたい方、要件にあったテクノロジーやツールを選択したい方を、薦める読者として挙げています。また、技術選定が「なんとなく流行っているから……」「過去に使ったことがあるから……」という理由で行われている現場に違和感を感じる方にも勧めるとしています。AWS の各サービスの設定手順を画面に沿って一つずつ追いたい場合は、構築の手順を主題にした本を併せて選ぶほうが目的に合います。AWS の技術書を全体像、構築、設計、運用の観点から見比べたい人は、AWS 本の選び方 で位置づけを確かめておくと選びやすくなります。
既存のアプリケーションをクラウドに載せたものの、変更のたびに手作業の確認やリリースの調整に時間を取られている開発者にとって、サーバーレス、コンテナ、CI/CD、データベース、設計パターンを 1 つの題材の上でつなげて見られる本書は、次に何を改善するかを決める手がかりになります。自分の現場の課題を書き出してから読み始めると、各章のシナリオを手元の判断へ移しやすくなります。
言及した記事 (3 件)
この本は技書デッキのカードです (攻撃 12 / 備え 14) 図鑑でこの本を見る
この本に興味がある方におすすめ
関連する本
関連記事
体系的に学ぶ 安全な Web アプリケーションの作り方 第 2 版は初版と何が違うか - 買い直し判断ガイド
通称「徳丸本」こと体系的に学ぶ 安全な Web アプリケーションの作り方 第 2 版 (2018 年) と初版 (2011 年) の違いを出版社公表の改訂内容から整理。章の削除 / 新設 / 追加点の一覧と、初版所有者が買い直すべきかの判断基準を解説します。
OS / 低レイヤー本ガイド - コンピューターの仕組みを学ぶ技術書の選び方
OS、コンパイラー、ネットワークなど低レイヤーを学べる技術書の 4 ジャンルと、どこから始めるべきかの指針、賞味期限の見極め方を紹介します。
障害対応の夜に思い出す、あの本の 1 ページ
本番障害の緊迫した場面で、過去に読んだ技術書の知識が助けてくれることがあります。「いつか役立つ」知識が「今この瞬間」に変わる読書の価値を考えます。
関連用語
マイクロサービス
1 つの大きなアプリケーションを複数の小さなサービスに分割し、それぞれが独立してデプロイ / スケール可能な状態で協調動作するアーキテクチャパターン
C4 Model
ソフトウェアアーキテクチャを 4 つの抽象レベルで図示するモデル
SpringBoot
Java の定番フレームワーク Spring を、設定を簡素化して手早く使えるようにした基盤
シングルサインオン
1 回の認証で複数のアプリケーションやサービスにアクセスできる仕組み
コンテナ
アプリケーションとその依存関係をパッケージ化し、環境に依存しない一貫した実行環境を提供する仮想化技術
ポートとアダプター
アプリケーションのコアロジックを外部技術から分離し、ポート (インターフェース) とアダプター (実装) で接続するアーキテクチャ