Cloud CDN (Content Delivery Network) は、Google Cloud Platform (GCP) が提供するコンテンツ配信ネットワークサービスです。ウェブサイト、動画、アプリケーション、APIなどのコンテンツを、世界中のGoogleのエッジロケーションから高速に配信することができます。Cloud CDNは、ユーザーに最も近いエッジロケーションからコンテンツを提供することで、レイテンシを低減し、ウェブサイトやアプリケーションのパフォーマンスを向上させます。
Cloud CDNは以下の主要コンポーネントで構成されています:
コンポーネント | 説明 |
---|---|
エッジロケーション | 世界中に分散配置されたGoogleのデータセンター。ユーザーに最も近いロケーションからコンテンツを配信 |
キャッシュ | エッジロケーションに保存されるコンテンツのコピー。頻繁にアクセスされるコンテンツをオリジンサーバーから取得せずに提供 |
オリジンサーバー | オリジナルのコンテンツを提供するサーバー。Cloud Storage、Compute Engine、GKE、App Engineなど |
ロードバランサー | トラフィックを適切なエッジロケーションやオリジンサーバーに分散。Cloud Load Balancingと統合 |
SSL証明書 | 安全なHTTPS接続を提供するための証明書。Google管理またはカスタム証明書を使用可能 |
Cloud CDNと他のCDNサービスには以下のような違いがあります:
Cloud CDNは、Google Cloud Console、gcloud CLIツール、またはAPIを使用して設定できます。
gcloud compute backend-services create my-backend-service \
--global \
--enable-cdn \
--cache-mode=CACHE_ALL_STATIC
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では、様々な方法でキャッシュ動作を制御できます:
オリジンサーバーからのレスポンスに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は、コンテンツを安全に配信するための様々なセキュリティ機能を提供しています:
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の生成
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 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は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は他の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バケットの作成
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 は、Google Cloud Platform上でのコンテンツ配信を高速化するためのフルマネージドサービスです。Googleのグローバルエッジネットワークを活用して、ウェブサイト、アプリケーション、APIなどのコンテンツをユーザーに最も近いロケーションから配信することで、レイテンシを低減し、ユーザー体験を向上させます。
Cloud CDNの主な利点は以下の通りです:
Cloud CDNを効果的に活用するには、適切なキャッシュ設定、コンテンツの最適化、セキュリティ対策の実装が重要です。また、他のGCPサービスと組み合わせることで、高性能で安全なコンテンツ配信ソリューションを構築することができます。