負荷分散を目的とするウェブ パフォーマンスの高速化とウェブ保護の改善

このチュートリアルでは、Cloud CDN と Google Cloud Armor を既存の外部 HTTP(S) ロードバランサのデプロイに追加することの意義について概説します。外部 HTTP(S) ロードバランサを使用して Cloud CDN と Google Cloud Armor の両方を有効にする基本的な手順についても説明します。

Cloud CDN によるウェブ パフォーマンスの改善

外部 HTTP(S) ロードバランサを使用している場合は、要求元のクライアントの近くに存在する Google のグローバル エッジで HTTP(S) 接続が設定され、最新のプロトコル(QUIC、HTTP/2、TLS 1.3 など)を使用して接続がネゴシエーションされることで往復回数が低減し、スループットが強化されるため、ウェブ パフォーマンスはすでに改善しています。さらに、送信元への永続的な接続を使用することで、Google Cloud は各クライアント接続のオーバーヘッドを削減します。Google のエッジのロケーションは、グローバル プライベート バックボーン ネットワークに接続されており、Google Cloud によってルーティングを最適化し、クライアント、Google のエッジ、バックエンド間のレイテンシを短縮できます。外部 HTTP(S) ロードバランサのデプロイの一部として Cloud CDN を有効にすることで、パフォーマンスをさらに改善し、配信費用を削減できます。

Cloud CDN とは

Cloud CDN(コンテンツ配信ネットワーク)は、世界各地に分散している Google のエッジ接続拠点を使用して、負荷分散されたコンテンツのコピーをユーザーの近くにあるキャッシュに保存します。

Cloud CDN によってウェブ パフォーマンスを改善する方法

Cloud CDN によってパフォーマンスを改善する方法は複数存在します。

リクエストを減らしてバックエンド インフラストラクチャをオフロードおよびスケーリング

リクエストは Cloud CDN キャッシュから提供されるため、ロードバランサがイメージ、動画、JavaScript、スタイルシートなどの静的要素のためにバックエンド インフラストラクチャにリクエストを送信する必要はありません。これにより、通常のオペレーション中に負荷が軽減されるだけでなく、Google のエッジ インフラストラクチャでバックエンドのサービスを提供するインフラストラクチャの負荷を増加させることなく、リクエストの急増に対応できます。これにより、バックエンド インフラストラクチャは、ダイナミック HTML など、ユーザー固有のレスポンスの生成のみを行うことでインタラクティブなウェブ エクスペリエンスを実現できます。

エッジから静的アセットを配信

Google のグローバル エッジがキャッシュ リクエストを送信するため、クライアント リクエストに対するレスポンス時間を短縮できます。イメージ、動画、JavaScript、スタイルシートなどのウェブ エクスペリエンスの静的要素は、バックエンド システムにリクエストを転送することなく、レスポンスやデータ転送を待たずに即座に配信できます。

下り(外向き)とバックエンド インフラストラクチャの費用を低減

外部 HTTP(S) ロードバランサで Cloud CDN を使用すると、バックエンドへのトラフィックが減少するため、バックエンド インフラストラクチャに要する費用を削減できます。さらに、Google のエッジから送信されるため、静的コンテンツを配信するサイクルの数を減らすこともできます。Cloud CDN のトラフィックは低い方の下り(外向き)の費用で課金されるため、さらに費用を管理できます。

外部 HTTP(S) ロードバランサで Cloud CDN を有効化

既存の外部 HTTP(S) ロードバランサまたは新しいロードバランサを設定するときに Cloud CDN を有効にできます。

外部 HTTP(S) ロードバランサの設定中に Cloud CDN を有効化

バックエンドの構成中に、[Cloud CDN を有効にする] チェックボックスをオンにします。詳細については、Cloud CDN の入門ガイドをご覧ください。

既存の外部 HTTP(S) ロードバランサで Cloud CDN を有効化

既存の外部 HTTP(S) ロードバランサの構成で、[ロードバランサ] の詳細画面の [編集] をクリックして、ロードバランサを修正します。

修正すると、[バックエンドの構成] セクションで、[Cloud CDN を有効にする] チェックボックスをオンにできます。gcloud コマンドなどに関する詳細な手順については、Cloud CDN の入門ガイドをご覧ください。

Google Cloud Armor によるウェブ保護の改善

外部 HTTP(S) ロードバランサを使用することで、Google のグローバル エッジで HTTP(S) 接続が設定され、このプロセスを処理する必要性からバックエンド インフラストラクチャがオフロードされるため、ウェブ保護の測定値はすでに提供されています。外部 HTTP(S) ロードバランサの一部として Google Cloud Armor を有効にすることで、インフラストラクチャとアプリケーションの攻撃に対する可視性と制御が改善されます。

Google Cloud Armor とは

Google Cloud Armor は、外部 HTTP(S) ロードバランサと連携することで DDoS 攻撃に対する防御とアプリケーション レイヤの防御を行います。攻撃を可視化し、事前構成済みのルールとカスタムルールをデプロイして、ウェブ アプリケーションとサービスに対する攻撃を軽減できます。外部 HTTP(S) ロードバランサと同様に、Google Cloud Armor は、Google のネットワークのエッジで配信され、ソースに近いインフラストラクチャとアプリケーションを攻撃から保護できます。

Google Cloud Armor によってウェブ保護を改善する方法

Google Cloud Armor によって保護を改善する方法は複数存在します。

ほとんどのボリューム型の DDoS 攻撃を自動的にブロック

Google Cloud Armor は、外部 HTTP(S) ロードバランサと連携して、大量のプロトコル(SYN、TCP、HTTP、ICMP)や増幅攻撃(NTP、UDP、DNS)などのボリューム型の DDoS 攻撃を自動的にブロックします。Google Cloud Armor は、Google 検索、Gmail、マップなどの Google 独自のウェブサービスを保護するために当初開発されたテクノロジーをベースにしています。

一般的なアプリケーション攻撃の検出と軽減に有用な事前構成された WAF ルール

Google Cloud Armor には、SQL インジェクション、クロスサイト スクリプティング、コマンド インジェクション攻撃など、ウェブ インフラストラクチャに対する一般的なウェブ攻撃を検出して軽減するのに有用な、事前構成されたウェブ アプリケーション ファイアウォール(WAF)ルールのライブラリが用意されています。

地理的ソースと IP アドレスまたは IP 範囲による検出とブロック

Google Cloud Armor は、Google の Geo-IP データベースを利用して、ウェブ インフラストラクチャを宛先とする受信リクエストの地理的なリージョンを特定し、2 文字の国コードに基づいてトラフィックをブロックできます。たとえば、特定の国以外には発送していないオンライン コマースサイトでは、攻撃トラフィックの一般的なソースからのリクエストをブロックできます。さらに、Google Cloud Armor では、悪意のあるリクエストを作成する特定の IP アドレスまたは IP アドレスの範囲をすばやくブロックできます。

アプリケーション レイヤの HTTP(S) 攻撃をモニタリングして軽減するのに必要な可視性を実現

Google Cloud Armor には、さまざまな HTTP(S) セマンティクスを使用して、受信リクエストから複雑なパターンを照合するカスタムルール言語も用意されています。これには、ヘッダー、Cookie、URL、クエリ文字列要素、ユーザー エージェント パターン、HTTP メソッドが含まれます。

外部 HTTP(S) ロードバランサで Google Cloud Armor を有効化

Google Cloud Armor の構成は、セキュリティ ポリシーによって駆動されます。これらのポリシーにより、組み込みルールを有効にして、保護のためのカスタムルールがサポートされます。Google Cloud Armor をデプロイするには、セキュリティ ポリシーを作成し、ルールを追加して、このポリシーを 1 つ以上の HTTP(S) 負荷分散バックエンド サービスに接続する必要があります。各ルールでは、トラフィックで検出するパラメータ、トラフィックがこれらのパラメータと一致する場合に取るアクション、ポリシー階層内のルールの位置を決定する優先度値を指定します。

Google Cloud Armor セキュリティ ポリシーの作成

以下で説明している概要は、Google Cloud Armor セキュリティ ポリシーを構成して、外部 HTTP(S) ロードバランサへのトラフィックを許可または拒否するルールを有効にする手順です。

  1. Network Security - Google Cloud Armor の画面で、Google Cloud Armor セキュリティ ポリシーを作成します。
  2. IP リスト、カスタム式、または事前構成された WAF ルール(SQL インジェクション、クロスサイト スクリプティングなど)に基づいて、ルールをポリシーに追加します。
  3. アクセスを制御する外部 HTTP(S) ロードバランサのバックエンド サービスに Google Cloud Armor セキュリティ ポリシーを接続します。
  4. 必要に応じて、Google Cloud Armor セキュリティ ポリシーを更新します。

詳しい手順については、Google Cloud Armor の入門ガイドをご覧ください。

次のステップ