Google Cloud Platformに戻る

Cloud CDN

Cloud CDNとは

Cloud CDN (Content Delivery Network) は、Google Cloud Platform (GCP) が提供するコンテンツ配信ネットワークサービスです。ウェブサイト、動画、アプリケーション、APIなどのコンテンツを、世界中のGoogleのエッジロケーションから高速に配信することができます。Cloud CDNは、ユーザーに最も近いエッジロケーションからコンテンツを提供することで、レイテンシを低減し、ウェブサイトやアプリケーションのパフォーマンスを向上させます。

Cloud CDNの主な特徴

Cloud CDNのアーキテクチャ

Cloud CDNは以下の主要コンポーネントで構成されています:

コンポーネント 説明
エッジロケーション 世界中に分散配置されたGoogleのデータセンター。ユーザーに最も近いロケーションからコンテンツを配信
キャッシュ エッジロケーションに保存されるコンテンツのコピー。頻繁にアクセスされるコンテンツをオリジンサーバーから取得せずに提供
オリジンサーバー オリジナルのコンテンツを提供するサーバー。Cloud Storage、Compute Engine、GKE、App Engineなど
ロードバランサー トラフィックを適切なエッジロケーションやオリジンサーバーに分散。Cloud Load Balancingと統合
SSL証明書 安全なHTTPS接続を提供するための証明書。Google管理またはカスタム証明書を使用可能

Cloud CDN と他のCDNサービスの違い

Cloud CDNと他のCDNサービスには以下のような違いがあります:

Cloud CDNの設定方法

Cloud CDNは、Google Cloud Console、gcloud CLIツール、またはAPIを使用して設定できます。

Google Cloud Consoleを使用した設定

  1. Google Cloud Consoleにログイン
  2. 「ネットワークサービス」→「Cloud CDN」に移動
  3. 「オリジンの作成」をクリック
  4. ロードバランサーを選択または新規作成
  5. バックエンドサービスを選択または新規作成
  6. Cloud CDNを有効化
  7. 必要に応じてキャッシュ設定をカスタマイズ
  8. 「作成」をクリックして設定を完了

gcloud CLIを使用した設定

バックエンドサービスの作成とCloud CDNの有効化

gcloud compute backend-services create my-backend-service \
    --global \
    --enable-cdn \
    --cache-mode=CACHE_ALL_STATIC

既存のバックエンドサービスでCloud CDNを有効化

gcloud compute backend-services update my-backend-service \
    --global \
    --enable-cdn

キャッシュ設定のカスタマイズ

キャッシュモードやTTLなどのキャッシュ設定をカスタマイズできます:

gcloud compute backend-services update my-backend-service \
    --global \
    --enable-cdn \
    --cache-mode=CACHE_ALL_STATIC \
    --default-ttl=3600

Cloud CDNのキャッシュ制御

Cloud CDNでは、様々な方法でキャッシュ動作を制御できます:

キャッシュモード

Cache-Controlヘッダー

オリジンサーバーからのレスポンスにCache-Controlヘッダーを設定することで、キャッシュ動作を細かく制御できます:

# 1時間キャッシュする
Cache-Control: max-age=3600

# キャッシュしない
Cache-Control: no-store, no-cache, must-revalidate

# プライベートキャッシュのみ許可(CDNではキャッシュしない)
Cache-Control: private

# パブリックキャッシュを許可(CDNでキャッシュする)
Cache-Control: public, max-age=86400

キャッシュキーのカスタマイズ

キャッシュキーをカスタマイズして、特定のヘッダーやクエリパラメータに基づいてキャッシュを分割できます:

gcloud compute backend-services update my-backend-service \
    --global \
    --cache-key-include-http-header=User-Agent \
    --cache-key-include-query-string=true \
    --cache-key-query-string-whitelist=language,version

キャッシュの無効化

コンテンツが更新された場合、特定のURLやパスのキャッシュを無効化できます:

# 特定のURLのキャッシュを無効化
gcloud compute url-maps invalidate-cdn-cache my-url-map \
    --path="/images/logo.png"

# ワイルドカードを使用して複数のパスのキャッシュを無効化
gcloud compute url-maps invalidate-cdn-cache my-url-map \
    --path="/images/*"

Cloud CDNのセキュリティ

Cloud CDNは、コンテンツを安全に配信するための様々なセキュリティ機能を提供しています:

SSL/TLS証明書

HTTPSを使用してコンテンツを安全に配信するための証明書を管理できます:

# Google管理証明書の作成
gcloud compute ssl-certificates create my-cert \
    --domains=example.com

# 自己管理証明書のアップロード
gcloud compute ssl-certificates create my-custom-cert \
    --certificate=/path/to/certificate.crt \
    --private-key=/path/to/private.key

署名付きURL

特定の期間のみ有効なURLを生成して、コンテンツへのアクセスを制限できます:

# 署名付きURLの生成
gcloud compute sign-url "https://example.com/video.mp4" \
    --key-name=my-key \
    --key-file=/path/to/key.pem \
    --expires-in=2h

Cloud Armorとの統合

Cloud ArmorセキュリティポリシーをCloud CDNと統合して、DDoS攻撃やウェブアプリケーション攻撃からコンテンツを保護できます:

# Cloud Armorセキュリティポリシーの作成
gcloud compute security-policies create my-policy

# ルールの追加
gcloud compute security-policies rules create 1000 \
    --security-policy=my-policy \
    --description="Block XSS attacks" \
    --expression="evaluatePreconfiguredExpr('xss-stable')" \
    --action=deny-403

# バックエンドサービスにポリシーを適用
gcloud compute backend-services update my-backend-service \
    --global \
    --security-policy=my-policy

Cloud CDNのモニタリングと分析

Cloud CDNはGoogle Cloud Monitoringと統合されており、パフォーマンスと使用状況を監視できます:

主なモニタリングメトリクス

ログの分析

Cloud CDNのログを有効にして、詳細なアクセスログを分析できます:

# ロギングの有効化
gcloud compute backend-services update my-backend-service \
    --global \
    --enable-logging

ログはCloud Loggingに保存され、以下のような情報が含まれます:

Cloud CDNのコスト最適化

Cloud CDNのコストを最適化するためのベストプラクティス:

コスト構造

Cloud CDNのコストは主に以下の要素で構成されています:

Cloud CDNのユースケース

Cloud CDNは以下のようなユースケースに適しています:

Cloud CDNとの統合サービス

Cloud CDNは他のGoogle Cloudサービスと統合して、より強力なコンテンツ配信ソリューションを構築できます:

サービス 統合の利点
Cloud Load Balancing トラフィックの負荷分散とCDN機能を組み合わせて、高可用性と高速配信を実現
Cloud Storage 静的コンテンツをCloud Storageに保存し、Cloud CDNで配信することで、高速かつコスト効率の良いウェブサイトホスティングを実現
Compute Engine 動的コンテンツを生成するアプリケーションサーバーと組み合わせて、ハイブリッドな配信アーキテクチャを構築
Cloud Armor DDoS保護とWAF(ウェブアプリケーションファイアウォール)機能を追加して、セキュアなコンテンツ配信を実現
Cloud Monitoring CDNのパフォーマンスと使用状況を監視し、問題を早期に検出
Cloud Logging 詳細なアクセスログを収集・分析して、ユーザー行動やパフォーマンスの問題を把握
Media CDN 大規模な動画ストリーミングやライブ配信に特化したCDNサービスと連携

Cloud StorageとCloud CDNの統合例

# Cloud Storageバケットの作成
gsutil mb -l us-central1 gs://my-cdn-bucket

# コンテンツのアップロード
gsutil cp -r ./website gs://my-cdn-bucket

# バケットを公開
gsutil iam ch allUsers:objectViewer gs://my-cdn-bucket

# ロードバランサーとバックエンドの設定
gcloud compute backend-buckets create my-backend-bucket \
    --gcs-bucket-name=my-cdn-bucket \
    --enable-cdn

# URLマップの作成
gcloud compute url-maps create my-url-map \
    --default-backend-bucket=my-backend-bucket

# HTTPSプロキシの作成
gcloud compute target-https-proxies create my-https-proxy \
    --url-map=my-url-map \
    --ssl-certificates=my-cert

# 転送ルールの作成
gcloud compute forwarding-rules create my-forwarding-rule \
    --global \
    --target-https-proxy=my-https-proxy \
    --ports=443

Cloud CDNのベストプラクティス

まとめ

Cloud CDN は、Google Cloud Platform上でのコンテンツ配信を高速化するためのフルマネージドサービスです。Googleのグローバルエッジネットワークを活用して、ウェブサイト、アプリケーション、APIなどのコンテンツをユーザーに最も近いロケーションから配信することで、レイテンシを低減し、ユーザー体験を向上させます。

Cloud CDNの主な利点は以下の通りです:

Cloud CDNを効果的に活用するには、適切なキャッシュ設定、コンテンツの最適化、セキュリティ対策の実装が重要です。また、他のGCPサービスと組み合わせることで、高性能で安全なコンテンツ配信ソリューションを構築することができます。