ナカザンドットネット

それって私の感想ですよね

プチ書評:「Cloudflare Workers実践ガイド」にはエッジコンピューティングの魅力が詰まっている

こんにちは、Cloudflare Workersやってますか!? 社内の小さいツールを作ることが多い僕にとっては欠かせないツールになっています。

さて、このたび、技術評論社さんから「Cloudflare Workers実践ガイド」という本が出ることになりました。

著者は、OSSの開発や情報の発信において国内でもかなり熱心なお二人、 @aiji42_devさんと@chimame_rtさんです。

実は私もレビューに参加させていただきました。理解しやすい文脈の組み立てなどの面でいくらかお役に立てたかなと思います。

というわけで献本いただきましたヤッター🙌

Cloudflare Workers実践ガイド

目次は次のとおり。

▶︎ 目次を開く

第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で認証ユーザー情報を取得・活用する方法

結構なボリュームです。エッジコンピューティングという分野の解説から、Cloudflare Workersの基礎と活用方法を解説して、本番運用で困りがちなことへのアドバイスなども含んだ読み応えのある一冊となっています。AWSやGoogle Cloudの経験者向けの言及なども随所に含まれているので、クラウドコンピューティング出身者の方も読みやすいと思います。

個人的には「第4章 Cloudflare Workersの活用例」が本当にエッジコンピューティングならではのユースケースの宝庫になっていてアツいと思いました。

もう使い始めている皆さんも、食わず嫌いから抜け出したい皆さんも、ぜひ手に取ってみてはいかがでしょうか! 5月26日発売です、よろしくお願いします!

P.S.

書泉ブックタワーさんではもう売ってるらしいです。