「AWSコンテナ設計・構築 [本格] 入門」を執筆しました

はじめに

前回の投稿から少し日が空いてしまいましたが、AWS x コンテナに関する商業誌を執筆したので、本ブログにて少し内容を紹介できればと思います🚀

本日、無事校了しました(発売日が10/21なので、結構ギリギリです)。

Amazon.co.jp: AWSコンテナ設計・構築本格入門 : 佐々木拓郎 新井雅也 馬勝淳史: Japanese Books

執筆の経緯と書籍のテーマ

2020年春先、APN Ambassadorであり多数のAWS書籍を執筆されている佐々木さん@dkfj、APN AWS Top Engineersの一人である馬勝さん@HorseVictoryと一緒に技術書典#8に出展したことが事の始まりです。

執筆したクラウドネイティブファーストストーリーが多くの読者の手にとっていただけたという背景もあり、佐々木さんのご厚意により、出版社(SBクリエイティブさん)に繋いでもらいました。 そこから、AWS x コンテナに関するテーマで執筆の企画が立ち上がりました。 今日に至るまでの1年半、読者層の検討から書籍内の構成検討〜執筆〜デザイン〜校正〜入稿を経て、ようやく校了までたどり着きました。

AWSに関する書籍は色々と世に出ていますが、本書籍は主にAWS x コンテナ(Amazon ECS / AWS Fargate)の設計・構築にフォーカスしています。 オーケストレータとして中心的な存在であるKubernetesを1つのテーマとして扱うことも考えたのですが、以下理由により見送りました。

 ・世の中にKubernetesに関する素晴らしい書籍が多数あること

 ・ECS / Fargateのアーキテクチャに関する関する体系的な書籍がそれほど多くないこと

 ・僕がKubernetesスペシャリストではなく、そもそも技術スキルが足りないこと (これが一番の理由💦)

一方、AWS SummitやAWS DevDayの登壇者テーマを見てもわかる通り、ECS / Fargateに関するアーキテクチャの人気は根強いです。 自分も業務で一通り経験した技術トピックでもあり、色々伝えられる部分があるかもな、と思って書き始めました。

また、AWSのコンテナサービスを全て扱うとボリュームが多く、それならECS / FargateでWell-Architectedフレームワークを考慮したプロダクションレディなアーキテクチャの設計・構築にしっかり触れた内容を読者の皆様に伝えたいなあ、という思いから、このテーマを選定し、出版社の方に企画を通していただきました。

書籍について

本の概要

5章で構成されており、1章の簡単なコンテナ概要からはじまり、2章ではコントロールプレーンとしてのECS/EKSやデータプレーンとしてのEC2/Fargateの特徴や組み合わせにおけるメリット・デメリットについて考察しています。 そして、3章でECS/Fargate x Well-Architectedなアーキテクチャ設計を学んだ後、4-5章のハンズオンへと続きます。

4-5章のハンズオンは3章で検討したアーキテクチャと一部対応するようになっており、学んだことが実践できるような構成になっています。 ただ、3章の内容を全てハンズオンすると優に辞書と化してしまうので、少しテーマを絞りました。

2021-10-06時点でまだ予約販売の段階ですが、システム管理・監査部門の売れ筋1位となりました。 読者の期待に見合う内容だろうか・・・と少し不安になっているところもありますが、総じてありがたい限りです・・・🙏

本の著者と監修者

監修者はAWS界隈では有名な佐々木さんです。 多数のAWS商業誌を執筆されているだけでなく、AWSのスキルについても非常に長けている大先輩です。 佐々木さんが執筆された、AWSの薄い本 IAMのマニアックな話のおかげで、ぼくもAWS IAMについてスキルアップできたことは言うまでもありません。

そして、著者は僕と馬勝さんです。 馬勝さんは AWSに関して詳しいだけでなく、モバイルアプリやバックエンドAPIなどフルスタックでコーディングスキルを持っているスーパーエンジニアです。 僕と同じく、金融業界の業務に携わっている期間も長く、セキュリティ観点でも強い優秀な後輩です。

本のスペック

出版社のご厚意もあり、今回はほぼフルカラーでの出版となります。

扱うテーマの関係上、トピックが割と複雑になりそうということもあったので、極力図をたくさん描きました。 数えてみると、図表が151個、画面キャプチャが245個とかなり多くなっています。

またページ数は440近くあり、ちょっと分厚いです。 ただ、3章まで読み進められれば4章以降のハンズオンは手を動かしながら実践すれば、割と読み進めやすいのではないかな、と勝手に思っています。 本当であれば、600ページ以上の内容があったのですが、だいぶ削ってしまいました。(出版社の方とは当初300ページ台ぐらいですかね〜と話していたのですが、大幅に超えてしまって申し訳ないお気持ち・・・🙏 )

対象の読者

対象の読者は次のような方々です。 書籍の名に含まれている「[本格]入門」の通り、これから初めてAWSを触る方向け、というよりはAWSは何となく知っている or EC2やサーバレスなどで少し感触は掴んでいる方がコンテナにチャレンジする、という設定です。

  • これからAWSを活用してコンテナを学習しようとしている方
  • オンプレミスからクラウドネイティブなアプリケーションへの移行を検討されている方
  • Lift& Shiftに向けて、コンテナを活用しようとしている方
  • プロダクション運用を念頭に置いたコンテナ設計を体系的に学習したい方
  • 自ら手を動かしながらAWSサービスを学びたい方

目次

目次は次の通りとなっています。

僕は主に「はじめに」、「1章」、「3章」の執筆を担当しました。

共著者の馬勝さんは「2章」、「4章」、「5章」を担当しています。

f:id:iselegant:20211006220119p:plain f:id:iselegant:20211006220134p:plain f:id:iselegant:20211006220150p:plain

本の内容を少しだけご紹介

本ブログでは、僕が担当した3章について少し紹介できればと思います(出版社より許可をいただき、販売前に一部掲載しています)。

3章では、AWS ✕ コンテナ設計(ECS/Fargate)のアーキテクチャをどう組み立ていくかというのがテーマです。 AWSでは優れたアーキテクチャを作り上げるためにWell-Architectedフレームワークという考え方を提供しています。 優れた運用効率、セキュリティ、信頼性、パフォーマンス効率、コストの最適化という5つの観点を考慮しつつ、AWSの各サービスとどう有機的に組み合わせていくか、という観点で様々な設計ポイントに触れていきます。

マルチアカウントを前提としたアーキテクチャなど、少し複雑な構成や考え方を扱う箇所もありますが、 プロダクションレディでシステムを作り上げていく上で必要になるトピックを可能な限り詰め込んでみました。 ↓はマルチアカウントにおけるイメージメンテナンスに関する内容です。

f:id:iselegant:20211006220234p:plain

また、セキュリティ設計が軸となるトピックに関しては、責任共有モデルとコンテナセキュリティガイダンスであるとNIST SP800-190を対比させながら、ECS/Fargateアーキテクチャで必要となるセキュリティ対策ポイントを解説していきます。

f:id:iselegant:20211006220302p:plain

単なる仕様説明、というよりはシステムを組んでいく際の思想や考え方を伝えられるように執筆してみましたので、興味のある方はぜひ読んでもらえると嬉しいです。

Special Thanks

本書が出版されるにあたり、大変多くの方々にレビューいただきました。 特に1~3章に関しては、APN Ambassadorである山口さん(@kinunori)やクラメソ ハマコーさん(@hamako9999)、アイスリーデザイン 久保さん(@seiyakubo)、同僚先輩の佐古さん (@sakon310)にレビューのお手伝いを頂いています。

※その他にもスペシャルな方にレビューしてもらったのですが、ここでは控えておきます。

どなたも専門性に富んだコメントで本書の根幹を成しています。ありがとうございました。

また、4-5章のハンズオンに関しては、たくさんの同僚に自分たちのAWSアカウントでハンズオンを実施いただき、たくさんの改善点をいただきました。 業務で忙しい中、時間を作ってくれて感謝しかないです。

最後に

執筆の途中で仕事(プロジェクト)が忙しくなったり、コロナの影響で出版担当者の方とのコミュニケーションがうまくいかず停滞したり、読者層と伝えたいレベル感の内容に悩んでモチベーションが維持できなかったりした時期もありました。 また、マネジメントコンソールの内容がガラッと変わったり、コンテナに関する新しいサービスが出たり。 進化と陳腐化が激しい分野ですが、できるだけ時代に即した形をお届けしようとした結果、出版2週間前の校了となってしまいました💦

AWSのみならず、昨今のクラウドネイティブ技術は進化が激しく、この本の内容もいずれは腐ってしまうかもしれません。 ただ、自分の知識を自分のものだけにしておくよりは、いろんなかたちでたくさんのエンジニアと内容を共有し、クラウドのみならず技術の素晴らしさに気づき、盛り上げていければ本望です。

ちなみに、書籍では書ききれなかったAWS設計の考え方やコラムなどはこちらのブログやTwitter(@msy78)上で随時共有・発信していければいいな、と思ってます。 また、本書ハンズオンに対応したIaCソースコード(CDK, Terraform, Pulumi)なども今後公開予定です。 本書3章のアーキテクチャで取り上げたものの、4-5章のハンズオンでできなかった部分に関しては、読者のフィードバックがあれば何らかの形(このブログ上とか?)で公開できればいいなとも考えています。

ぜひ忌憚のないフィードバックをいただけると嬉しいです😃