このチュートリアルでは、Cloud CDN と Google Cloud Armor を既存の外部アプリケーション ロードバランサのデプロイに追加することの意義について概説します。外部アプリケーション ロードバランサを使用して Cloud CDN と Cloud Armor の両方を有効にする基本的な手順についても説明します。
Cloud CDN によるウェブ パフォーマンスの改善
外部アプリケーション ロードバランサを使用している場合は、要求元のクライアントの近くに存在する Google のグローバル エッジで HTTP(S) 接続が設定され、最新のプロトコル(QUIC、HTTP/2、TLS 1.3 など)を使用して接続がネゴシエーションされることで往復回数が低減し、スループットが強化されるため、ウェブ パフォーマンスはすでに改善しています。さらに、送信元への永続的な接続を使用することで、 Google Cloud は各クライアント接続のオーバーヘッドを削減します。Google のエッジのロケーションは、グローバル プライベート バックボーン ネットワークに接続されており、 Google Cloud によってルーティングを最適化し、クライアント、Google のエッジ、バックエンド間のレイテンシを短縮できます。外部アプリケーション ロードバランサのデプロイの一部として Cloud CDN を有効にすることで、パフォーマンスをさらに改善し、配信費用を削減できます。
Cloud CDN とは
Cloud CDN(コンテンツ配信ネットワーク)は、世界各地に分散している Google のエッジ接続拠点を使用して、負荷分散されたコンテンツのコピーをユーザーの近くにあるキャッシュに保存します。
Cloud CDN によってウェブ パフォーマンスを改善する方法
Cloud CDN によってパフォーマンスを改善する方法は複数存在します。
リクエストを減らしてバックエンド インフラストラクチャをオフロードおよびスケーリング
リクエストは Cloud CDN キャッシュから提供されるため、ロードバランサがイメージ、動画、JavaScript、スタイルシートなどの静的要素のためにバックエンド インフラストラクチャにリクエストを送信する必要はありません。これにより、通常のオペレーション中に負荷が軽減されるだけでなく、Google のエッジ インフラストラクチャでバックエンドのサービスを提供するインフラストラクチャの負荷を増加させることなく、リクエストの急増に対応できます。これにより、バックエンド インフラストラクチャは、ダイナミック HTML など、ユーザー固有のレスポンスの生成のみを行うことでインタラクティブなウェブ エクスペリエンスを実現できます。
エッジから静的アセットを配信
Google のグローバル エッジがキャッシュ リクエストを送信するため、クライアント リクエストに対するレスポンス時間を短縮できます。イメージ、動画、JavaScript、スタイルシートなどのウェブ エクスペリエンスの静的要素は、バックエンド システムにリクエストを転送することなく、レスポンスやデータ転送を待たずに即座に配信できます。
データ転送とバックエンド インフラストラクチャの費用を削減する
外部アプリケーション ロードバランサで Cloud CDN を使用すると、バックエンドへのトラフィックが減少するため、バックエンド インフラストラクチャに要する費用を削減できます。さらに、Google のエッジから送信されるため、静的コンテンツを配信するサイクルの数を減らすこともできます。Cloud CDN のトラフィックは低い方のデータ転送の費用で課金されるため、さらに費用を管理できます。
外部アプリケーション ロードバランサで Cloud CDN を有効にする
既存の外部アプリケーション ロードバランサまたは新しいロードバランサを設定するときに Cloud CDN を有効にできます。
外部アプリケーション ロードバランサの設定中に Cloud CDN を有効にする
バックエンドの構成中に、[Cloud CDN を有効にする] チェックボックスをオンにします。詳細については、Cloud CDN の入門ガイドをご覧ください。
既存の外部アプリケーション ロードバランサで Cloud CDN を有効にする
既存の外部アプリケーション ロードバランサの構成で、[ロードバランサ] の詳細画面の [編集]
をクリックして、ロードバランサを修正します。修正すると、[バックエンドの構成] セクションで、[Cloud CDN を有効にする] チェックボックスをオンにできます。gcloud
コマンドなどに関する詳細な手順については、Cloud CDN の入門ガイドをご覧ください。
Cloud Armor によるウェブ保護の改善
外部アプリケーション ロードバランサを使用することで、Google のグローバル エッジで HTTP(S) 接続が設定され、このプロセスを処理する必要性からバックエンド インフラストラクチャがオフロードされるため、ウェブ保護の測定値はすでに提供されています。外部アプリケーション ロードバランサの一部として Cloud Armor を有効にすることで、インフラストラクチャとアプリケーションの攻撃に対する可視性と制御が改善されます。
Cloud Armor とは
Cloud Armor は、外部アプリケーション ロードバランサと連携することで DDoS 攻撃に対する防御とアプリケーション レイヤの防御を行います。攻撃を可視化し、事前構成済みのルールとカスタムルールをデプロイして、ウェブ アプリケーションとサービスに対する攻撃を軽減できます。外部アプリケーション ロードバランサと同様に、Cloud Armor は、Google のネットワークのエッジで配信され、ソースに近いインフラストラクチャとアプリケーションを攻撃から保護できます。
Cloud Armor によってウェブ保護を改善する方法
Cloud Armor によって保護を改善する方法は複数存在します。
ほとんどのボリューム型の DDoS 攻撃を自動的にブロック
Cloud Armor は、外部アプリケーション ロードバランサと連携して、大量のプロトコル(SYN、TCP、HTTP、ICMP)や増幅攻撃(NTP、UDP、DNS)などのボリューム型の DDoS 攻撃を自動的にブロックします。Cloud Armor は、Google 検索、Gmail、マップなどの Google 独自のウェブサービスを保護するために当初開発されたテクノロジーをベースにしています。
一般的なアプリケーション攻撃の検出と軽減に有用な事前構成された WAF ルール
Cloud Armor には、SQL インジェクション、クロスサイト スクリプティング、コマンド インジェクション攻撃など、ウェブ インフラストラクチャに対する一般的なウェブ攻撃を検出して軽減するのに有用な、事前構成されたウェブ アプリケーション ファイアウォール(WAF)ルールのライブラリが用意されています。
地理的ソースと IP アドレスまたは IP 範囲による検出とブロック
Cloud Armor は、Google の Geo-IP データベースを利用して、ウェブ インフラストラクチャを宛先とする受信リクエストの地理的なリージョンを特定し、2 文字の国コードに基づいてトラフィックをブロックできます。たとえば、特定の国以外には発送していないオンライン コマースサイトでは、攻撃トラフィックの一般的なソースからのリクエストをブロックできます。さらに、Cloud Armor では、悪意のあるリクエストを作成する特定の IP アドレスまたは IP アドレスの範囲をすばやくブロックできます。
アプリケーション レイヤの HTTP(S) 攻撃をモニタリングして軽減するのに必要な可視性を実現
Cloud Armor には、さまざまな HTTP(S) セマンティクスを使用して、受信リクエストから複雑なパターンを照合するカスタムルール言語も用意されています。これには、ヘッダー、Cookie、URL、クエリ文字列要素、ユーザー エージェント パターン、HTTP メソッドが含まれます。
外部アプリケーション ロードバランサで Cloud Armor を有効にする
Cloud Armor の構成は、セキュリティ ポリシーによって駆動されます。これらのポリシーにより、組み込みルールを有効にして、保護のためのカスタムルールがサポートされます。Cloud Armor をデプロイするには、セキュリティ ポリシーを作成し、ルールを追加して、このポリシーを 1 つ以上の外部アプリケーション ロードバランサ バックエンド サービスに接続する必要があります。各ルールでは、トラフィックで検出するパラメータ、トラフィックがこれらのパラメータと一致する場合に取るアクション、ポリシー階層内のルールの位置を決定する優先度値を指定します。
Cloud Armor セキュリティ ポリシーの作成
以下で説明している概要は、Cloud Armor セキュリティ ポリシーを構成して、外部アプリケーション ロードバランサへのトラフィックを許可または拒否するルールを有効にする手順です。
- [Network Security - Cloud Armor] 画面で、Cloud Armor セキュリティ ポリシーを作成します。
- IP リスト、カスタム式、または事前構成された WAF ルール(SQL インジェクション、クロスサイト スクリプティングなど)に基づいて、ルールをポリシーに追加します。
- アクセスを制御する外部アプリケーション ロードバランサのバックエンド サービスに Cloud Armor セキュリティ ポリシーを接続します。
- 必要に応じて、Cloud Armor セキュリティ ポリシーを更新します。
詳しい手順については、Cloud Armor の入門ガイドをご覧ください。
次のステップ
- Cloud CDN の機能の詳細を確認する。
- Cloud Armor のセキュリティ ポリシーの詳細を理解する。
- Cloud CDN を使用して外部アプリケーション ロードバランサのモニタリングとロギングを設定する。