AWSの薄い本シリーズの第7弾を執筆しました!!
AWSの薄い本7 S3の深淵を知るためにAmazonの奥地に行った

タイトルの通りS3についての本で、 S3を使いこなすための知識を構造的に整理した1冊 です。
本日より BOOTH・技術書典オンライン で販売を開始し、明日(2025/11/16)の技術書典19(池袋)では紙版を直接頒布します。
S3の「奥深さ」に改めて向き合った理由
S3はAWSの歴史の中でも特別な存在です。2006年3月に登場し、AWSという名前を冠した最初のサービスでもあります。「AWSを使いこなす」ためには、このS3を深く理解することが避けて通れません。
一方で、S3はその“簡単そうに見える顔”とは裏腹に、ネットワーク経路・コスト・暗号化・アクセス制御・バックアップ設計など、多層的な知識が求められるサービス でもあります。
今回の本は、私自身がこれまで多くのプロジェクトでS3に向き合ってきた経験を踏まえつつ、「なぜそうなっているのか?」という構造的な理解を軸にまとめたものです。AWSを扱うすべての人にとって、実務で役立つ“手元に置く本”を目指して執筆しました。
どんな視点でこの本を書いたのか
今回の執筆では、次のポイントを重視しています。
- S3の構造を軸に理解すること
- 図と例を多く用意すること
- 実務で使う上で、知っておく必要を中心に整理
- 初心者〜中級者にも伝わる言葉で書くこと
シンプルなようで奥行きを持つS3を、無理なく体系として理解できるような流れにしています。
この本で扱った主なテーマを紹介します
- S3の内部構造と誕生の背景
- アクセス制御(IAM・バケットポリシー・KMS)
- ネットワークと接続経路
- コストと最適化の考え方
- バックアップとデータ保護の考え方
- パフォーマンス最適化
- 安全な運用と実践的ガイド
実務で迷わないために必要なものを、網羅しつつも読みやすい粒度でまとめています。
なぜ今、S3の“構造理解”が必要なのか
S3はシンプルに見えますが、実務での事故やトラブルの多くは以下の原因で発生しています。
- コストモデルの誤解
- ネットワーク経路の理解不足
- KMSの扱いを誤る
- アクセス制御の“二層構造”を意識していない
- バックアップ不要という誤解
- S3は「なんでも置けば良い場所」と思われがち
本書ではそれらを避けるため、
“構造の理解” → “設計原則” → “実践” の三段階
で理解しやすい流れにしています。
S3を理解すると、AWS全体がもっと見えてくる
好きなAWSサービスは何と聞かれると、S3とSQSと答えます。SQSはシステム間を疎結合にするためのキーファクターで、上手くつかいこなすとシステムの安定性はグッとあがります。そして、S3は数あるサービスの中で、もっともクラウドとして完成度が高いサービスだと思っています。S3があったからこそ、AWSはクラウドという新しい世界を作れたのだと考えています。
そして、S3はAWS設計の肝です。ここを理解するとアーキテクチャ全体が一段クリアになる。そんな実感を得られる一冊になるはずです。
目次情報
はじめに
本書の目的
対象読者
本書で得られること
本書のスタイル
お問い合わせ先
免責事項
第1章 S3を構造から理解する
1.1 S3とは何か?
1.1.1 オブジェクトストレージとは
1.1.2 「Simple」の意味
1.2 S3の内部構造とオブジェクトの仕組み
1.2.1 バケットとオブジェクト
1.2.2 キーとオブジェクトの関係
1.3 フラット構造とプレフィックス設計の影響
1.4 S3の信頼性と整合性
1.4.1 アベイラビリティーゾーンと冗長性
1.4.2 リージョンと可用性
1.4.3 データ整合性モデル
1.5 ストレージクラスと用途別の使い分け
1.6 S3誕生秘話:Werner Vogelsのブログ
第2章 S3のアクセス制御
2.1 IAMポリシーとバケットポリシーの関係
2.1.1 IAMポリシーと最小権限設計
2.1.2 バケットポリシーによるアクセス制限
2.1.3 IAMポリシーとバケットポリシーの関係
2.1.4 特定のVPCからのアクセス制限
2.1.5 S3 Access Grantsという選択肢
2.2 重要なデータを扱うバケットは二重の防御を
2.2.1 二重の防御が必要な理由
2.2.2 バケットポリシーを設定すべきもの/不要なもの
2.2.3 ReadOnlyAccessとViewOnlyAccessの違い
2.2.4 ReadOnlyAccess付与時の注意点
2.3 Block Public Accessと公開バケット
2.3.1 公開経路を根本から遮断する仕組み
2.3.2 4つの設定項目
2.3.3 S3は直公開せずCloudFront経由で公開
2.3.4 公開バケットは別アカウントで運用
2.3.5 安全な運用ルール
2.3.6 まとめ:誤公開を防ぐ構造的設計
2.4 Admin権限でも操作できないバケットの対処法
2.4.1 アクセス拒否の原因特定
2.4.2 Admin権限でも操作できない場合の対処
第3章 ネットワークと接続経路
3.1 AWSのネットワーク構造を理解する
3.1.1 パブリックIP通信
3.1.2 AWSグローバルネットワーク
3.2 EC2からS3への4つの接続ルート
3.2.1 Internet Gateway経由
3.2.2 NAT Gateway経由
3.2.3 VPC Endpoint(Gatewayタイプ)
3.2.4 PrivateLink(Interfaceタイプ)
3.3 通信経路別の比較と設計(コスト観点)
3.4 Direct Connect経由のS3アクセス
3.4.1 Private VIF
3.4.2 Public VIF
3.4.3 実際のユースケースと設計判断
3.4.4 Private VIFの注意点
3.5 まとめ:接続経路の正しい選択
第4章 S3のコストを理解する
4.1 ストレージクラスと料金体系
4.1.1 標準ストレージ
4.2 APIリクエスト料金の仕組み
4.2.1 ファイル数の影響
4.2.2 コスト差の実例
4.2.3 設計指針
4.3 ライフサイクル最適化
4.3.1 設定指針
4.3.2 コスト注意点
4.4 自動圧縮と最適サイズ設計
4.4.1 圧縮の仕組み
4.4.2 圧縮方式の使い分け
4.4.3 ファイルサイズ設計
4.4.4 ログデータのコスト削減
4.5 まとめ
第5章 バックアップとデータ保護戦略
5.1 バックアップが必要な理由
5.2 データ保護設計(IPA非機能要件)
5.2.1 Grade1
5.2.2 Grade2
5.2.3 Grade3
5.2.4 Grade4
5.3 バージョニングとオブジェクトロック
5.4 レプリケーション
5.4.1 CRR(クロスリージョンレプリケーション)
5.4.2 クロスアカウント構成
5.5 ランサムウェアとバックアップ
5.5.1 IAM権限を狙う攻撃
5.5.2 防御実装例
5.6 マルチクラウドでのデータ保護
第6章 パフォーマンスと最適化
6.1 性能と分散構造の理解
6.2 プレフィックス設計とスループット
6.3 S3 Express One Zone
6.3.1 性能比較
6.3.2 ユースケース
6.4 パフォーマンス測定
6.5 キャッシュ戦略
6.5.1 CloudFront
6.5.2 アプリケーションレイヤ
6.6 まとめ
第7章 安全に運用するための設計指針
7.1 KMSによる機密データ保護
7.2 公開アクセスブロック(BPA)
7.2.1 Block Public Access
7.2.2 公開データの分離
7.2.3 CloudFront利用時の注意点
7.3 監査・運用体制
7.4 まとめ:正しいS3運用のためにあとがき
著者紹介
既刊一覧