目次
第1章 エッジコンピューティングの基本
1.1 エッジとはなにか
- エッジコンピューティングの重要性
- エッジコンピューティングの役割
1.2 エッジコンピューティングの歴史
- インターネットの発展と初期のWebサービス
- クラウドコンピューティングの普及と限界
- エッジコンピューティングの登場
1.3 Webアプリケーションの技術変遷
- インターネット初期
- 動的コンテンツの提供
- シングルページアプリケーションの普及
1.4 クラウド・サーバーレスとの違い
- クラウドコンピューティングとの比較
- サーバーレスコンピューティングとの比較
- クラウドコンピューティングとの関係
第2章 エッジコンピューティングの特徴と制約
2.1 Webアプリケーション構築要素
- ストレージ
- ネットワーク
- データベース
- ログとモニタリング
- 負荷分散
- スケーラビリティ
- キャッシュ
- セキュリティ
- バックアップとリカバリ
2.2 インフラ構築の簡素化
- サーバーの構築が不要
- ネットワークの設定が不要
- プログラムの実行環境の整備が不要
2.3 高速起動が可能なサーバーレス環境
- クラウドコンピューティングにおけるサーバーレス
- サーバーレスにおけるコールドスタートの課題
- コールドスタート問題の解決
2.4 多機能性と幅広い活用シーン
- オリジンサーバーから配信されるコンテンツのキャッシュ
- リクエストのルーティング
- コンテンツの動的書き換え
- セキュリティの強化
- 動的コンテンツの生成
2.5 性能とセキュリティ向上
- エッジコンピューティングとCDNの関係性
- クラウドとエッジコンピューティングのCDNの比較
- CDN機能を使用するメリット
- セキュリティ対策としてのWAF機能
2.6 WASMが広げる言語の選択肢
- WASM
- エッジコンピューティングにおけるWASMの活用
- WASMを使用する際の注意点
2.7 エッジコンピューティングの制限
- ハードウェアの制限
- ソフトウェアの制限
2.8 管理コストと複雑性
- 単一障害点のリスク
- 管理の複雑さの増加
- コストの増加
- アプリケーションの複雑性の増加
第3章 Cloudflare Workersの特徴と制約
3.1 Cloudflare Workers
- 基本概念
- 制限と制約
- Cloudflare Workersのセットアップ
- Cloudflare Workersのデプロイ
- Bindings
- オブザーバビリティ
- エッジロケーションに展開することのデメリットと対策
3.2 使用できるストレージサービス
- Cloudflare Workers KV
- Cloudflare Durable Objects
- Cloudflare D1
- Cloudflare R2
- 外部データベースの利用
3.3 その他の関連サービス
- Cloudflare Images
- Workers Assets
- Workers AI
- Cloudflare Zero Trust
第4章 Cloudflare Workersの活用例
4.1 オリジンの切り替え
- エッジコンピューティングでオリジンを切り替えるメリット
- パスベースでオリジンを切り替える実装例
4.2 ヘッダーの操作
- ヘッダーの操作で可能なこと
- エッジでヘッダーを操作するメリット
- 許可オリジンのリクエストをブロックしCORS対応を行う例
4.3 キャッシュの制御
- HTTPキャッシュの基礎
- エッジコンピューティングのキャッシュ制御と利点
- エッジでのキャッシュ制御の3つのアプローチ
- キャッシュアプローチの比較と選択指針
- キャッシュ制御の注意点
4.4 コンテンツの書き換え
- コンテンツ最適化の必要性
- エッジコンピューティングでコンテンツを書き換える利点
- HTMLを書き換えて画像の遅延読み込みを追加する実装例
- HTMLRewriterを使用したコンテンツの書き換え
4.5 画像の最適化
- fetchの拡張を利用する方法
- Images Bindingを利用する方法
- 画像最適化の注意点
4.6 Web標準のAPIでアプリケーションを構築
- WebSocket
- Streams APIとServer-Sent Events
- その他のWeb標準API
- ブラウザを補助するエッジコンピューティング
4.7 フレームワークの利用
- Hono
- React Router
- OpenNext
- フレームワークを利用する上での注意点
第5章 Cloudflare Workersとバックエンド実装
5.1 本章で扱うハンズオン
5.2 プロジェクトのセットアップとWorkersの基本環境の構築
- create cloudflareでのプロジェクト設定と各ファイルの説明
- 基本的なルーティングとレスポンス生成
5.3 オリジンサーバー連携と認証
- Google Cloud Runによるオリジンサーバー構築
- Cloudflare Workersからのオリジンサーバー連携
- 認証の実装とオリジンサーバーへの適用
- オリジンがCloudflare DNS管理下にある場合の連携例
5.4 ロードバランサーの構築
- ロードバランシングの基本概念
- パスベースのルーティング
- リージョンベースのルーティング
- セッションアフィニティ
- ヘルスチェックとフェイルオーバー
5.5 データベース連携とAPI構築
- Cloudflare D1のセットアップ
- REST APIの実装
- GraphQL APIの実装
- 外部データベースの選択
5.6 アプリの拡張と本番最適化
- Cloudflare R2を用いた画像公開設定
- Cloudflare AIを用いたアプリケーションの拡張
- 定期実行処理の実装
第6章 Cloudflare Workersとフロントエンド実装
6.1 本章で扱うハンズオン
6.2 事前準備
6.3 キャッシュ制御の実装
- キャッシュ戦略の基礎知識
- Cache APIによる手動キャッシュを実装
- Cloudflare Workers KVでSWRを実装
6.4 画像を最適化して配信
- Images Bindingの基礎知識
- 画像最適化システムを実装
- 画像変換ロジックを実装
- 動作確認と最適化の効果測定を実施
- 実運用での考慮事項
6.5 既存サイトをEarly Hintsで高速化
- リソースヒントの基礎
- Early Hints
- プロキシWorkersを実装する
- HTML解析とリソース抽出を実装
- Early Hintsを実装
6.6 OpenNextでアプリケーションを実装
- プロジェクトをセットアップ
- D1データベースを設定
- 記事管理機能の実装
- 本番環境へデプロイを実施
6.7 WebSocketサーバーを構築
- WebSocketとDurable Objectsの基礎知識
- セットアップとシンプルなエコーサーバーを実装
- チャットルームを実装
- メッセージ履歴を永続化
- Hibernationで効率的な接続管理
- 実運用での考慮事項
第7章 Cloudflare Workersの本番運用に向けて
7.1 ログとオブザーバビリティ
- Workers Logsの機能と活用
- Logpushによる長期保存とアラート
- Workers Tracesによるリクエストの可視化
7.2 ロケーションとレイテンシ最適化
- リージョンレス実行のメリットとレイテンシの課題
- Smart Placementによる最適化
- 適切な配置戦略の選択
7.3 データストレージ戦略
- ストレージオプション選択の基本的な考え方
- コストとストレージの組み合わせ戦略
- 本番運用での注意点
7.4 デプロイメント戦略
- デプロイメント方法の基本
- Wrangler Environmentsによる環境管理
- 段階的デプロイとロールバック
7.5 セキュリティとアクセス制御
- Cloudflare Accessの構成要素
- WorkersへのAccess適用方法
- Workersで認証ユーザー情報を取得・活用する方法