CINXE.COM

Backend services overview  |  Load Balancing  |  Google Cloud

<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/webhistory"> <meta property="og:site_name" content="Google Cloud"> <meta property="og:type" content="website"><meta name="theme-color" content="#039be5"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/cloud/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500,700|Google+Sans+Text:400,400italic,500,500italic,700,700italic|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/vdcd49b48a0f6579e36a0f52b513a1840db67522fa48e80a57742b4388044a7e9/cloud/css/app.css"> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/vdcd49b48a0f6579e36a0f52b513a1840db67522fa48e80a57742b4388044a7e9/cloud/images/favicons/onecloud/favicon.ico"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/vdcd49b48a0f6579e36a0f52b513a1840db67522fa48e80a57742b4388044a7e9/cloud/images/favicons/onecloud/super_cloud.png"><link rel="canonical" href="https://cloud.google.com/load-balancing/docs/backend-service"><link rel="search" type="application/opensearchdescription+xml" title="Google Cloud" href="https://cloud.google.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://cloud.google.com/load-balancing/docs/backend-service" /><link rel="alternate" hreflang="x-default" href="https://cloud.google.com/load-balancing/docs/backend-service" /><link rel="alternate" hreflang="zh-Hans" href="https://cloud.google.com/load-balancing/docs/backend-service?hl=zh-cn" /><link rel="alternate" hreflang="fr" href="https://cloud.google.com/load-balancing/docs/backend-service?hl=fr" /><link rel="alternate" hreflang="de" href="https://cloud.google.com/load-balancing/docs/backend-service?hl=de" /><link rel="alternate" hreflang="id" href="https://cloud.google.com/load-balancing/docs/backend-service?hl=id" /><link rel="alternate" hreflang="it" href="https://cloud.google.com/load-balancing/docs/backend-service?hl=it" /><link rel="alternate" hreflang="ja" href="https://cloud.google.com/load-balancing/docs/backend-service?hl=ja" /><link rel="alternate" hreflang="ko" href="https://cloud.google.com/load-balancing/docs/backend-service?hl=ko" /><link rel="alternate" hreflang="pt-BR" href="https://cloud.google.com/load-balancing/docs/backend-service?hl=pt-br" /><link rel="alternate" hreflang="es-419" href="https://cloud.google.com/load-balancing/docs/backend-service?hl=es-419" /><title>Backend services overview &nbsp;|&nbsp; Load Balancing &nbsp;|&nbsp; Google Cloud</title> <meta property="og:title" content="Backend services overview &nbsp;|&nbsp; Load Balancing &nbsp;|&nbsp; Google Cloud"><meta property="og:url" content="https://cloud.google.com/load-balancing/docs/backend-service"><meta property="og:image" content="https://cloud.google.com/_static/cloud/images/social-icon-google-cloud-1200-630.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="630"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Backend services overview" } </script><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Cloud Load Balancing", "item": "https://cloud.google.com/load-balancing" },{ "@type": "ListItem", "position": 2, "name": "Documentation", "item": "https://cloud.google.com/load-balancing/docs" },{ "@type": "ListItem", "position": 3, "name": "Backend services overview", "item": "https://cloud.google.com/load-balancing/docs/backend-service" }] } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="cloud-theme" type="article" layout="docs" free-trial display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <a href="#main-content" class="skip-link button"> Skip to main content </a> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><cloudx-track userCountry="SG"></cloudx-track> <cloudx-utils-init></cloudx-utils-init> <devsite-header keep-tabs-visible> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="googleCloud" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <img src="https://www.gstatic.com/devrel-devsite/prod/vdcd49b48a0f6579e36a0f52b513a1840db67522fa48e80a57742b4388044a7e9/cloud/images/cloud-logo.svg" class="devsite-site-logo" alt="Google Cloud"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <cloudx-tabs-nav class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab class="devsite-active"> <a href="https://cloud.google.com/docs" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/docs" track-type="nav" track-metadata-position="nav - docs-home" track-metadata-module="primary nav" aria-label="Documentation, selected" data-category="Site-Wide Custom Events" data-label="Tab: Documentation" track-name="docs-home" track-link-column-type="single-column" > Documentation </a> </tab> <tab class="devsite-dropdown devsite-clickable "> <a href="https://cloud.google.com/docs/tech-area-overviews" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/docs/tech-area-overviews" track-type="nav" track-metadata-position="nav - technology-areas" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Technology areas" track-name="technology-areas" track-link-column-type="single-column" > Technology areas </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Technology areas" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/tech-area-overviews" track-metadata-position="nav - technology-areas" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Technology areas" track-name="technology-areas" track-link-column-type="single-column" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <button class="devsite-tabs-close-button material-icons button-flat gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close dropdown menu" aria-label="Close dropdown menu" track-type="nav" track-name="close" track-metadata-eventdetail="#" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav">close</button> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/ai-ml" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/ai-ml" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> AI and ML </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/application-development" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/application-development" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Application development </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/application-hosting" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/application-hosting" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Application hosting </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/compute-area" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/compute-area" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Compute </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/data" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/data" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Data analytics and pipelines </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/databases" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/databases" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Databases </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/dhm-cloud" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/dhm-cloud" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Distributed, hybrid, and multicloud </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/generative-ai" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/generative-ai" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Generative AI </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/industry" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/industry" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Industry solutions </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/networking" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/networking" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Networking </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/observability" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/observability" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Observability and monitoring </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/security" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/security" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Security </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/storage" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/storage" track-metadata-position="nav - technology-areas" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Storage </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown devsite-clickable "> <a href="https://cloud.google.com/docs/cross-product-overviews" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/docs/cross-product-overviews" track-type="nav" track-metadata-position="nav - crossproduct" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Cross-product tools" track-name="crossproduct" track-link-column-type="single-column" > Cross-product tools </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Cross-product tools" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/cross-product-overviews" track-metadata-position="nav - crossproduct" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Cross-product tools" track-name="crossproduct" track-link-column-type="single-column" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <button class="devsite-tabs-close-button material-icons button-flat gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close dropdown menu" aria-label="Close dropdown menu" track-type="nav" track-name="close" track-metadata-eventdetail="#" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav">close</button> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/access-resources" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/access-resources" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Access and resources management </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/costs-usage" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/costs-usage" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Costs and usage management </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/devtools" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/devtools" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud SDK, languages, frameworks, and tools </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/iac" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/iac" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Infrastructure as code </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/docs/migration" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/docs/migration" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Migration </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown devsite-clickable "> <a href="https://cloud.google.com/" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/" track-type="nav" track-metadata-position="nav - related-sites" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Related sites" track-name="related-sites" track-link-column-type="single-column" > Related sites </a> <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Related sites" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/" track-metadata-position="nav - related-sites" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Related sites" track-name="related-sites" track-link-column-type="single-column" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button> <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden> <button class="devsite-tabs-close-button material-icons button-flat gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close dropdown menu" aria-label="Close dropdown menu" track-type="nav" track-name="close" track-metadata-eventdetail="#" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav">close</button> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://cloud.google.com/" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Home </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/free" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/free" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Free Trial and Free Tier </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/architecture" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/architecture" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Architecture Center </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/blog" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/blog" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Blog </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/contact" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/contact" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Contact Sales </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/developers" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/developers" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Developer Center </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/" track-type="nav" track-metadata-eventdetail="https://developers.google.com/" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Developer Center </div> </a> </li> <li class="devsite-nav-item"> <a href="https://console.cloud.google.com/marketplace" track-type="nav" track-metadata-eventdetail="https://console.cloud.google.com/marketplace" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Marketplace </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/marketplace/docs" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/marketplace/docs" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Marketplace Documentation </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.cloudskillsboost.google/paths" track-type="nav" track-metadata-eventdetail="https://www.cloudskillsboost.google/paths" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Skills Boost </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/solutions" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/solutions" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Solution Center </div> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/support-hub" track-type="nav" track-metadata-eventdetail="https://cloud.google.com/support-hub" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Support </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.youtube.com/@googlecloudtech" track-type="nav" track-metadata-eventdetail="https://www.youtube.com/@googlecloudtech" track-metadata-position="nav - related-sites" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Google Cloud Tech Youtube Channel </div> </a> </li> </ul> </div> </div> </div> </tab> </nav> </cloudx-tabs-nav> </div> <devsite-search enable-signin enable-search enable-suggestions project-name="Load Balancing" tenant-name="Google Cloud" project-scope="/load-balancing/docs" url-scoped="https://cloud.google.com/s/results/load-balancing/docs" > <form class="devsite-search-form" action="https://cloud.google.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <devsite-user enable-profiles fp-auth id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-product-id-row" hidden> <div class="devsite-product-description-row"> </div> </div> <div class="devsite-doc-set-nav-row"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://cloud.google.com/load-balancing" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Cloud Load Balancing" > Cloud Load Balancing </a> </li> </ul> <cloudx-tabs-nav class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab > <a href="https://cloud.google.com/load-balancing/docs" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/load-balancing/docs" track-type="nav" track-metadata-position="nav - overview" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Overview" track-name="overview" > Overview </a> </tab> <tab class="devsite-active"> <a href="https://cloud.google.com/load-balancing/docs/load-balancing-overview" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/load-balancing/docs/load-balancing-overview" track-type="nav" track-metadata-position="nav - guides" track-metadata-module="primary nav" aria-label="Guides, selected" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" > Guides </a> </tab> <tab > <a href="https://cloud.google.com/load-balancing/docs/apis" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/load-balancing/docs/apis" track-type="nav" track-metadata-position="nav - reference" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" > Reference </a> </tab> <tab > <a href="https://cloud.google.com/load-balancing/docs/resources" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://cloud.google.com/load-balancing/docs/resources" track-type="nav" track-metadata-position="nav - resources" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" > Resources </a> </tab> </nav> </cloudx-tabs-nav> <div class="devsite-product-button-row"> <a href="https://cloud.google.com/contact" class="cta-button-secondary button " track-type="contact" data-overflow="devsite-tabs-wrapper" data-overflow-container="left" track-metadata-position="nav" track-metadata-eventDetail="nav" track-name="sales" data-overflow-wrapper="tab" >Contact Us</a> <a href="//console.cloud.google.com/freetrial" class="cloud-free-trial-button cta-button-primary button-primary button cloud-button cloud-button--primary " track-metadata-position="nav" data-overflow-container="right" track-type="freeTrial" data-overflow-class="devsite-header-link devsite-top-button button cloud-free-trial-button cloud-free-trial-enabled cloud-button cloud-button--primary" track-metadata-eventDetail="nav" data-overflow="devsite-top-logo-row" track-name="gcpCta" referrerpolicy="no-referrer-when-downgrade" >Start free</a> </div> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" > <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="googleCloud" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <img src="https://www.gstatic.com/devrel-devsite/prod/vdcd49b48a0f6579e36a0f52b513a1840db67522fa48e80a57742b4388044a7e9/cloud/images/cloud-logo.svg" class="devsite-site-logo" alt="Google Cloud"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/docs" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Documentation" track-name="docs-home" track-link-column-type="single-column" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Documentation" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Documentation </span> </a> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/load-balancing/docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Overview" track-name="overview" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Overview </span> </a> </li> <li class="devsite-nav-item"> <a href="/load-balancing/docs/load-balancing-overview" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guides" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip menu="_book"> Guides </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="_book"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/load-balancing/docs/apis" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Reference" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Reference </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/load-balancing/docs/resources" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Resources" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Resources </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/docs/tech-area-overviews" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Technology areas" track-name="technology-areas" track-link-column-type="single-column" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Technology areas" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Technology areas </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Technology areas" track-name="technology-areas" track-link-column-type="single-column" > <span class="devsite-nav-text" tooltip menu="Technology areas"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Technology areas"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/docs/cross-product-overviews" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Cross-product tools" track-name="crossproduct" track-link-column-type="single-column" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cross-product tools" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cross-product tools </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Cross-product tools" track-name="crossproduct" track-link-column-type="single-column" > <span class="devsite-nav-text" tooltip menu="Cross-product tools"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Cross-product tools"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Related sites" track-name="related-sites" track-link-column-type="single-column" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Related sites" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Related sites </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Related sites" track-name="related-sites" track-link-column-type="single-column" > <span class="devsite-nav-text" tooltip menu="Related sites"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Related sites"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="//console.cloud.google.com/" class="devsite-nav-title gc-analytics-event " track-metadata-position="nav" track-name="console" referrerpolicy="no-referrer-when-downgrade" track-type="globalNav" track-metadata-eventDetail="nav" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Console" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Console </span> </a> </li> <li class="devsite-nav-item"> <a href="/contact" class="cta-button-secondary button" track-type="contact" data-overflow="devsite-tabs-wrapper" data-overflow-container="left" track-metadata-position="nav" track-metadata-eventDetail="nav" track-name="sales" data-overflow-wrapper="tab" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Contact Us" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Contact Us </span> </a> </li> <li class="devsite-nav-item"> <a href="//console.cloud.google.com/freetrial" class="cloud-free-trial-button cta-button-primary button-primary button cloud-button cloud-button--primary" track-metadata-position="nav" data-overflow-container="right" track-type="freeTrial" data-overflow-class="devsite-header-link devsite-top-button button cloud-free-trial-button cloud-free-trial-enabled cloud-button cloud-button--primary" track-metadata-eventDetail="nav" data-overflow="devsite-top-logo-row" track-name="gcpCta" referrerpolicy="no-referrer-when-downgrade" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Start free" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Start free </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Discover</span> </div></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/load-balancing-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/load-balancing-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/load-balancing-overview" ><span class="devsite-nav-text" tooltip>Cloud Load Balancing overview</span></a></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/choosing-load-balancer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/choosing-load-balancer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/choosing-load-balancer" ><span class="devsite-nav-text" tooltip>Choose a load balancer</span></a></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/features" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/features" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/features" ><span class="devsite-nav-text" tooltip>Load balancer feature comparison</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Get started</span> </div></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/access-control" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/access-control" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/access-control" ><span class="devsite-nav-text" tooltip>Roles and permissions</span></a></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/access-control/iam-conditions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/access-control/iam-conditions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/access-control/iam-conditions" ><span class="devsite-nav-text" tooltip>IAM Conditions for forwarding rules</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Organization policy constraints</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/org-policy-constraints" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/org-policy-constraints" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/org-policy-constraints" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/custom-constraints" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/custom-constraints" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/custom-constraints" ><span class="devsite-nav-text" tooltip>Use custom constraints</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Application Load Balancer (HTTP/HTTPS)</span> </div></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/application-load-balancer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/application-load-balancer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/application-load-balancer" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>External load balancer</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/https" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https" ><span class="devsite-nav-text" tooltip>Architecture overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Set up global load balancer</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setup-global-ext-https-compute" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setup-global-ext-https-compute" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setup-global-ext-https-compute" ><span class="devsite-nav-text" tooltip>Managed VM instance group backend</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setup-global-ext-https-buckets" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setup-global-ext-https-buckets" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setup-global-ext-https-buckets" ><span class="devsite-nav-text" tooltip>Cloud Storage (backend buckets)</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setup-global-ext-https-external-backend" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setup-global-ext-https-external-backend" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setup-global-ext-https-external-backend" ><span class="devsite-nav-text" tooltip>External backend (internet NEG)</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setup-global-ext-https-serverless" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setup-global-ext-https-serverless" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setup-global-ext-https-serverless" ><span class="devsite-nav-text" tooltip>Cloud Run, App Engine, or Cloud Run functions backends (serverless NEG)</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setting-up-ext-global-https-hybrid" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setting-up-ext-global-https-hybrid" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setting-up-ext-global-https-hybrid" ><span class="devsite-nav-text" tooltip>On-premises or other cloud backends (zonal and hybrid NEG)</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add capabilities</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/https/traffic-management-global" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/traffic-management-global" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/traffic-management-global" ><span class="devsite-nav-text" tooltip>Traffic management overview</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setting-up-global-traffic-mgmt" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setting-up-global-traffic-mgmt" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setting-up-global-traffic-mgmt" ><span class="devsite-nav-text" tooltip>Set up traffic management</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setting-up-global-http-https-redirect" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setting-up-global-http-https-redirect" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setting-up-global-http-https-redirect" ><span class="devsite-nav-text" tooltip>Set up HTTP-to-HTTPS redirect</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/set-up-global-ext-https-shared-vpc" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/set-up-global-ext-https-shared-vpc" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/set-up-global-ext-https-shared-vpc" ><span class="devsite-nav-text" tooltip>Set up load balancer with Shared VPC</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/custom-headers-global" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/custom-headers-global" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/custom-headers-global" ><span class="devsite-nav-text" tooltip>Create custom headers in backend services</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Custom error response</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/https/custom-error-response" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/custom-error-response" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/custom-error-response" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/configure-custom-error-responses" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/configure-custom-error-responses" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/configure-custom-error-responses" ><span class="devsite-nav-text" tooltip>Configure custom error responses</span></a></li></ul></div></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Set up global load balancer (classic)</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/https/ext-http-lb-tf-module-examples" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/ext-http-lb-tf-module-examples" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/ext-http-lb-tf-module-examples" ><span class="devsite-nav-text" tooltip>Terraform examples</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/ext-https-lb-simple" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/ext-https-lb-simple" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/ext-https-lb-simple" ><span class="devsite-nav-text" tooltip>Managed VM instance group backend</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/ext-load-balancer-backend-buckets" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/ext-load-balancer-backend-buckets" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/ext-load-balancer-backend-buckets" ><span class="devsite-nav-text" tooltip>Cloud Storage (backend buckets)</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setting-up-https-external-backend-internet-neg" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setting-up-https-external-backend-internet-neg" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setting-up-https-external-backend-internet-neg" ><span class="devsite-nav-text" tooltip>External backend (internet NEG)</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setting-up-https-serverless" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setting-up-https-serverless" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setting-up-https-serverless" ><span class="devsite-nav-text" tooltip>Cloud Run, App Engine, or Cloud Functions backends (serverless NEG)</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setting-up-ext-https-hybrid" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setting-up-ext-https-hybrid" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setting-up-ext-https-hybrid" ><span class="devsite-nav-text" tooltip>On-premises or other cloud backends (zonal and hybrid NEG) </span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Migrate resources</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-preview"><a href="/load-balancing/docs/https/migrate-to-global" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/migrate-to-global" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/migrate-to-global" ><span class="devsite-nav-text" tooltip>Overview</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/load-balancing/docs/https/migrate-from-classic-global" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/migrate-from-classic-global" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/migrate-from-classic-global" ><span class="devsite-nav-text" tooltip>Migrate to global external Application Load Balancer</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/load-balancing/docs/https/roll-back-migrated-resources" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/roll-back-migrated-resources" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/roll-back-migrated-resources" ><span class="devsite-nav-text" tooltip>Roll back to classic Application Load Balancer</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add capabilities</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/https/traffic-management" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/traffic-management" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/traffic-management" ><span class="devsite-nav-text" tooltip>Traffic management overview</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/custom-headers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/custom-headers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/custom-headers" ><span class="devsite-nav-text" tooltip>Create custom headers in backend services</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setting-up-query-and-header-routing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setting-up-query-and-header-routing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setting-up-query-and-header-routing" ><span class="devsite-nav-text" tooltip>Set up custom header and query parameter-based routing</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setting-up-url-redirects-classic" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setting-up-url-redirects-classic" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setting-up-url-redirects-classic" ><span class="devsite-nav-text" tooltip>Set up URL redirect</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setting-up-http-https-redirect" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setting-up-http-https-redirect" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setting-up-http-https-redirect" ><span class="devsite-nav-text" tooltip>Set up HTTP-to-HTTPS redirect</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setting-up-url-rewrite" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setting-up-url-rewrite" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setting-up-url-rewrite" ><span class="devsite-nav-text" tooltip>Set up URL rewrite</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Set up regional load balancer</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setting-up-reg-ext-https-lb" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setting-up-reg-ext-https-lb" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setting-up-reg-ext-https-lb" ><span class="devsite-nav-text" tooltip>Managed VM instance group backend</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setting-up-reg-ext-https-serverless" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setting-up-reg-ext-https-serverless" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setting-up-reg-ext-https-serverless" ><span class="devsite-nav-text" tooltip>Cloud Run backends (serverless NEG)</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setting-up-reg-ext-https-hybrid" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setting-up-reg-ext-https-hybrid" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setting-up-reg-ext-https-hybrid" ><span class="devsite-nav-text" tooltip>On-premises or other cloud backends (zonal and hybrid NEG)</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setup-regional-ext-https-external-backend" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setup-regional-ext-https-external-backend" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setup-regional-ext-https-external-backend" ><span class="devsite-nav-text" tooltip>External backend (internet NEG)</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add capabilities</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/https/traffic-management-regional" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/traffic-management-regional" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/traffic-management-regional" ><span class="devsite-nav-text" tooltip>Traffic management overview</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setting-up-reg-traffic-mgmt" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setting-up-reg-traffic-mgmt" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setting-up-reg-traffic-mgmt" ><span class="devsite-nav-text" tooltip>Set up traffic management</span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/load-balancing/docs/https/reg-applb-ha-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/reg-applb-ha-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/reg-applb-ha-overview" ><span class="devsite-nav-text" tooltip>Set up high availability</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setting-up-reg-http-https-redirect" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setting-up-reg-http-https-redirect" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setting-up-reg-http-https-redirect" ><span class="devsite-nav-text" tooltip>Set up HTTP-to-HTTPS redirect</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setting-up-reg-ext-shared-vpc" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setting-up-reg-ext-shared-vpc" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setting-up-reg-ext-shared-vpc" ><span class="devsite-nav-text" tooltip>Set up load balancer with Shared VPC</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/custom-headers-regional" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/custom-headers-regional" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/custom-headers-regional" ><span class="devsite-nav-text" tooltip>Create custom headers in URL maps</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-preview"><a href="/load-balancing/docs/https/applb-failover-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/applb-failover-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/applb-failover-overview" ><span class="devsite-nav-text" tooltip>Fail over to regional load balancers</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Monitor and troubleshoot</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/https/https-logs-monitor-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/https-logs-monitor-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/https-logs-monitor-overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/https-logging-monitoring" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/https-logging-monitoring" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/https-logging-monitoring" ><span class="devsite-nav-text" tooltip>Global load balancers</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/https-reg-logging-monitoring" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/https-reg-logging-monitoring" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/https-reg-logging-monitoring" ><span class="devsite-nav-text" tooltip>Regional load balancers</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/troubleshooting-ext-https-lbs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/troubleshooting-ext-https-lbs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/troubleshooting-ext-https-lbs" ><span class="devsite-nav-text" tooltip>Troubleshooting</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/http-load-balancing-best-practices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/http-load-balancing-best-practices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/http-load-balancing-best-practices" ><span class="devsite-nav-text" tooltip>Best practices</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Explore tutorials</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setting-up-https" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setting-up-https" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setting-up-https" ><span class="devsite-nav-text" tooltip>Request routing to a multi-region external HTTPS load balancer</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/tutorials/faster-performance-improved-protection" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tutorials/faster-performance-improved-protection" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tutorials/faster-performance-improved-protection" ><span class="devsite-nav-text" tooltip>Faster web performance and improved web protection for load balancing</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/tutorials/http-https-over-same-domain" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tutorials/http-https-over-same-domain" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tutorials/http-https-over-same-domain" ><span class="devsite-nav-text" tooltip>Deliver HTTP and HTTPS content over the same published domain</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/tutorials/optimize-app-latency" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tutorials/optimize-app-latency" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tutorials/optimize-app-latency" ><span class="devsite-nav-text" tooltip>Optimize application latency with load balancing</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/tutorials/about-capacity-optimization-with-global-lb" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tutorials/about-capacity-optimization-with-global-lb" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tutorials/about-capacity-optimization-with-global-lb" ><span class="devsite-nav-text" tooltip>Application capacity optimizations with global load balancing</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/tutorials/capacity-management-with-load-balancing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tutorials/capacity-management-with-load-balancing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tutorials/capacity-management-with-load-balancing" ><span class="devsite-nav-text" tooltip>Capacity management with load balancing</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Internal load balancer</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/l7-internal" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/l7-internal" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/l7-internal" ><span class="devsite-nav-text" tooltip>Architecture overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Set up cross-region load balancer</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/l7-internal/setting-up-l7-cross-reg-internal" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/l7-internal/setting-up-l7-cross-reg-internal" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/l7-internal/setting-up-l7-cross-reg-internal" ><span class="devsite-nav-text" tooltip>Managed VM instance group backend</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/l7-internal/setting-up-l7-cross-reg-hybrid" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/l7-internal/setting-up-l7-cross-reg-hybrid" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/l7-internal/setting-up-l7-cross-reg-hybrid" ><span class="devsite-nav-text" tooltip>On-premises or other cloud backends (zonal and hybrid NEG)</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/l7-internal/setting-up-l7-cross-reg-serverless" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/l7-internal/setting-up-l7-cross-reg-serverless" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/l7-internal/setting-up-l7-cross-reg-serverless" ><span class="devsite-nav-text" tooltip>Cloud Run backends (serverless NEG)</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Set up regional load balancer</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/l7-internal/int-https-lb-tf-examples" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/l7-internal/int-https-lb-tf-examples" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/l7-internal/int-https-lb-tf-examples" ><span class="devsite-nav-text" tooltip>Terraform examples</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/l7-internal/setting-up-l7-internal" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/l7-internal/setting-up-l7-internal" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/l7-internal/setting-up-l7-internal" ><span class="devsite-nav-text" tooltip>VM instance group backends</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/l7-internal/setting-up-l7-internal-serverless" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/l7-internal/setting-up-l7-internal-serverless" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/l7-internal/setting-up-l7-internal-serverless" ><span class="devsite-nav-text" tooltip>Cloud Run backends (serverless NEG)</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/l7-internal/setting-up-int-https-hybrid" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/l7-internal/setting-up-int-https-hybrid" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/l7-internal/setting-up-int-https-hybrid" ><span class="devsite-nav-text" tooltip>On-premises or other cloud backends (zonal and hybrid NEG)</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/l7-internal/setup-regional-int-https-external-backend" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/l7-internal/setup-regional-int-https-external-backend" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/l7-internal/setup-regional-int-https-external-backend" ><span class="devsite-nav-text" tooltip>External backend (internet NEG)</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add capabilities</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Traffic management</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/l7-internal/traffic-management" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/l7-internal/traffic-management" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/l7-internal/traffic-management" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/l7-internal/setting-up-traffic-management" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/l7-internal/setting-up-traffic-management" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/l7-internal/setting-up-traffic-management" ><span class="devsite-nav-text" tooltip>Set up traffic management</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/load-balancing/docs/l7-internal/setting-up-http-to-https-redirect" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/l7-internal/setting-up-http-to-https-redirect" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/l7-internal/setting-up-http-to-https-redirect" ><span class="devsite-nav-text" tooltip>Set up HTTP-to-HTTPS redirect</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/l7-internal/custom-headers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/l7-internal/custom-headers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/l7-internal/custom-headers" ><span class="devsite-nav-text" tooltip>Create custom headers in URL maps</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/l7-internal/l7-internal-shared-vpc" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/l7-internal/l7-internal-shared-vpc" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/l7-internal/l7-internal-shared-vpc" ><span class="devsite-nav-text" tooltip>Set up load balancer with Shared VPC</span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/load-balancing/docs/l7-internal/ilb-sd-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/l7-internal/ilb-sd-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/l7-internal/ilb-sd-overview" ><span class="devsite-nav-text" tooltip>Service Directory registration</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/l7-internal/internal-https-lb-and-other-networks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/l7-internal/internal-https-lb-and-other-networks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/l7-internal/internal-https-lb-and-other-networks" ><span class="devsite-nav-text" tooltip>Load balancing and connected networks</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Monitor and troubleshoot</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/l7-internal/monitoring" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/l7-internal/monitoring" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/l7-internal/monitoring" ><span class="devsite-nav-text" tooltip>View logs and metrics</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/l7-internal/troubleshooting-l7-ilb" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/l7-internal/troubleshooting-l7-ilb" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/l7-internal/troubleshooting-l7-ilb" ><span class="devsite-nav-text" tooltip>Troubleshooting</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/https/convert-global-ext-https-dualstack" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/convert-global-ext-https-dualstack" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/convert-global-ext-https-dualstack" ><span class="devsite-nav-text" tooltip>Convert load balancer to IPv6</span></a></li> <li class="devsite-nav-item devsite-nav-preview"><a href="/load-balancing/docs/https/applb-custom-metrics" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/applb-custom-metrics" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/applb-custom-metrics" ><span class="devsite-nav-text" tooltip>Use custom metrics</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/backend-service-load-testing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/backend-service-load-testing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/backend-service-load-testing" ><span class="devsite-nav-text" tooltip>Load testing backends</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Proxy Network Load Balancer (TCP/SSL proxy)</span> </div></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/proxy-network-load-balancer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/proxy-network-load-balancer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/proxy-network-load-balancer" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>External load balancer</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/tcp" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tcp" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tcp" ><span class="devsite-nav-text" tooltip>Architecture overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Set up global load balancer</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/tcp/set-up-global-ext-proxy-ssl" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tcp/set-up-global-ext-proxy-ssl" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tcp/set-up-global-ext-proxy-ssl" ><span class="devsite-nav-text" tooltip>Global SSL proxy with VM instance group backends</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/tcp/set-up-global-ext-proxy-tcp" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tcp/set-up-global-ext-proxy-tcp" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tcp/set-up-global-ext-proxy-tcp" ><span class="devsite-nav-text" tooltip>Global TCP proxy with VM instance group backends</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Set up global load balancer (classic)</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/tcp/ext-tcp-proxy-lb-tf-examples" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tcp/ext-tcp-proxy-lb-tf-examples" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tcp/ext-tcp-proxy-lb-tf-examples" ><span class="devsite-nav-text" tooltip>Terraform examples</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/ssl/setting-up-ssl" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/ssl/setting-up-ssl" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/ssl/setting-up-ssl" ><span class="devsite-nav-text" tooltip>Global SSL proxy with VM instance group backends</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/tcp/setting-up-tcp" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tcp/setting-up-tcp" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tcp/setting-up-tcp" ><span class="devsite-nav-text" tooltip>Global TCP proxy with VM instance group backends</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Set up regional load balancer</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/tcp/set-up-ext-reg-tcp-proxy-migs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tcp/set-up-ext-reg-tcp-proxy-migs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tcp/set-up-ext-reg-tcp-proxy-migs" ><span class="devsite-nav-text" tooltip>VM instance group backends</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/tcp/set-up-ext-reg-tcp-proxy-zonal" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tcp/set-up-ext-reg-tcp-proxy-zonal" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tcp/set-up-ext-reg-tcp-proxy-zonal" ><span class="devsite-nav-text" tooltip>Zonal NEG backends</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/tcp/set-up-ext-reg-tcp-proxy-hybrid" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tcp/set-up-ext-reg-tcp-proxy-hybrid" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tcp/set-up-ext-reg-tcp-proxy-hybrid" ><span class="devsite-nav-text" tooltip>Hybrid connectivity (Hybrid NEGs)</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/tcp/set-up-ext-reg-tcp-proxy-internet" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tcp/set-up-ext-reg-tcp-proxy-internet" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tcp/set-up-ext-reg-tcp-proxy-internet" ><span class="devsite-nav-text" tooltip>External backend (internet NEG)</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Internal load balancer</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/tcp/internal-proxy" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tcp/internal-proxy" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tcp/internal-proxy" ><span class="devsite-nav-text" tooltip>Architecture overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Set up cross-region load balancer</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/tcp/setup-cross-reg-proxy-migs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tcp/setup-cross-reg-proxy-migs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tcp/setup-cross-reg-proxy-migs" ><span class="devsite-nav-text" tooltip>Managed VM instance group backends</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/tcp/setup-cross-reg-proxy-hybrid" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tcp/setup-cross-reg-proxy-hybrid" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tcp/setup-cross-reg-proxy-hybrid" ><span class="devsite-nav-text" tooltip>On-premises or other cloud backends (zonal and hybrid NEG)</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Set up regional load balancer</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/tcp/set-up-int-tcp-proxy-migs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tcp/set-up-int-tcp-proxy-migs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tcp/set-up-int-tcp-proxy-migs" ><span class="devsite-nav-text" tooltip>Managed VM instance group backends</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/tcp/set-up-int-tcp-proxy-zonal" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tcp/set-up-int-tcp-proxy-zonal" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tcp/set-up-int-tcp-proxy-zonal" ><span class="devsite-nav-text" tooltip>Zonal NEG backends</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/tcp/set-up-int-tcp-proxy-hybrid" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tcp/set-up-int-tcp-proxy-hybrid" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tcp/set-up-int-tcp-proxy-hybrid" ><span class="devsite-nav-text" tooltip>Hybrid connectivity (Hybrid NEGs)</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/tcp/set-up-int-tcp-proxy-internet" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tcp/set-up-int-tcp-proxy-internet" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tcp/set-up-int-tcp-proxy-internet" ><span class="devsite-nav-text" tooltip>External backend (internet NEG)</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add capabilities</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/tcp/internal-proxy-lb-and-other-networks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tcp/internal-proxy-lb-and-other-networks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tcp/internal-proxy-lb-and-other-networks" ><span class="devsite-nav-text" tooltip>Load balancing and connected networks</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Monitor and troubleshoot</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/tcp/tcp-ssl-proxy-logging-monitoring" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tcp/tcp-ssl-proxy-logging-monitoring" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tcp/tcp-ssl-proxy-logging-monitoring" ><span class="devsite-nav-text" tooltip>View logs and metrics</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/tcp/convert-global-ext-proxy-dualstack" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tcp/convert-global-ext-proxy-dualstack" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tcp/convert-global-ext-proxy-dualstack" ><span class="devsite-nav-text" tooltip>Convert load balancer to IPv6</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Passthrough Network Load Balancer (TCP/UDP)</span> </div></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/passthrough-network-load-balancer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/passthrough-network-load-balancer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/passthrough-network-load-balancer" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>External load balancer</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/network/networklb-backend-service" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/network/networklb-backend-service" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/network/networklb-backend-service" ><span class="devsite-nav-text" tooltip>Backend service-based architecture</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/network/networklb-target-pools" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/network/networklb-target-pools" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/network/networklb-target-pools" ><span class="devsite-nav-text" tooltip>Target pool-based architecture</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Set up load balancer</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/network/setting-up-network-backend-service" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/network/setting-up-network-backend-service" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/network/setting-up-network-backend-service" ><span class="devsite-nav-text" tooltip>VM instance group backends (TCP/UDP only)</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/network/setting-up-networklb-multiple-protocols" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/network/setting-up-networklb-multiple-protocols" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/network/setting-up-networklb-multiple-protocols" ><span class="devsite-nav-text" tooltip>VM instance group backends (multiple protocols)</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/network/setting-up-network-zonal-neg" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/network/setting-up-network-zonal-neg" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/network/setting-up-network-zonal-neg" ><span class="devsite-nav-text" tooltip>Zonal NEG backends</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/network/setting-up-network" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/network/setting-up-network" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/network/setting-up-network" ><span class="devsite-nav-text" tooltip>Target pool-based load balancer</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add capabilities</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/network/ext-netlb-traffic-distribution" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/network/ext-netlb-traffic-distribution" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/network/ext-netlb-traffic-distribution" ><span class="devsite-nav-text" tooltip>Traffic distribution concepts</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Failover for load balancing</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/network/networklb-failover-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/network/networklb-failover-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/network/networklb-failover-overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/network/networklb-setting-up-failover" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/network/networklb-setting-up-failover" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/network/networklb-setting-up-failover" ><span class="devsite-nav-text" tooltip>Configure failover</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/load-balancing/docs/network/configure-weighted-netlb" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/network/configure-weighted-netlb" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/network/configure-weighted-netlb" ><span class="devsite-nav-text" tooltip>Configure weighted load balancing</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/network/transition-to-backend-services" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/network/transition-to-backend-services" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/network/transition-to-backend-services" ><span class="devsite-nav-text" tooltip>Migrate from target pools to backend services</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/network/networklb-sd-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/network/networklb-sd-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/network/networklb-sd-overview" ><span class="devsite-nav-text" tooltip>Service Directory registration</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Explore tutorials</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/network/udp-with-network-load-balancing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/network/udp-with-network-load-balancing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/network/udp-with-network-load-balancing" ><span class="devsite-nav-text" tooltip>Use UDP with network load balancers</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Monitor and troubleshoot</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/network/networklb-monitoring" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/network/networklb-monitoring" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/network/networklb-monitoring" ><span class="devsite-nav-text" tooltip>View logs and metrics</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/network/troubleshooting-networklb" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/network/troubleshooting-networklb" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/network/troubleshooting-networklb" ><span class="devsite-nav-text" tooltip>Troubleshooting</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Internal load balancer</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/internal" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/internal" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/internal" ><span class="devsite-nav-text" tooltip>Architecture overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Set up load balancer</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/internal/int-tcp-udp-lb-tf-module-examples" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/internal/int-tcp-udp-lb-tf-module-examples" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/internal/int-tcp-udp-lb-tf-module-examples" ><span class="devsite-nav-text" tooltip>Terraform examples</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/internal/setting-up-internal" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/internal/setting-up-internal" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/internal/setting-up-internal" ><span class="devsite-nav-text" tooltip>VM instance group backends</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/internal/setting-up-ilb-multiple-protocols" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/internal/setting-up-ilb-multiple-protocols" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/internal/setting-up-ilb-multiple-protocols" ><span class="devsite-nav-text" tooltip>VM instance group backend for multiple protocols</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/internal/setting-up-internal-zonal-neg" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/internal/setting-up-internal-zonal-neg" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/internal/setting-up-internal-zonal-neg" ><span class="devsite-nav-text" tooltip>Zonal NEG backends</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add capabilities</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/internal/int-netlb-traffic-distribution" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/internal/int-netlb-traffic-distribution" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/internal/int-netlb-traffic-distribution" ><span class="devsite-nav-text" tooltip>Traffic distribution concepts</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Failover for load balancing</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/internal/failover-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/internal/failover-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/internal/failover-overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/internal/setting-up-failover" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/internal/setting-up-failover" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/internal/setting-up-failover" ><span class="devsite-nav-text" tooltip>Configure failover</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Load balancers as next hops</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/internal/ilb-next-hop-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/internal/ilb-next-hop-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/internal/ilb-next-hop-overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/internal/setting-up-ilb-next-hop" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/internal/setting-up-ilb-next-hop" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/internal/setting-up-ilb-next-hop" ><span class="devsite-nav-text" tooltip>Set up load balancing for third-party appliances</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/load-balancing/docs/internal/multiple-forwarding-rules-same-ip" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/internal/multiple-forwarding-rules-same-ip" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/internal/multiple-forwarding-rules-same-ip" ><span class="devsite-nav-text" tooltip>Forwarding rules that use a common IP address</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/internal/ilb-sd-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/internal/ilb-sd-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/internal/ilb-sd-overview" ><span class="devsite-nav-text" tooltip>Service Directory registration</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/internal/internal-tcp-udp-lb-and-other-networks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/internal/internal-tcp-udp-lb-and-other-networks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/internal/internal-tcp-udp-lb-and-other-networks" ><span class="devsite-nav-text" tooltip>Load balancing and connected networks</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Explore tutorials</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/internal/setting-up-internal-next-hop-tags" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/internal/setting-up-internal-next-hop-tags" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/internal/setting-up-internal-next-hop-tags" ><span class="devsite-nav-text" tooltip>Set up load balancer as next hop (with tags)</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/internal/deploying-ilb-next-hop-vm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/internal/deploying-ilb-next-hop-vm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/internal/deploying-ilb-next-hop-vm" ><span class="devsite-nav-text" tooltip>Deploy a hub-and-spoke network</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Monitor and troubleshoot</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/internal/internal-logging-monitoring" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/internal/internal-logging-monitoring" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/internal/internal-logging-monitoring" ><span class="devsite-nav-text" tooltip>View logs and metrics</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/internal/troubleshooting-ilb" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/internal/troubleshooting-ilb" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/internal/troubleshooting-ilb" ><span class="devsite-nav-text" tooltip>Troubleshooting</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Protocol forwarding</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/protocol-forwarding" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/protocol-forwarding" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/protocol-forwarding" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/set-up-protocol-forwarding" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/set-up-protocol-forwarding" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/set-up-protocol-forwarding" ><span class="devsite-nav-text" tooltip>Set up protocol forwarding</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/switch-between-target-instance-and-backend-service" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/switch-between-target-instance-and-backend-service" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/switch-between-target-instance-and-backend-service" ><span class="devsite-nav-text" tooltip>Switch between a target instance and a backend service</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Secure</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>SSL certificates</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/ssl-certificates" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/ssl-certificates" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/ssl-certificates" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/ssl-certificates/self-managed-certs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/ssl-certificates/self-managed-certs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/ssl-certificates/self-managed-certs" ><span class="devsite-nav-text" tooltip>Use self-managed SSL certificates</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/ssl-certificates/google-managed-certs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/ssl-certificates/google-managed-certs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/ssl-certificates/google-managed-certs" ><span class="devsite-nav-text" tooltip>Use Google-managed SSL certificates</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/ssl-certificates/encryption-to-the-backends" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/ssl-certificates/encryption-to-the-backends" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/ssl-certificates/encryption-to-the-backends" ><span class="devsite-nav-text" tooltip>Encryption to the backends</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/ssl-certificates/troubleshooting" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/ssl-certificates/troubleshooting" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/ssl-certificates/troubleshooting" ><span class="devsite-nav-text" tooltip>Troubleshooting</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>SSL policies</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/ssl-policies-concepts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/ssl-policies-concepts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/ssl-policies-concepts" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/use-ssl-policies" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/use-ssl-policies" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/use-ssl-policies" ><span class="devsite-nav-text" tooltip>Use SSL policies</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Mutual TLS</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Frontend mTLS</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/mtls" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/mtls" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/mtls" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setting-up-mtls-ccm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setting-up-mtls-ccm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setting-up-mtls-ccm" ><span class="devsite-nav-text" tooltip>Set up frontend mTLS with user-provided certificates</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/https/setting-up-mtls-ca-ccm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/https/setting-up-mtls-ca-ccm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/https/setting-up-mtls-ca-ccm" ><span class="devsite-nav-text" tooltip>Set up frontend mTLS with a private CA</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Backend mTLS</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-preview"><a href="/load-balancing/docs/backend-authenticated-tls-backend-mtls" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/backend-authenticated-tls-backend-mtls" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/backend-authenticated-tls-backend-mtls" ><span class="devsite-nav-text" tooltip>Overview</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/load-balancing/docs/backend-authenticated-tls-setup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/backend-authenticated-tls-setup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/backend-authenticated-tls-setup" ><span class="devsite-nav-text" tooltip>Set up backend authenticated TLS</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/load-balancing/docs/backend-mtls-setup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/backend-mtls-setup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/backend-mtls-setup" ><span class="devsite-nav-text" tooltip>Set up backend mTLS</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Authorization policies</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-preview"><a href="/load-balancing/docs/auth-policy/auth-policy-overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/auth-policy/auth-policy-overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/auth-policy/auth-policy-overview" ><span class="devsite-nav-text" tooltip>Overview</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-preview"><a href="/load-balancing/docs/auth-policy/set-up-auth-policy-app-lb" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/auth-policy/set-up-auth-policy-app-lb" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/auth-policy/set-up-auth-policy-app-lb" ><span class="devsite-nav-text" tooltip>Set up policies for Application Load Balancers</span><span class="devsite-nav-icon material-icons" data-icon="preview" data-title="Preview" aria-hidden="true"></span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Customize load balancer</span> </div></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/service-lb-policy" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/service-lb-policy" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/service-lb-policy" ><span class="devsite-nav-text" tooltip>Advanced load balancing optimizations</span></a></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/backend-service" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/backend-service" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/backend-service" ><span class="devsite-nav-text" tooltip>Backend services</span></a></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/enabling-connection-draining" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/enabling-connection-draining" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/enabling-connection-draining" ><span class="devsite-nav-text" tooltip>Connection draining</span></a></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/firewall-rules" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/firewall-rules" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/firewall-rules" ><span class="devsite-nav-text" tooltip>Firewall rules</span></a></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/forwarding-rule-concepts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/forwarding-rule-concepts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/forwarding-rule-concepts" ><span class="devsite-nav-text" tooltip>Forwarding rules</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Health checks</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/health-check-concepts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/health-check-concepts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/health-check-concepts" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/health-checks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/health-checks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/health-checks" ><span class="devsite-nav-text" tooltip>Use health checks</span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/dns-names" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/dns-names" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/dns-names" ><span class="devsite-nav-text" tooltip>Internal DNS names</span></a></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/ipv6" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/ipv6" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/ipv6" ><span class="devsite-nav-text" tooltip>IPv6</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Network endpoint groups</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/negs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/negs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/negs" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/negs/hybrid-neg-concepts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/negs/hybrid-neg-concepts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/negs/hybrid-neg-concepts" ><span class="devsite-nav-text" tooltip>Hybrid connectivity NEGs</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/negs/internet-neg-concepts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/negs/internet-neg-concepts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/negs/internet-neg-concepts" ><span class="devsite-nav-text" tooltip>Internet NEGs</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/negs/serverless-neg-concepts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/negs/serverless-neg-concepts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/negs/serverless-neg-concepts" ><span class="devsite-nav-text" tooltip>Serverless NEGs</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Zonal NEGs</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/negs/zonal-neg-concepts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/negs/zonal-neg-concepts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/negs/zonal-neg-concepts" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/negs/setting-up-zonal-negs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/negs/setting-up-zonal-negs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/negs/setting-up-zonal-negs" ><span class="devsite-nav-text" tooltip>Set up zonal NEGs</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/proxy-only-subnets" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/proxy-only-subnets" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/proxy-only-subnets" ><span class="devsite-nav-text" tooltip>Proxy-only subnets</span></a></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/tags" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/tags" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/tags" ><span class="devsite-nav-text" tooltip>Tags</span></a></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/target-pools" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/target-pools" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/target-pools" ><span class="devsite-nav-text" tooltip>Target pools</span></a></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/target-proxies" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/target-proxies" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/target-proxies" ><span class="devsite-nav-text" tooltip>Target proxies</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>URL maps</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/load-balancing/docs/url-map-concepts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/url-map-concepts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/url-map-concepts" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/load-balancing/docs/url-map" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/url-map" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/url-map" ><span class="devsite-nav-text" tooltip>Use URL maps</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Operate and maintain</span> </div></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/audit-logging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/audit-logging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/audit-logging" ><span class="devsite-nav-text" tooltip>Audit logging information</span></a></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/health-check-logging" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/health-check-logging" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/health-check-logging" ><span class="devsite-nav-text" tooltip>Health check logging information</span></a></li> <li class="devsite-nav-item"><a href="/load-balancing/docs/cleaning-up-lb-setup" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /load-balancing/docs/cleaning-up-lb-setup" track-type="bookNav" track-name="click" track-metadata-eventdetail="/load-balancing/docs/cleaning-up-lb-setup" ><span class="devsite-nav-text" tooltip>Clean up a load balancer setup</span></a></li> </ul> <ul class="devsite-nav-list" menu="Technology areas" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/docs/ai-ml" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: AI and ML" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > AI and ML </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/application-development" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Application development" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Application development </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/application-hosting" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Application hosting" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Application hosting </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/compute-area" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Compute" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Compute </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/data" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Data analytics and pipelines" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Data analytics and pipelines </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/databases" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Databases" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Databases </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/dhm-cloud" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Distributed, hybrid, and multicloud" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Distributed, hybrid, and multicloud </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/generative-ai" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Generative AI" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Generative AI </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/industry" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Industry solutions" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Industry solutions </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/networking" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Networking" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Networking </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/observability" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Observability and monitoring" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Observability and monitoring </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/security" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Security" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Security </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/storage" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Storage" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Storage </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Cross-product tools" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/docs/access-resources" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Access and resources management" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Access and resources management </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/costs-usage" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Costs and usage management" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Costs and usage management </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/devtools" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud SDK, languages, frameworks, and tools" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud SDK, languages, frameworks, and tools </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/iac" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Infrastructure as code" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Infrastructure as code </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs/migration" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Migration" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Migration </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Related sites" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Home" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Home </span> </a> </li> <li class="devsite-nav-item"> <a href="/free" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Free Trial and Free Tier" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Free Trial and Free Tier </span> </a> </li> <li class="devsite-nav-item"> <a href="/architecture" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Architecture Center" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Architecture Center </span> </a> </li> <li class="devsite-nav-item"> <a href="https://cloud.google.com/blog" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Blog" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Blog </span> </a> </li> <li class="devsite-nav-item"> <a href="/contact" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Contact Sales" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Contact Sales </span> </a> </li> <li class="devsite-nav-item"> <a href="/developers" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Developer Center" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Developer Center </span> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Developer Center" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Developer Center </span> </a> </li> <li class="devsite-nav-item"> <a href="https://console.cloud.google.com/marketplace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Marketplace" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Marketplace </span> </a> </li> <li class="devsite-nav-item"> <a href="/marketplace/docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Marketplace Documentation" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Marketplace Documentation </span> </a> </li> <li class="devsite-nav-item"> <a href="https://www.cloudskillsboost.google/paths" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Skills Boost" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Skills Boost </span> </a> </li> <li class="devsite-nav-item"> <a href="/solutions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Solution Center" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Solution Center </span> </a> </li> <li class="devsite-nav-item"> <a href="/support-hub" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Support" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Support </span> </a> </li> <li class="devsite-nav-item"> <a href="https://www.youtube.com/@googlecloudtech" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud Tech Youtube Channel" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud Tech Youtube Channel </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" id="main-content" class="devsite-main-content" has-book-nav has-sidebar > <div class="devsite-sidebar"> <div class="devsite-sidebar-content"> <devsite-toc class="devsite-nav" role="navigation" aria-label="On this page" depth="2" scrollbars ></devsite-toc> <devsite-recommendations-sidebar class="nocontent devsite-nav"> </devsite-recommendations-sidebar> </div> </div> <devsite-content> <article class="devsite-article"> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://cloud.google.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Cloud" > Home </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://cloud.google.com/load-balancing" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="Cloud Load Balancing" > Cloud Load Balancing </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://cloud.google.com/load-balancing/docs" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="Load Balancing" > Documentation </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://cloud.google.com/load-balancing/docs/load-balancing-overview" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="4" track-type="globalNav" track-name="breadcrumb" track-metadata-position="4" track-metadata-eventdetail="" > Guides </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <devsite-feedback position="header" project-name="Load Balancing" product-id="5173945" bucket="Documentation" context="" version="t-devsite-webserver-20250227-r00-rc00.467351038544441702" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="header" class="nocontent" project-icon="https://www.gstatic.com/devrel-devsite/prod/vdcd49b48a0f6579e36a0f52b513a1840db67522fa48e80a57742b4388044a7e9/cloud/images/favicons/onecloud/super_cloud.png" > <button> Send feedback </button> </devsite-feedback> <h1 class="devsite-page-title" tabindex="-1"> Backend services overview </h1> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <div class="devsite-page-title-meta"><devsite-view-release-notes></devsite-view-release-notes></div> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded > </devsite-toc> <div class="devsite-article-body clearfix "> <p>A backend service defines how Cloud Load Balancing distributes traffic. The backend service configuration contains a set of values, such as the protocol used to connect to backends, various distribution and session settings, health checks, and timeouts. These settings provide fine-grained control over how your load balancer behaves. To get you started, most of the settings have default values that allow for fast configuration. A backend service is either global or regional in scope.</p> <p>Load balancers, Envoy proxies, and proxyless gRPC clients use the configuration information in the backend service resource to do the following:</p> <ul> <li>Direct traffic to the correct <em>backends</em>, which are instance groups or network endpoint groups (NEGs).</li> <li>Distribute traffic according to a <em>balancing mode</em>, which is a setting for each backend.</li> <li>Determine which <a href="#health-checks">health check</a> is monitoring the health of the backends.</li> <li>Specify <em>session affinity</em>. </li> <li>Determine whether other services are enabled, including the following services that are only available for <a href="/load-balancing/docs/features">certain load balancers</a>: <ul> <li>Cloud CDN</li> <li>Google Cloud Armor security policies</li> <li>Identity-Aware Proxy</li> </ul></li> <li>Designate regional backend services as a service in <a href="/app-hub/docs/overview">App Hub</a>, which is <a href="/app-hub/docs/release-notes#November_17_2023">in preview</a>. </li> </ul> <p>You set these values when you create a backend service or add a backend to the backend service.</p> Note: If you&#39;re using either the global external Application Load Balancer or the classic Application Load Balancer, and your backends serve <em>static</em> content, consider using backend buckets instead of backend services. See <a href="/load-balancing/docs/https/setup-global-ext-https-buckets">backend buckets for global external Application Load Balancer</a> or <a href="/load-balancing/docs/https/ext-load-balancer-backend-buckets">backend buckets for classic Application Load Balancer</a>. <p>The following table summarizes which load balancers use backend services. The product that you are using also determines the maximum number of backend services, the scope of a backend service, the type of backends supported, and the backend service&#39;s <em>load balancing scheme</em>. The load balancing scheme is an identifier that Google uses to classify forwarding rules and backend services. Each load balancing product uses one load balancing scheme for its forwarding rules and backend services. Some schemes are shared among products.</p> <table id="supported-backends-scheme"> <caption><b>Table:</b> Backend services and supported backend types</caption> <tr> <th>Product</th> <th>Maximum number of backend services</th> <th>Scope of backend service</th> <th>Supported backend types</th> <th>Load balancing scheme</th> </tr> <tr> <td>Global external Application Load Balancer </td> <td>Multiple</td> <td>Global</td> <td>Each backend service supports one of the following backend combinations: <ul> <li>All instance group backends: One or more managed, unmanaged, or a combination of managed and unmanaged instance group backends <a href="#dual-stack"><sup>*</sup></a></li> <li>All zonal NEGs: One or more <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> type zonal NEGs<a href="#dual-stack"><sup>*</sup></a></li> <li>All hybrid connectivity NEGs: One or more <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type NEGs</li> <li>A combination of zonal and hybrid NEGs: <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> and <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type NEGs <a href="#gke-mixed-negs"><sup>†</sup></a></li> <li>All serverless NEGs: One or more App Engine, Cloud Run, or Cloud Run functions services</li> <li>One global internet NEG for an external backend</li> <li>Private Service Connect NEGs: <ul> <li> Google APIs: a single Private Service Connect NEG </li> <li> Managed services: one or more Private Service Connect NEGs </li> </ul> </li> </ul> </td> <td>EXTERNAL_MANAGED</td> </tr> <tr> <td>Classic Application Load Balancer</td> <td>Multiple</td> <td>Global<a href="#bes-global-all-tiers"><sup>‡</sup></a></td> <td>Each backend service supports one of the following backend combinations: <ul> <li>All instance group backends: One or more managed, unmanaged, or a combination of managed and unmanaged instance group backends</li> <li>All zonal NEGs: One or more <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> type zonal NEGs</li> <li>All hybrid connectivity NEGs: One or more <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type NEGs</li> <li>A combination of zonal and hybrid NEGs: <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> and <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type NEGs <a href="#gke-mixed-negs"><sup>†</sup></a></li> <li>All serverless NEGs: One or more App Engine, Cloud Run, or Cloud Run functions services, or</li> <li>One global internet NEG for an external backend</li> </ul> </td> <td>EXTERNAL<sup>#</sup></td> </tr> <tr> <td>Regional external Application Load Balancer</td> <td>Multiple</td> <td>Regional</td> <td>Each backend service supports one of the following backend combinations: <ul> <li>All instance group backends: One or more managed, unmanaged, or a combination of managed and unmanaged instance group backends <a href="#dual-stack"><sup>*</sup></a></li> <li>All zonal NEGs: One or more <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> type zonal NEGs <a href="#dual-stack"><sup>*</sup></a></li> <li>All hybrid connectivity NEGs: One or more <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type NEGs</li> <li>A combination of zonal and hybrid NEGs: <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> and <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type NEGs <a href="#gke-mixed-negs"><sup>†</sup></a></li> <li>A single serverless NEG (Cloud Run only)</li> <li>A single Private Service Connect NEG</li> <li>All regional internet NEGs for an external backend</li> </ul> </td> <td>EXTERNAL_MANAGED</td> </tr> <tr> <td>Cross-region internal Application Load Balancer</td> <td>Multiple</td> <td>Global</td> <td>Each backend service supports one of the following backend combinations: <ul> <li>All instance group backends: One or more managed, unmanaged, or a combination of managed and unmanaged instance group backends <a href="#dual-stack"><sup>*</sup></a></li> <li>All zonal NEGs: One or more <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> type zonal NEGs <a href="#dual-stack"><sup>*</sup></a></li> <li>All hybrid connectivity NEGs: One or more <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type NEGs</li> <li>A combination of zonal and hybrid NEGs: <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> and <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type NEGs <a href="#gke-mixed-negs"><sup>†</sup></a></li> <li>A single serverless NEG (Cloud Run only)</li> <li>Private Service Connect NEGs: <ul> <li> Google APIs: a single Private Service Connect NEG </li> <li> Managed services: one or more Private Service Connect NEGs </li> </ul> </li> </ul> </td> <td>INTERNAL_MANAGED</td> </tr> <tr> <td>Regional internal Application Load Balancer</td> <td>Multiple</td> <td>Regional</td> <td>Each backend service supports one of the following backend combinations: <ul> <li>All instance group backends: One or more managed, unmanaged, or a combination of managed and unmanaged instance group backends <a href="#dual-stack"><sup>*</sup></a></li> <li>All zonal NEGs: One or more <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> type zonal NEGs <a href="#dual-stack"><sup>*</sup></a></li> <li>All hybrid connectivity NEGs: One or more <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type NEGs</li> <li>A combination of zonal and hybrid NEGs: <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> and <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type NEGs <a href="#gke-mixed-negs"><sup>†</sup></a></li> <li>A single serverless NEG (Cloud Run only)</li> <li>A single Private Service Connect NEG</li> <li>All regional internet NEGs for an external backend</li> </ul> </td> <td>INTERNAL_MANAGED</td> </tr> <tr> <td>Global external proxy Network Load Balancer</td> <td>1</td> <td>Global<a href="#bes-global-all-tiers"><sup>‡</sup></a></td> <td>The backend service supports one of the following backend combinations: <ul> <li>All instance group backends: One or more managed, unmanaged, or a combination of managed and unmanaged instance group backends <a href="#dual-stack"><sup>*</sup></a></li> <li>All zonal NEGs: One or more <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> type zonal NEGs<a href="#dual-stack"><sup>*</sup></a></li> <li>All hybrid connectivity NEGs: One or more <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type NEGs</li> <li>A combination of zonal and hybrid NEGs: <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> and <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type NEGs <a href="#gke-mixed-negs"><sup>†</sup></a></li> <li>Private Service Connect NEGs: <ul> <li> Google APIs: a single Private Service Connect NEG </li> <li> Managed services: one or more Private Service Connect NEGs </li> </ul> </li> </ul> </td> <td>EXTERNAL_MANAGED</td> </tr> <tr> <td>Classic proxy Network Load Balancer</td> <td>1</td> <td>Global<a href="#bes-global-all-tiers"><sup>‡</sup></a></td> <td>The backend service supports one of the following backend combinations: <ul> <li>All instance group backends: One or more managed, unmanaged, or a combination of managed and unmanaged instance group backends</li> <li>All zonal NEGs: One or more <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> type zonal NEGs</li> <li>All hybrid connectivity NEGs: One or more <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type NEGs</li> <li>A combination of zonal and hybrid NEGs: <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> and <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type NEGs <a href="#gke-mixed-negs"><sup>†</sup></a></li> </ul> </td> <td>EXTERNAL</td> </tr> <tr> <td>Regional external proxy Network Load Balancer</td> <td>1</td> <td>Regional</td> <td>The backend service supports one of the following backend combinations: <ul> <li>All instance group backends: One or more managed, unmanaged, or a combination of managed and unmanaged instance group backends <a href="#dual-stack"><sup>*</sup></a></li> <li>All zonal NEGs: One or more <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> type zonal NEGs <a href="#dual-stack"><sup>*</sup></a></li> <li>All hybrid connectivity NEGs: One or more <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type NEGs</li> <li>A combination of zonal and hybrid NEGs: <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> and <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type NEGs</li> <li>All regional internet NEGs for an external backend</li> <li>A single Private Service Connect NEG</li> </ul> </td> <td>EXTERNAL_MANAGED</td> </tr> <tr> <td>Regional internal proxy Network Load Balancer</td> <td>1</td> <td>Regional</td> <td>The backend service supports one of the following backend combinations: <ul> <li>All instance group backends: One or more managed, unmanaged, or a combination of managed and unmanaged instance group backends <a href="#dual-stack"><sup>*</sup></a></li> <li>All zonal NEGs: One or more <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> type zonal NEGs <a href="#dual-stack"><sup>*</sup></a></li> <li>All hybrid connectivity NEGs: One or more <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type NEGs</li> <li>A combination of zonal and hybrid NEGs: <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> and <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type NEGs</li> <li>All regional internet NEGs for an external backend</li> <li>A single Private Service Connect NEG</li> </ul> </td> <td>INTERNAL_MANAGED</td> </tr> <tr> <td>Cross-region internal proxy Network Load Balancer</td> <td>Multiple</td> <td>Global</td> <td>The backend service supports one of the following backend combinations: <ul> <li>All instance group backends: One or more managed, unmanaged, or a combination of managed and unmanaged instance group backends <a href="#dual-stack"><sup>*</sup></a></li> <li>All zonal NEGs: One or more <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> type zonal NEGs <a href="#dual-stack"><sup>*</sup></a></li> <li>All hybrid connectivity NEGs: One or more <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type NEGs</li> <li>A combination of zonal and hybrid NEGs: <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> and <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type NEGs</li> <li>Private Service Connect NEGs: <ul> <li> Google APIs: a single Private Service Connect NEG </li> <li> Managed services: one or more Private Service Connect NEGs </li> </ul> </li> </ul> </td> <td>INTERNAL_MANAGED</td> </tr> <tr> <td>External passthrough Network Load Balancer</td> <td>1</td> <td>Regional</td> <td>The backend service supports one of the following backend combinations: <ul> <li>All instance group backends: One or more managed, unmanaged, or a combination of managed and unmanaged instance group backends </li> <li>All zonal NEGs: One or more <code translate="no" dir="ltr">GCE_VM_IP</code> type zonal NEGs</li> </ul> </td> <td>EXTERNAL</td> </tr> <tr> <td>Internal passthrough Network Load Balancer</td> <td>1</td> <td>Regional, but configurable to be globally accessible</td> <td>The backend service supports one of the following backend combinations: <ul> <li>All instance group backends: One or more managed, unmanaged, or a combination of managed and unmanaged instance group backends</li> <li>All zonal NEGs: One or more <code translate="no" dir="ltr">GCE_VM_IP</code> type zonal NEGs</li> <li>One port mapping NEG</li> </ul> </td> <td>INTERNAL</td> </tr> <tr> <td>Cloud Service Mesh</td> <td>Multiple</td> <td>Global</td> <td>Each backend service supports one of the following backend combinations: <ul> <li>All instance group backends: One or more managed, unmanaged, or a combination of managed and unmanaged instance group backends</li> <li>All zonal NEGs: One or more <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> or <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> type zonal NEGs</li> <li>One internet NEG of type <code translate="no" dir="ltr">INTERNET_FQDN_PORT</code></li> <li>One or more service bindings</li> </ul> </td> <td>INTERNAL_SELF_MANAGED</td> </tr> </table> <div id = "dual-stack" style="font-size: 10pt"><sup>*</sup> Support IPv4 and IPv6 (dual-stack) instance groups and zonal NEG backends. Zonal NEGs support dual-stack on only <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> type endpoints. </div></p> <div id = "gke-mixed-negs" style="font-size: 10pt"><sup>†</sup> For GKE deployments, mixed NEG backends are only supported with <a href="/kubernetes-engine/docs/how-to/standalone-neg">standalone NEGs</a>. </div> <div id = "bes-global-all-tiers" style="font-size: 10pt"> <sup>‡</sup> Backend services used by classic Application Load Balancers and classic proxy Network Load Balancers are always global in scope, in either Standard or Premium Network Tier. However, in Standard Tier the following restrictions apply: <ul> <li>The <a href=https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications>forwarding rule and its external IP address are regional</a>.</li> <li>All backends connected to the backend service must be located in the same region as the forwarding rule.</li> </ul> </div> <div id="load-balancing-scheme" style="font-size: 10pt"> <sup>#</sup> It is possible to attach <code translate="no" dir="ltr">EXTERNAL_MANAGED</code> backend services to <code translate="no" dir="ltr">EXTERNAL</code> forwarding rules. However, <code translate="no" dir="ltr">EXTERNAL</code> backend services cannot be attached to <code translate="no" dir="ltr">EXTERNAL_MANAGED</code> forwarding rules. To take advantage of <a href="/load-balancing/docs/https#load-balancer-mode">new features available only with the global external Application Load Balancer</a>, we recommend that you migrate your existing <code translate="no" dir="ltr">EXTERNAL</code> resources to <code translate="no" dir="ltr">EXTERNAL_MANAGED</code> by using the migration process described at <a href="/load-balancing/docs/https/migrate-from-classic-global">Migrate resources from classic to global external Application Load Balancer</a>. </div> <h2 id="backends" data-text="Backends" tabindex="-1">Backends</h2> <p>A backend is one or more endpoints that receive traffic from a Google Cloud load balancer, a Cloud Service Mesh-configured Envoy proxy, or a proxyless gRPC client. There are several types of backends:</p> <ul> <li><em>Instance group</em> containing virtual machine (VM) instances. An instance group can be a <a href="/compute/docs/instance-groups/creating-groups-of-managed-instances">managed instance group (MIG)</a>, with or without <a href="/compute/docs/autoscaler">autoscaling</a>, or it can be an <a href="/compute/docs/instance-groups/creating-groups-of-unmanaged-instances">unmanaged instance group</a>. More than one backend service can reference an instance group, but all backend services that reference the instance group <em>must</em> use the same balancing mode.</li> <li><a href="/load-balancing/docs/negs/zonal-neg-concepts">Zonal NEG</a> </li> <li><a href="/load-balancing/docs/negs/serverless-neg-concepts">Serverless NEG</a> </li> <li><a href="/load-balancing/docs/negs/internet-neg-concepts">Internet NEG</a></li> <li><a href="/load-balancing/docs/negs">Hybrid connectivity NEG</a></li> <li><a href="/vpc/docs/private-service-connect">Private Service Connect NEG</a> </li> <li><a href="/load-balancing/docs/negs#port-mapping-neg">Port mapping NEG</a> </li> <li><a href="/traffic-director/docs/service-directory-integration">Service Directory service bindings</a></li> </ul> <p>You cannot delete a backend instance group or NEG that is associated with a backend service. Before you delete an instance group or NEG, you must first remove it as a backend from all backend services that reference it.</p> <h3 id="instance_groups" data-text="Instance groups" tabindex="-1">Instance groups</h3> <p>This section discusses how instance groups work with the backend service.</p> <h4 id="backend_vms_and_external_ip_addresses" data-text="Backend VMs and external IP addresses" tabindex="-1">Backend VMs and external IP addresses</h4> <p>Backend VMs in backend services don&#39;t need external IP addresses:</p> <ul> <li><strong>For global external Application Load Balancers and external proxy Network Load Balancers:</strong> Clients communicate with a Google Front End (GFE) which hosts your load balancer&#39;s external IP address. GFEs communicate with backend VMs or endpoints by sending packets to an internal address created by joining an identifier for the backend&#39;s VPC network with the internal IPv4 address of the backend. Communication between GFEs and backend VMs or endpoints is facilitated through <a href="/vpc/docs/routes#return_paths_for_https_ssl_proxy_and_tcp_proxy_load_balancers">special routes</a>. <ul> <li>For instance group backends, the internal IPv4 address is always the primary internal IPv4 address that corresponds to the <code translate="no" dir="ltr">nic0</code> interface of the VM.</li> <li>For <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> endpoints in a zonal NEG, you can specify the endpoint&#39;s IP address as either the primary IPv4 address associated with any network interface of a VM or any IPv4 address from an alias IP address range associated with any network interface of a VM.</li> </ul></li> </ul> <ul> <li><p><strong>For regional external Application Load Balancers:</strong> Clients communicate with an Envoy proxy which hosts your load balancer&#39;s external IP address. Envoy proxies communicate with backend VMs or endpoints by sending packets to an internal address created by joining an identifier for the backend&#39;s VPC network with the internal IPv4 address of the backend.</p> <ul> <li>For instance group backends, the internal IPv4 address is always the primary internal IPv4 address that corresponds to the <code translate="no" dir="ltr">nic0</code> interface of the VM, and <code translate="no" dir="ltr">nic0</code> must be in the same network as the load balancer.</li> <li>For <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> endpoints in a zonal NEG, you can specify the endpoint&#39;s IP address as either the primary IPv4 address associated with any network interface of a VM or any IPv4 address from an alias IP address range associated with any network interface of a VM, as long as the network interface is in the same network as the load balancer.</li> </ul></li> <li><p><strong>For external passthrough Network Load Balancers:</strong> Clients communicate directly with backends by way of Google&#39;s <a href="https://research.google/pubs/maglev-a-fast-and-reliable-software-network-load-balancer/">Maglev</a> pass-through load balancing infrastructure. Packets are routed and delivered to backends with the original source and destination IP addresses preserved. Backends respond to clients <a href="/load-balancing/docs/network/networklb-backend-service#tcp-udp-request-return">using direct server return</a>. The methods used to select a backend and to track connections are <a href="/load-balancing/docs/network/networklb-backend-service#traffic-distribution">configurable</a>.</p> <ul> <li>For instance group backends, packets are always delivered to the <code translate="no" dir="ltr">nic0</code> interface of the VM.</li> <li>For <code translate="no" dir="ltr">GCE_VM_IP</code> endpoints in a zonal NEG, packets are delivered to the VM&#39;s network interface that is in the subnetwork associated with the NEG.</li> </ul></li> </ul> <h4 id="named-ports" data-text="Named ports" tabindex="-1">Named ports</h4> <p>The backend service&#39;s <em>named port</em> attribute is only applicable to proxy-based load balancers (Application Load Balancers and Proxy Network Load Balancers) using instance group backends. The named port defines the destination port used for the TCP connection between the proxy (GFE or Envoy) and the backend instance.</p> <p>Named ports are configured as follows:</p> <ul> <li><p>On each instance group backend, you must configure one or more <em>named ports</em> using key-value pairs. The key represents a meaningful port name that you choose, and the value represents the port number you assign to the name. The mapping of names to numbers is done individually for each instance group backend.</p></li> <li><p>On the backend service, you specify a single named port using just the port name (<code translate="no" dir="ltr">--port-name</code>).</p></li> </ul> <p>On a per-instance group backend basis, the backend service translates the port name to a port number. When an instance group&#39;s named port matches the backend service&#39;s <code translate="no" dir="ltr">--port-name</code>, the backend service uses this port number for communication with the instance group&#39;s VMs.</p> <p>For example, you might set the named port on an instance group with the name <code translate="no" dir="ltr">my-service-name</code> and the port <code translate="no" dir="ltr">8888</code>:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded> gcloud compute instance-groups unmanaged set-named-ports my-unmanaged-ig \ --named-ports=my-service-name:8888 </pre></devsite-code> <p>Then you refer to the named port in the backend service configuration with the <code translate="no" dir="ltr">--port-name</code> on the backend service set to <code translate="no" dir="ltr">my-service-name</code>:</p> <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded> gcloud compute backend-services update my-backend-service \ --port-name=my-service-name </pre></devsite-code> <p>A backend service can use a different port number when communicating with VMs in different instance groups if each instance group specifies a different port number for the same port name.</p> <p>The resolved port number used by the proxy load balancer&#39;s backend service doesn&#39;t need to match the port number used by the load balancer&#39;s forwarding rules. A proxy load balancer listens for TCP connections sent to the IP address and destination port of its forwarding rules. Because the proxy opens a second TCP connection to its backends, the second TCP connection&#39;s destination port can be different.</p> <p>Named ports are only applicable to instance group backends. Zonal NEGs with <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> endpoints, hybrid NEGs with <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> endpoints, and internet NEGs define ports using a different mechanism, namely, on the endpoints themselves. Serverless NEGs reference Google services and PSC NEGs reference service attachments using abstractions that don&#39;t involve specifying a destination port.</p> <p>Internal passthrough Network Load Balancers and external passthrough Network Load Balancers don&#39;t use named ports. This is because they are pass-through load balancers that route connections directly to backends instead of creating new connections. Packets are delivered to the backends preserving the destination IP address and port of the load balancer&#39;s forwarding rule.</p> <p>To learn how to create named ports, see the following instructions:</p> <ul> <li>Unmanaged instance groups: <a href="/compute/docs/instance-groups/creating-groups-of-unmanaged-instances#assign_named_ports">Working with named ports</a></li> <li>Managed instance groups: <a href="/compute/docs/instance-groups/adding-an-instance-group-to-a-load-balancer#assign_named_ports">Assigning named ports to managed instance groups</a></li> </ul> <h4 id="restrictions_and_guidance" data-text="Restrictions and guidance for instance groups" tabindex="-1">Restrictions and guidance for instance groups</h4> <p>Keep the following restrictions and guidance in mind when you create instance groups for your load balancers:</p> <ul> <li><p>Don&#39;t put a VM in more than one load-balanced instance group. If a VM is a member of two or more unmanaged instance groups, or a member of one managed instance group and one or more unmanaged instance groups, Google Cloud limits you to only using one of those instance groups at a time as a backend for a particular backend service.</p> <p>If you need a VM to participate in multiple load balancers, you must use the same instance group as a backend on each of the backend services.</p></li> <li><p>For proxy load balancers, when you want to balance traffic to different ports, specify the required <a href="#named-ports">named ports</a> on one instance group and have each backend service subscribe to a unique named port.</p></li> <li><p>You can use the same instance group as a backend for more than one backend service. In this situation, the backends must use compatible balancing modes. <em>Compatible</em> means that the balancing modes must be the same, or they must be a combination of compatible balancing modes&mdash;for example, <code translate="no" dir="ltr">CONNECTION</code> and <code translate="no" dir="ltr">RATE</code>.</p> <p>Incompatible balancing mode combinations are as follows:</p> <ul> <li><code translate="no" dir="ltr">CONNECTION</code> with <code translate="no" dir="ltr">UTILIZATION</code></li> <li><code translate="no" dir="ltr">RATE</code> with <code translate="no" dir="ltr">UTILIZATION</code></li> <li><code translate="no" dir="ltr">CUSTOM_METRICS</code> with <code translate="no" dir="ltr">UTILIZATION</code></li> <li><code translate="no" dir="ltr">CUSTOM_METRICS</code> with <code translate="no" dir="ltr">RATE</code></li> <li><code translate="no" dir="ltr">CUSTOM_METRICS</code> with <code translate="no" dir="ltr">CONNECTION</code></li> </ul> <p>Consider the following example:</p> <ul> <li>You have two backend services: <code translate="no" dir="ltr">external-https-backend-service</code> for an external Application Load Balancer and <code translate="no" dir="ltr">internal-tcp-backend-service</code> for an internal passthrough Network Load Balancer.</li> <li>You&#39;re using an instance group called <code translate="no" dir="ltr">instance-group-a</code> in <code translate="no" dir="ltr">internal-tcp-backend-service</code>.</li> <li>In <code translate="no" dir="ltr">internal-tcp-backend-service</code>, you must apply the <code translate="no" dir="ltr">CONNECTION</code> balancing mode because internal passthrough Network Load Balancers only support the <code translate="no" dir="ltr">CONNECTION</code> balancing mode.</li> <li>You can also use <code translate="no" dir="ltr">instance-group-a</code> in <code translate="no" dir="ltr">external-https-backend-service</code> if you apply the <code translate="no" dir="ltr">RATE</code> balancing mode in <code translate="no" dir="ltr">external-https-backend-service</code>.</li> <li>You <em>cannot</em> also use <code translate="no" dir="ltr">instance-group-a</code> in <code translate="no" dir="ltr">external-https-backend-service</code> with the <code translate="no" dir="ltr">UTILIZATION</code> balancing mode.</li> </ul></li> <li><p>To change the balancing mode for an instance group serving as a backend for multiple backend services:</p> <ul> <li>Remove the instance group from all backend services except for one.</li> <li>Change the balancing mode for the backend on the one remaining backend service.</li> <li>Re-add the instance group as a backend to the remaining backend services, if they support the new balancing mode.</li> </ul></li> <li><p>If your instance group is associated with several backend services, each backend service can reference the same named port or a different named port on the instance group.</p></li> <li><p>We recommend <em>not</em> adding an autoscaled managed instance group to more than one backend service. Doing so might cause unpredictable and unnecessary scaling of instances in the group, especially if you use the <strong>HTTP Load Balancing Utilization</strong> autoscaling metric.</p> <ul> <li>While not recommended, this scenario might work if the autoscaling metric is either <strong>CPU Utilization</strong> or a <strong>Cloud Monitoring Metric</strong> that is unrelated to the load balancer&#39;s serving capacity. Using one of these autoscaling metrics might prevent erratic scaling.</li> </ul></li> </ul> <h3 id="zonal_network_endpoint_groups" data-text="Zonal network endpoint groups" tabindex="-1">Zonal network endpoint groups</h3> <p><em>Network endpoints</em> represent services by their IP address or an IP address and port combination, rather than referring to a VM in an instance group. A <em>network endpoint group</em> (NEG) is a logical grouping of network endpoints.</p> <p>Zonal network endpoint groups (NEGs) are <a href="/compute/docs/regions-zones">zonal</a> resources that represent collections of either IP addresses or IP address and port combinations for Google Cloud resources within a single <a href="/vpc/docs/vpc#vpc_networks_and_subnets">subnet</a>.</p> <p>A backend service that uses zonal NEGs as its backends distributes traffic among applications or containers running <em>within</em> VMs.</p> <p>There are two types of network endpoints available for zonal NEGs:</p> <ul> <li><code translate="no" dir="ltr">GCE_VM_IP</code> endpoints (supported only with internal passthrough Network Load Balancers and backend service-based external passthrough Network Load Balancers).</li> <li><code translate="no" dir="ltr">GCE_VM_IP_PORT</code> endpoints.</li> </ul> <p>To see which products support zonal NEG backends, see <a href="#supported-backends-scheme">Table: Backend services and supported backend types</a>.</p> <p>For details, see <a href="/load-balancing/docs/negs/zonal-neg-concepts">Zonal NEGs overview</a>.</p> <h3 id="internet_network_endpoint_groups" data-text="Internet network endpoint groups" tabindex="-1">Internet network endpoint groups</h3> <p>Internet NEGs are resources that define external backends. An external backend is a backend that is hosted within on-premises infrastructure or on infrastructure provided by third parties.</p> <p>An internet NEG is a combination of a hostname or an IP address, plus an optional port. There are two types of network endpoints available for internet NEGs: <code translate="no" dir="ltr">INTERNET_FQDN_PORT</code>and <code translate="no" dir="ltr">INTERNET_IP_PORT</code>.</p> Internet NEGs are available in two scopes: global and regional. To see which products support internet NEG backends in each scope, see <a href="#supported-backends-scheme">Table: Backend services and supported backend types</a>. <p>For details, see <a href="/load-balancing/docs/negs/internet-neg-concepts">Internet network endpoint group overview</a>.</p> <h3 id="serverless_network_endpoint_groups" data-text="Serverless network endpoint groups" tabindex="-1">Serverless network endpoint groups</h3> <p>A network endpoint group (NEG) specifies a group of backend endpoints for a load balancer. A <em>serverless NEG</em> is a backend that points to a <a href="/run/docs">Cloud Run</a>, <a href="/appengine/docs">App Engine</a>, <a href="/functions/docs">Cloud Run functions</a>, or <a href="/api-gateway/docs">API Gateway</a> service.</p> <p>A serverless NEG can represent one of the following:</p> <ul> <li>A Cloud Run service or a group of services.</li> <li>A Cloud Run functions function or a group of functions.</li> <li>An App Engine app (Standard or Flex), a specific service within an app, a specific version of an app, or a group of services.</li> <li>An API Gateway that provides access to your services through a <a href="/compute/docs/reference/rest/beta/globalNetworkEndpointGroups">REST API</a> consistent across all services, regardless of service implementation. This capability is in <strong>Preview</strong>.</li> </ul> <aside class="special"><strong>Important:</strong><span> For a group of services to be in the same serverless NEG, they must have a common URL pattern.</span></aside> <p>To set up a serverless NEG for serverless applications that share a URL pattern, you use a <a href="/load-balancing/docs/negs/serverless-neg-concepts#url_masks">URL mask</a>. A URL mask is a template of your URL schema (for example, <code translate="no" dir="ltr">example.com/&lt;service&gt;</code>). The serverless NEG will use this template to extract the <code translate="no" dir="ltr">&lt;service&gt;</code> name from the incoming request&#39;s URL and route the request to the matching Cloud Run, Cloud Run functions, or App Engine service with the same name.</p> <p>To see which load balancers support serverless NEG backends, see <a href="#supported-backends-scheme">Table: Backend services and supported backend types</a>.</p> <p>For more information about serverless NEGs, see the <a href="/load-balancing/docs/negs/serverless-neg-concepts">Serverless network endpoint groups overview</a>.</p> <h3 id="service_bindings" data-text="Service bindings" tabindex="-1">Service bindings</h3> <p>A <em>service binding</em> is a backend that establishes a connection between a backend service in Cloud Service Mesh and a service registered in Service Directory. A backend service can reference several service bindings. A backend service with a service binding cannot reference any other type of backend.</p> <h3 id="mixed_backends" data-text="Mixed backends" tabindex="-1">Mixed backends</h3> <p>The following usage considerations apply when you add different types of backends to a single backend service:</p> <ul> <li>A single backend service cannot simultaneously use both instance groups and zonal NEGs.</li> <li>You can use a combination of different <em>types of instance groups</em> on the same backend service. For example, a single backend service can reference a combination of both managed and unmanaged instance groups. For complete information about which backends are compatible with which backend services, see the table in the previous section.</li> <li>With certain proxy load balancers, you can use a combination of zonal NEGs (with <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> endpoints) and hybrid connectivity NEGs (with <code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> endpoints) to configure <a href="/load-balancing/docs/hybrid">hybrid load balancing</a>. To see which load balancers have this capability, refer <a href="#supported-backends-scheme">Table: Backend services and supported backend types</a>.</li> </ul> <h3 id="protocol_to_the_backends" data-text="Protocol to the backends" tabindex="-1">Protocol to the backends</h3> <p>When you create a backend service, you must specify the protocol used to communicate with the backends. You can specify only one protocol per backend service &mdash; you cannot specify a secondary protocol to use as a fallback.</p> <p>Which protocols are valid depends on the type of load balancer or whether you are using Cloud Service Mesh.</p> <table> <caption><b>Table:</b> Protocol to the backends</caption> <tr> <th width="35%">Product</th> <th>Backend service protocol options</th> </tr> <tr> <td>Application Load Balancer</td> <td>HTTP, HTTPS, HTTP/2</td> </tr> <tr> <td>Proxy Network Load Balancer</td> <td><p>TCP or SSL</p> <p>The regional proxy Network Load Balancers support only TCP.</p></td> </tr> <tr> <td>Passthrough Network Load Balancer</td> <td>TCP, UDP, or UNSPECIFIED</td> </tr> <tr> <td>Cloud Service Mesh</td> <td>HTTP, HTTPS, HTTP/2, gRPC, TCP</td> </tr> </table> <p>Changing a backend service&#39;s protocol makes the backends inaccessible through load balancers for a few minutes.</p> <h3 id="ip-address-selection-policy" data-text="IP address selection policy" tabindex="-1">IP address selection policy</h3> <p>This field is applicable to proxy load balancers. You must use the IP address selection policy to specify the traffic type that is sent from the backend service to your backends.</p> <p>When you select the IP address selection policy, ensure that your backends support the selected traffic type. For more information, see <a href="#supported-backends-scheme">Table: Backend services and supported backend types</a>.</p> <p>IP address selection policy is used when you want to convert your load balancer backend service to support a different traffic type. For more information, see <a href="/load-balancing/docs/ipv6#convert-dual-stack">Convert from single-stack to dual-stack</a>.</p> <p>You can specify the following values for the IP address selection policy:</p> <p> <table> <tr> <th width="15%">IP address selection policy</th> <th width="85%">Description</th> </tr> <tr> <td><b>Only IPv4</b> </td> <td>Only send IPv4 traffic to the backends of the backend service, regardless of traffic from the client to the GFE. Only IPv4 health checks are used to check the health of the backends.</td> </tr> <tr> <td><b>Prefer IPv6</b> </td> <td><p>Prioritize the backend's IPv6 connection over the IPv4 connection (provided there is a healthy backend with IPv6 addresses).</p> <p>The health checks periodically monitor the backends' IPv6 and IPv4 connections. The GFE first attempts the IPv6 connection; if the IPv6 connection is broken or slow, the GFE uses <a href="https://datatracker.ietf.org/doc/html/rfc6555">happy eyeballs</a> to fall back and connect to IPv4.</p> <p>Even if one of the IPv6 or IPv4 connections is unhealthy, the backend is still treated as healthy, and both connections can be tried by the GFE, with happy eyeballs ultimately selecting which one to use.</p> </td> </tr> <tr> <td><b>Only IPv6</b> </td> <td><p>Only send IPv6 traffic to the backends of the backend service, regardless of traffic from the client to the proxy. Only IPv6 health checks are used to check the health of the backends.</p> <p>There is no validation to check if the backend traffic type matches the IP address selection policy. For example, if you have IPv4-only backends and select <code translate="no" dir="ltr">Only IPv6</code> as the IP address selection policy, the configuration results in unhealthy backends because traffic fails to reach those backends and the HTTP <code translate="no" dir="ltr">503</code> response code is returned to the clients.</p> </td> </tr> </table> <h3 id="encryption_between_the_load_balancer_and_backends" data-text="Encryption between the load balancer and backends" tabindex="-1">Encryption between the load balancer and backends</h3> <p>For information about encryption between the load balancer and backends, see <a href="/load-balancing/docs/ssl-certificates/encryption-to-the-backends">Encryption to the backends</a>.</p> <h2 id="traffic_distribution" data-text="Traffic distribution" tabindex="-1">Traffic distribution</h2> <p>The values of the following fields in the backend services resource determine some aspects of the backend&#39;s behavior:</p> <ul> <li>A <em>balancing mode</em> defines how the load balancer measures backend readiness for new requests or connections.</li> <li>A <em>target capacity</em> defines a target maximum number of connections, a target maximum rate, or target maximum CPU utilization.</li> <li>A <em>capacity scaler</em> adjusts overall available capacity without modifying the target capacity.</li> </ul> <h3 id="balancing-mode" data-text="Balancing mode" tabindex="-1">Balancing mode</h3> <p>The balancing mode determines whether the backends of a load balancer or Cloud Service Mesh can handle additional traffic or are fully loaded.</p> <p>Google Cloud has three balancing modes:</p> <ul> <li><code translate="no" dir="ltr">CONNECTION</code>: Determines how the load is spread based on the total number of connections that the backend can handle.</li> <li><code translate="no" dir="ltr">RATE</code>: The target maximum number of requests (queries) per second (RPS, QPS). The target maximum RPS/QPS can be exceeded if all backends are at or above capacity.</li> <li><code translate="no" dir="ltr">UTILIZATION</code>: Determines how the load is spread based on the utilization of instances in an instance group.</li> <li><code translate="no" dir="ltr">CUSTOM_METRICS</code>: Determines how the load is spread based on <a href="/load-balancing/docs/https/applb-custom-metrics-overview">user defined custom metrics</a>.</li> </ul> <h3 id="balancing-mode-lb" data-text="Balancing modes available for each load balancer" tabindex="-1">Balancing modes available for each load balancer</h3> <p>You set the balancing mode when you add a backend to the backend service. The balancing modes available to a load balancer depend on the type of load balancer and the type of backends.</p> <p>The <strong>passthrough Network Load Balancers</strong> require the <code translate="no" dir="ltr">CONNECTION</code> balancing mode but don&#39;t support setting any <a href="#target-capacity">target capacity</a>.</p> <p>The <strong>Application Load Balancers</strong> support either <code translate="no" dir="ltr">RATE</code>, <code translate="no" dir="ltr">UTILIZATION</code>, or <code translate="no" dir="ltr">CUSTOM_METRICS</code> balancing modes for instance group backends, and <code translate="no" dir="ltr">RATE</code> or <code translate="no" dir="ltr">CUSTOM_METRICS</code> balancing modes for zonal NEGs (<code translate="no" dir="ltr">GCE_VM_IP_PORT</code> endpoints) and hybrid NEGs (<code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> endpoints). For any other type of supported backend, balancing mode must be omitted.</p> <ul> <li><p>For classic Application Load Balancers, a region is selected based on the location of the client and whether the region has available capacity, based on the load balancing mode&#39;s target capacity. Then, within a region, the balancing mode&#39;s target capacity is used to compute proportions for how many requests should go to each backend in the region. Requests or connections are then distributed in a round robin fashion among instances or endpoints within the backend.</p></li> <li><p>For global external Application Load Balancers, a region is selected based on the location of the client and whether the region has available capacity, based on the load balancing mode&#39;s target capacity. Within a region, the balancing mode&#39;s target capacity is used to compute proportions for how many requests should go to each backend (instance group or NEG) in the region. You can use the <a href="/load-balancing/docs/service-lb-policy">service load balancing policy (<code translate="no" dir="ltr">serviceLbPolicy</code>)</a> and the <em>preferred backend</em> setting to influence the selection of any specific backends within a region. Furthermore, within each instance group or NEG, the load balancing policy (<code translate="no" dir="ltr">LocalityLbPolicy</code>) determines how traffic is distributed to instances or endpoints within the group.</p></li> </ul> <ul> <li>For cross-region internal Application Load Balancers, regional external Application Load Balancers, and regional internal Application Load Balancers, the balancing mode&#39;s target capacity is used to compute proportions for how many requests should go to each backend (instance group or NEG) in the region. Within each instance group or NEG, the load balancing policy (<code translate="no" dir="ltr">LocalityLbPolicy</code>) determines how traffic is distributed to instances or endpoints within the group. Only the cross-region internal Application Load Balancer support the use of the <a href="/load-balancing/docs/service-lb-policy">service load balancing policy (<code translate="no" dir="ltr">serviceLbPolicy</code>)</a> and the <em>preferred backend</em> settings to influence the selection of any specific backends within a region.</li> </ul> <p><strong>Proxy Network Load Balancers</strong> support either <code translate="no" dir="ltr">CONNECTION</code> or <code translate="no" dir="ltr">UTILIZATION</code> balancing modes for VM instance group backends, <code translate="no" dir="ltr">CONNECTION</code> balancing mode for zonal NEGs with <code translate="no" dir="ltr">GCE_VM_IP_PORT</code> endpoints, and <code translate="no" dir="ltr">CONNECTION</code> balancing mode for hybrid NEGs (<code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> endpoints). For any other type of supported backend, balancing mode must be omitted.</p> <ul> <li><p>For global external proxy Network Load Balancers, a region is selected based on the location of the client and whether the region has available capacity, based on the load balancing mode&#39;s target capacity. Within a region, the balancing mode&#39;s target capacity is used to compute proportions for how many requests should go to each backend (instance group or NEG) in the region. You can use the <a href="/load-balancing/docs/service-lb-policy">service load balancing policy (<code translate="no" dir="ltr">serviceLbPolicy</code>)</a> and the <em>preferred backend</em> setting to influence the selection of any specific backends within a region. Furthermore, within each instance group or NEG, the load balancing policy (<code translate="no" dir="ltr">LocalityLbPolicy</code>) determines how traffic is distributed to instances or endpoints within the group.</p></li> <li><p>For cross-region internal proxy Network Load Balancers, the configured region is selected first. Within a region, the balancing mode&#39;s target capacity is used to compute proportions for how many requests should go to each backend (instance group or NEG) in the region. You can use the <a href="/load-balancing/docs/service-lb-policy">service load balancing policy (<code translate="no" dir="ltr">serviceLbPolicy</code>)</a> and the <em>preferred backend</em> setting to influence the selection of any specific backends within a region. Furthermore, within each instance group or NEG, the load balancing policy (<code translate="no" dir="ltr">LocalityLbPolicy</code>) determines how traffic is distributed to instances or endpoints within the group.</p></li> <li><p>For classic proxy Network Load Balancers, a region is selected based on the location of the client and whether the region has available capacity based on the load balancing mode&#39;s target capacity. Then, within a region, the load balancing mode&#39;s target capacity is used to compute proportions for how many requests or connections should go to each backend (instance group or NEG) in the region. After the load balancer has selected a backend, requests or connections are then distributed in a round robin fashion among VM instances or network endpoints within each individual backend.</p></li> </ul> <ul> <li>For regional external proxy Network Load Balancers and regional internal proxy Network Load Balancers, the load balancing mode&#39;s target capacity is used to compute proportions for how many requests should go to each backend (instance group or NEG). Within each instance group or NEG, the load balancing policy (<code translate="no" dir="ltr">localityLbPolicy</code>) determines how traffic is distributed to instances or endpoints within the group.</li> </ul> <p>The following table summarizes the load balancing modes available for each load balancer and backend combination.</p> <table id="balancing-mode-support"> <caption><b>Table:</b> Balancing modes available for each load balancer</caption> <tr> <th width="25%">Load balancer</th> <th width="35%">Backends</th> <th width="40%">Balancing modes available</th> </tr> <tr> <td rowspan="3" >Application Load Balancer</td> <td>Instance groups</td> <td><code translate="no" dir="ltr">RATE</code>, <code translate="no" dir="ltr">UTILIZATION</code>, or <code translate="no" dir="ltr">CUSTOM_METRICS</code></td> </tr> <tr> <td>Zonal NEGs (<code translate="no" dir="ltr">GCE_VM_IP_PORT</code> endpoints)</td> <td><code translate="no" dir="ltr">RATE</code> or <code translate="no" dir="ltr">CUSTOM_METRICS</code></td> </tr> <tr> <td>Hybrid NEGs (<code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> endpoints)</td> <td><code translate="no" dir="ltr">RATE</code> or <code translate="no" dir="ltr">CUSTOM_METRICS</code></td> </tr> <tr> <td rowspan="3"> <p>Proxy Network Load Balancer</p> <ul> <li>Global external proxy Network Load Balancer</li> <li>Classic proxy Network Load Balancer</li> <li>Regional external proxy Network Load Balancer</li> <li>Regional internal proxy Network Load Balancer</li> <li>Cross-region internal proxy Network Load Balancer</li></ul></td> <td>Instance groups</td> <td><code translate="no" dir="ltr">CONNECTION</code> or <code translate="no" dir="ltr">UTILIZATION</code></td> </tr> <tr> <td>Zonal NEGs (<code translate="no" dir="ltr">GCE_VM_IP_PORT</code> endpoints)</td> <td><code translate="no" dir="ltr">CONNECTION</code></td> </tr> <tr> <td><p>Hybrid NEGs (<code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code> endpoints)</p> </td> <td><code translate="no" dir="ltr">CONNECTION</code></td> </tr> <tr> <td rowspan="2">Passthrough Network Load Balancer</td> <td>Instance groups</td> <td><code translate="no" dir="ltr">CONNECTION</code></td> </tr> <tr> <td>Zonal NEGs (<code translate="no" dir="ltr">GCE_VM_IP</code> endpoints)</td> <td><code translate="no" dir="ltr">CONNECTION</code></td> </tr> </table> <aside class="note"> <b>Note:</b> <p>If you observe poor distribution of traffic while using the <code translate="no" dir="ltr">UTILIZATION</code> balancing mode, we recommend using <code translate="no" dir="ltr">RATE</code> instead.</p> <p>The <code translate="no" dir="ltr">UTILIZATION</code> balancing mode depends on VM instance or CPU utilization along with other factors. When these factors fluctuate, the load balancer calculates capacities ineffectively, which frequently leads to poor distribution of traffic between backend groups. In contrast, for <code translate="no" dir="ltr">RATE</code> balancing mode, the load balancer sends requests to the backend group with the lowest average latency over recent requests, or for HTTP/2 and HTTP/3, requests are sent to the backend group with the fewest outstanding requests.</p> </aside> <p>If the average utilization of all VMs that are associated with a backend service is less than 10%, Google Cloud might prefer specific zones. This can happen when you use regional managed instance groups, zonal managed instance groups in different zones, and zonal unmanaged instance groups. This zonal imbalance automatically resolves as more traffic is sent to the load balancer.</p> <p>For more information, see <a href="/sdk/gcloud/reference/compute/backend-services/add-backend#--balancing-mode">gcloud compute backend-services add-backend</a>.</p> <h3 id="target-capacity" data-text="Target capacity" tabindex="-1">Target capacity</h3> <p>Each balancing mode has a corresponding <em>target capacity</em>, which defines one of the following target maximums:</p> <ul> <li>Number of connections</li> <li>Rate</li> <li>CPU utilization</li> </ul> <p>For every balancing mode, the target capacity is not a circuit breaker. A load balancer can exceed the maximum under certain conditions, for example, if all backend VMs or endpoints have reached the maximum.</p> <h3 id="connection_balancing_mode" data-text="Connection balancing mode" tabindex="-1">Connection balancing mode</h3> <p>For <code translate="no" dir="ltr">CONNECTION</code> balancing mode, the target capacity defines a target maximum number of open connections. Except for internal passthrough Network Load Balancers and external passthrough Network Load Balancers, you must use one of the following settings to specify a target maximum number of connections:</p> <ul> <li><code translate="no" dir="ltr">max-connections-per-instance</code> (per VM): Target average number of connections for a single VM.</li> <li><code translate="no" dir="ltr">max-connections-per-endpoint</code> (per endpoint in a zonal NEG): Target average number of connections for a single endpoint.</li> <li><code translate="no" dir="ltr">max-connections</code> (per zonal NEGs and for zonal instance groups): Target average number of connections for the whole NEG or instance group. For regional managed instance groups, use <code translate="no" dir="ltr">max-connections-per-instance</code> instead.</li> </ul> <p>The following table shows how the target capacity parameter defines the following:</p> <ul> <li>The target capacity for the whole backend</li> <li>The expected target capacity for each instance or endpoint</li> </ul> <table> <caption><b>Table:</b> Target capacity for backends using the CONNECTION balancing mode</caption> <thead> <tr> <th width="20%">Backend type</th> <th width="35%">Target capacity</th> <th width="23%"></th> <th width="22%"></th> </tr> </thead> <tbody> <tr> <td></td> <td><b>If you specify</b></td> <td><b>Whole backend capacity</b></td> <td><b>Expected per instance or per endpoint capacity</b></td> </tr> <tr> <td>Instance group<br> <code translate="no" dir="ltr">N</code> instances,<br> <code translate="no" dir="ltr">H</code> healthy<br> </td> <td> <code translate="no" dir="ltr">max-connections-per-instance=X</code> </td> <td> <code translate="no" dir="ltr">X × N</code> </td> <td> <code translate="no" dir="ltr">(X × N)/H</code> </td> </tr> <tr> <td>Zonal NEG<br> <code translate="no" dir="ltr">N</code> endpoints,<br> <code translate="no" dir="ltr">H</code> healthy </td> <td> <code translate="no" dir="ltr">max-connections-per-endpoint=X</code> </td> <td> <code translate="no" dir="ltr">X × N</code> </td> <td> <code translate="no" dir="ltr">(X × N)/H</code> </td> </tr> <tr> <td>Instance groups<br> (except regional managed instance groups)<br> <br> <code translate="no" dir="ltr">H</code> healthy instances </td> <td> <code translate="no" dir="ltr">max-connections=Y</code> </td> <td> <code translate="no" dir="ltr">Y</code> </td> <td> <code translate="no" dir="ltr">Y/H</code> </td> </tr> </tbody> </table> <p>As illustrated, the <code translate="no" dir="ltr">max-connections-per-instance</code> and <code translate="no" dir="ltr">max-connections-per-endpoint</code> settings are proxies for calculating a target maximum number of connections for the whole VM instance group or whole zonal NEG:</p> <ul> <li>In a VM instance group with <code translate="no" dir="ltr">N</code> instances, setting <code translate="no" dir="ltr">max-connections-per-instance=X</code> has the same meaning as setting <code translate="no" dir="ltr">max-connections=X × N</code>.</li> <li>In a zonal NEG with <code translate="no" dir="ltr">N</code> endpoints, setting <code translate="no" dir="ltr">max-connections-per-endpoint=X</code> has the same meaning as setting <code translate="no" dir="ltr">max-connections=X × N</code>.</li> </ul> <h3 id="rate_balancing_mode" data-text="Rate balancing mode" tabindex="-1">Rate balancing mode</h3> <p>For the <code translate="no" dir="ltr">RATE</code> balancing mode, you must define the target capacity using one of the following parameters:</p> <ul> <li><code translate="no" dir="ltr">max-rate-per-instance</code> (per VM): Provide a target average HTTP request rate for a single VM.</li> <li><code translate="no" dir="ltr">max-rate-per-endpoint</code> (per endpoint in a zonal NEG): Provide a target average HTTP request rate for a single endpoint.</li> <li><code translate="no" dir="ltr">max-rate</code> (per zonal NEGs and for zonal instance groups): Provide a target average HTTP request rate for the whole NEG or instance group. For regional managed instance groups, use <code translate="no" dir="ltr">max-rate-per-instance</code> instead.</li> </ul> <p>The following table shows how the target capacity parameter defines the following:</p> <ul> <li>The target capacity for the whole backend</li> <li>The expected target capacity for each instance or endpoint</li> </ul> <table> <caption><b>Table:</b> Target capacity for backends using the RATE balancing mode</caption> <thead> <tr> <th width="20%">Backend type</th> <th width="35%">Target capacity</th> <th width="23%"></th> <th width="22%"></th> </tr> </thead> <tbody> <tr> <td></td> <td><b>If you specify</b></td> <td><b>Whole backend capacity</b></td> <td><b>Expected per instance or per endpoint capacity</b></td> </tr> <tr> <td>Instance group<br> <code translate="no" dir="ltr">N</code> instances,<br> <code translate="no" dir="ltr">H</code> healthy<br> </td> <td> <code translate="no" dir="ltr">max-rate-per-instance=X</code> </td> <td> <code translate="no" dir="ltr">X × N</code> </td> <td> <code translate="no" dir="ltr">(X × N)/H</code> </td> </tr> <tr> <td>zonal NEG<br> <code translate="no" dir="ltr">N</code> endpoints,<br> <code translate="no" dir="ltr">H</code> healthy </td> <td> <code translate="no" dir="ltr">max-rate-per-endpoint=X</code> </td> <td> <code translate="no" dir="ltr">X × N</code> </td> <td> <code translate="no" dir="ltr">(X × N)/H</code> </td> </tr> <tr> <td>Instance groups<br> (except regional managed instance groups)<br> <br> <code translate="no" dir="ltr">H</code> healthy instances </td> <td> <code translate="no" dir="ltr">max-rate=Y</code> </td> <td> <code translate="no" dir="ltr">Y</code> </td> <td> <code translate="no" dir="ltr">Y/H</code> </td> </tr> </tbody> </table> <p>As illustrated, the <code translate="no" dir="ltr">max-rate-per-instance</code> and <code translate="no" dir="ltr">max-rate-per-endpoint</code> settings are proxies for calculating a target maximum rate of HTTP requests for the whole instance group or whole zonal NEG:</p> <ul> <li>In an instance group with <code translate="no" dir="ltr">N</code> instances, setting <code translate="no" dir="ltr">max-rate-per-instance=X</code> has the same meaning as setting <code translate="no" dir="ltr">max-rate=X × N</code>.</li> <li>In a zonal NEG with <code translate="no" dir="ltr">N</code> endpoints, setting <code translate="no" dir="ltr">max-rate-per-endpoint=X</code> has the same meaning as setting <code translate="no" dir="ltr">max-rate=X × N</code>.</li> </ul> <h3 id="utilization_balancing_mode" data-text="Utilization balancing mode" tabindex="-1">Utilization balancing mode</h3> <p>The <code translate="no" dir="ltr">UTILIZATION</code> balancing mode has no mandatory target capacity. You have a number of options that depend on the type of backend, as summarized in the table in the following section.</p> <p>The <code translate="no" dir="ltr">max-utilization</code> target capacity can only be specified per instance group and cannot be applied to a particular VM in the group.</p> <p>The <code translate="no" dir="ltr">UTILIZATION</code> balancing mode has no mandatory target capacity. When you use the Google Cloud console to add a backend instance group to a backend service, the Google Cloud console sets the value of <code translate="no" dir="ltr">max-utilization</code> to 0.8 (80%) if the <code translate="no" dir="ltr">UTILIZATION</code> balancing mode is selected. In addition to <code translate="no" dir="ltr">max-utilization</code>, the <code translate="no" dir="ltr">UTILIZATION</code> balancing mode supports more complex target capacities, as summarized in the table in the following section.</p> <h3 id="custom_metrics_balancing_mode" data-text="Custom metrics balancing mode" tabindex="-1">Custom metrics balancing mode</h3> <p>The <code translate="no" dir="ltr">CUSTOM_METRICS</code> balancing mode lets you define your own custom metrics that can be used to determine how the load is spread. Custom metrics let you configure your load balancer&#39;s traffic distribution behavior to be based on metrics specific to your application or infrastructure requirements, rather than Google Cloud&#39;s standard utilization or rate-based metrics.</p> <p>For more information, see <a href="/load-balancing/docs/https/applb-custom-metrics-overview">Custom metrics for Application Load Balancers</a>.</p> <h3 id="change_balancing_mode" data-text="Changing the balancing mode of a load balancer" tabindex="-1">Changing the balancing mode of a load balancer</h3> <p>For some load balancers or load balancer configurations, you cannot change the balancing mode because the backend service has only one possible balancing mode. For others, depending on the backend used, you can change the balancing mode because more than one mode is available to those backend services.</p> <p>To see which balancing modes are supported for each load balancer, refer the <a href="#balancing-mode-support">Table: Balancing modes available for each load balancer</a></p> <h3 id="balancing-mode-combos" data-text="Balancing modes and target capacity settings" tabindex="-1">Balancing modes and target capacity settings</h3> <p>For products that support a target capacity specification, the target capacity is <em>not</em> a circuit breaker. When the configured target capacity maximum is reached in a given zone, new requests or connections are distributed to other zones that aren&#39;t processing requests or connections at target capacity. If all zones have reached target capacity, new requests or connections are distributed by overfilling.</p> <h4 id="applb-csm" data-text="Application Load Balancers and Cloud Service Mesh" tabindex="-1">Application Load Balancers and Cloud Service Mesh</h4> <p>This table lists the available balancing mode and target capacity combinations for Application Load Balancers and Cloud Service Mesh.</p> <table class="purple"> <caption><b>Table:</b> Balancing mode and target capacity combinations for Application Load Balancers and Cloud Service Mesh </caption> <tr> <th width="30%">Backend type</th> <th width="20%">Balancing mode</th> <th width="50%">Target capacity specification</th> </tr> <tr> <td rowspan="3">Instance groups <ul> <li>zonal unmanaged</li> <li>zonal managed</li> <li>regional managed</li> </ul> </td> <td><code translate="no" dir="ltr">RATE</code></td> <td>You <b>must</b> specify one of the following: <ul> <li><code translate="no" dir="ltr">max-rate</code><br> &nbsp;(supported only by zonal instance groups)</li> <li><code translate="no" dir="ltr">max-rate-per-instance</code><br> &nbsp;(supported by all instance groups)</li> </ul></td> </tr> <tr> <td><code translate="no" dir="ltr">UTILIZATION</code></td> <td>You can <b>optionally</b> specify one of the following: <ul> <li>(1) <code translate="no" dir="ltr">max-utilization</code></li> <li>(2) <code translate="no" dir="ltr">max-rate</code><br> &nbsp;(supported only by zonal instance groups)</li> <li>(3) <code translate="no" dir="ltr">max-rate-per-instance</code><br> &nbsp;(supported by all instance groups)</li> <li>(1) and (2) together</li> <li>(1) and (3) together</li> </ul></td> </tr> <tr> <td><code translate="no" dir="ltr">CUSTOM_METRICS</code></td> <td>You can <b>optionally</b> specify one of the following: <ul> <li>(1) The metric's <code translate="no" dir="ltr">max-utilization</code> (that is, the metric's <code translate="no" dir="ltr">backends[].customMetrics[].maxUtilization</code> field)</li> <li>(2) <code translate="no" dir="ltr">max-rate</code><br> &nbsp;(supported only by zonal instance groups)</li> <li>(3) <code translate="no" dir="ltr">max-rate-per-instance</code><br> &nbsp;(supported by all instance groups)</li> <li>(1) and (2) together</li> <li>(1) and (3) together</li> </ul> Per backend <code translate="no" dir="ltr">max-utilization</code> isn't supported.</td> </tr> <tr> <td rowspan="2"> <p>Zonal NEGs</p> <ul><li><code translate="no" dir="ltr">GCP_VM_IP_PORT</code></li></ul> <p>Hybrid NEGS</p> <ul><li><code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code></li></ul> </td> <td><code translate="no" dir="ltr">RATE</code></td> <td>You <b>must</b> specify one of the following: <ul> <li><code translate="no" dir="ltr">max-rate</code> per zonal NEG</li> <li><code translate="no" dir="ltr">max-rate-per-endpoint</code></li> </ul></td> </tr> <tr> <td><code translate="no" dir="ltr">CUSTOM_METRICS</code></td> <td>You can <b>optionally</b> specify one of the following: <ul> <li>(1) The metric's <code translate="no" dir="ltr">max-utilization</code> (that is, the metric's <code translate="no" dir="ltr">backends[].customMetrics[].maxUtilization</code> field)</li> <li>(2) <code translate="no" dir="ltr">max-rate</code> per zonal NEG</li> <li>(3) <code translate="no" dir="ltr">max-rate-per-endpoint</code></li> <li>(1) and (2) together</li> <li>(1) and (3) together</li> </ul> Per backend <code translate="no" dir="ltr">max-utilization</code> isn't supported.</td> </tr> </table> <h4 id="proxy-net-lb" data-text="Proxy Network Load Balancers" tabindex="-1">Proxy Network Load Balancers</h4> <p>This table lists the available balancing mode and target capacity combinations for Proxy Network Load Balancers.</p> <table class="orange"> <caption><b>Table:</b> Balancing mode and target capacity combinations for Proxy Network Load Balancers </caption> <tr> <th width="30%">Backend type</th> <th width="20%">Balancing mode</th> <th width="50%">Target capacity specification</th> </tr> <tr> <td rowspan="2">Instance groups <ul> <li>zonal unmanaged</li> <li>zonal managed</li> <li>regional managed</li> </ul> </td> <td><code translate="no" dir="ltr">CONNECTION</code></td> <td>You <b>must</b> specify one of the following: <ul> <li><code translate="no" dir="ltr">max-connections</code><br> &nbsp;(supported only by zonal instance groups)</li> <li><code translate="no" dir="ltr">max-rate-per-instance</code><br> &nbsp;(supported by all instance groups)</li> </ul></td> </tr> <tr> <td><code translate="no" dir="ltr">UTILIZATION</code></td> <td>You can <b>optionally</b> specify one of the following: <ul> <li>(1) <code translate="no" dir="ltr">max-utilization</code></li> <li>(2) <code translate="no" dir="ltr">max-connections</code><br> &nbsp;(supported only by zonal instance groups)</li> <li>(3) <code translate="no" dir="ltr">max-connections-per-instance</code><br> &nbsp;(supported by all instance groups)</li> <li>(1) and (2) together</li> <li>(1) and (3) together</li> </ul></td> </tr> <tr> <td> <p>Zonal NEGs</p> <ul><li><code translate="no" dir="ltr">GCP_VM_IP_PORT</code></li></ul> <p>Hybrid NEGS</p> <ul><li><code translate="no" dir="ltr">NON_GCP_PRIVATE_IP_PORT</code></li></ul> </td> <td><code translate="no" dir="ltr">CONNECTION</code></td> <td>You <b>must</b> specify one of the following: <ul> <li><code translate="no" dir="ltr">max-connections</code> per zonal NEG</li> <li><code translate="no" dir="ltr">max-connections-per-endpoint</code></li> </ul></td> </tr> </table> <h4 id="pass-net-lb" data-text="Passthrough Network Load Balancers" tabindex="-1">Passthrough Network Load Balancers</h4> <p>This table lists the available balancing mode and target capacity combinations for Passthrough Network Load Balancers.</p> <table class="green"> <caption><b>Table:</b> Balancing mode and target capacity combinations for Passthrough Network Load Balancers </caption> <tr> <th width="30%">Backend type</th> <th width="20%">Balancing mode</th> <th width="50%">Target capacity specification</th> </tr> <tr> <td>Instance groups <ul> <li>zonal unmanaged</li> <li>zonal managed</li> <li>regional managed</li> </ul> </td> <td><code translate="no" dir="ltr">CONNECTION</code></td> <td>You cannot specify a target maximum number of connections.</td> </tr> <tr> <td>Zonal NEGs <ul> <li><code translate="no" dir="ltr">GCP_VM_IP</code></li> </ul> </td> <td><code translate="no" dir="ltr">CONNECTION</code></td> <td>You cannot specify a target maximum number of connections.</td> </tr> </table> <h3 id="capacity_scaler" data-text="Capacity scaler" tabindex="-1">Capacity scaler</h3> <p>Use capacity scaler to scale the target capacity (max utilization, max rate, or max connections) without changing the target capacity.</p> <p>For the Google Cloud reference documentation, see the following:</p> <ul> <li>Google Cloud CLI: <a href="/sdk/gcloud/reference/compute/backend-services/add-backend#--capacity-scaler">capacity-scaler</a></li> <li>API: <ul> <li><a href="/compute/docs/reference/rest/v1/regionBackendServices/insert">Regional</a> </li> <li><a href="/compute/docs/reference/rest/v1/backendServices/insert">Global</a> </li> </ul></li> </ul> <p>You can adjust the capacity scaler to scale the effective target capacity without explicitly changing one of the <code translate="no" dir="ltr">--max-*</code> parameters.</p> <p>You can set the capacity scaler to either of these values:</p> <ul> <li>The default value is <code translate="no" dir="ltr">1</code>, which means the group serves up to 100% of its configured capacity (depending on <code translate="no" dir="ltr">balancingMode</code>).</li> <li>A value of <code translate="no" dir="ltr">0</code> means the group is completely drained, offering 0% of its available capacity. You cannot configure a setting of <code translate="no" dir="ltr">0</code> when there is only one backend attached to the backend service.</li> <li>A value from <code translate="no" dir="ltr">0.1</code> (10%) to <code translate="no" dir="ltr">1.0</code> (100%).</li> </ul> <p>The following examples demonstrate how the capacity scaler works in conjunction with the target capacity setting:</p> <ul> <li><p>If the balancing mode is <code translate="no" dir="ltr">RATE</code>, the <code translate="no" dir="ltr">max-rate</code> is set to <code translate="no" dir="ltr">80</code> RPS, and the capacity scaler is <code translate="no" dir="ltr">1.0</code>, the available capacity is also <code translate="no" dir="ltr">80</code> RPS.</p></li> <li><p>If the balancing mode is <code translate="no" dir="ltr">RATE</code>, the <code translate="no" dir="ltr">max-rate</code> is set to <code translate="no" dir="ltr">80</code> RPS, and the capacity scaler is <code translate="no" dir="ltr">0.5</code>, the available capacity is <code translate="no" dir="ltr">40</code> RPS (<code translate="no" dir="ltr">0.5 times 80</code>).</p></li> <li><p>If the balancing mode is <code translate="no" dir="ltr">RATE</code>, the <code translate="no" dir="ltr">max-rate</code> is set to <code translate="no" dir="ltr">80</code> RPS, and the capacity scaler is <code translate="no" dir="ltr">0.0</code>, the available capacity is zero (<code translate="no" dir="ltr">0</code>).</p></li> </ul> <aside class="note"><strong>Note:</strong><span> Capacity scaler is not supported for backends that don&#39;t support a <a href="#balancing-mode">balancing mode</a>. This includes backends such as internet NEGs, serverless NEGs, and PSC NEGs.</span></aside> <h3 id="service-lb-policy" data-text="Service load balancing policy" tabindex="-1">Service load balancing policy</h3> <p>A <em>service load balancing policy</em> (<code translate="no" dir="ltr">serviceLbPolicy</code>) is a resource associated with the load balancer&#39;s <a href="/load-balancing/docs/backend-service">backend service</a>. It lets you customize the parameters that influence how traffic is distributed within the backends associated with a backend service:</p> <ul> <li>Customize the load balancing algorithm used to determine how traffic is distributed among regions or zones.</li> <li>Enable auto-capacity draining so that the load balancer can quickly drain traffic from unhealthy backends.</li> </ul> <p>Additionally, you can designate specific backends as <em>preferred backends</em>. These backends must be used to capacity (that is, the target capacity specified by the backend&#39;s balancing mode) before requests are sent to the remaining backends.</p> <p>To learn more, see <a href="/load-balancing/docs/service-lb-policy">Advanced load balancing optimizations with a service load balancing policy</a>.</p> <h3 id="lb-locality-policy" data-text="Load balancing locality policy" tabindex="-1">Load balancing locality policy</h3> <p>For a backend service, traffic distribution is based on a balancing mode and a <em>load balancing locality policy</em>. The balancing mode determines the fraction of traffic that should be sent to each backend (instance group or NEG). The load balancing locality policy then (<code translate="no" dir="ltr">LocalityLbPolicy</code>) determines how traffic is distributed across instances or endpoints within each zone. For regional managed instance groups, the locality policy applies to each constituent zone.</p> <p>The load balancing locality policy is configured per-backend service. The following settings are available:</p> <ul> <li><p><code translate="no" dir="ltr">ROUND_ROBIN</code> (default): This is the default load balancing locality policy setting in which the load balancer selects a healthy backend in round robin order.</p></li> <li><p><code translate="no" dir="ltr">LEAST_REQUEST</code>: An <code translate="no" dir="ltr">O(1)</code> algorithm in which the load balancer selects two random healthy hosts and picks the host which has fewer active requests.</p></li> <li><p><code translate="no" dir="ltr">RING_HASH</code>: This algorithm implements consistent hashing to backends. The algorithm has the property that the addition or removal of a host from a set of N hosts only affects 1/N of the requests.</p></li> <li><p><code translate="no" dir="ltr">RANDOM</code>: The load balancer selects a random healthy host.</p></li> <li><p><code translate="no" dir="ltr">ORIGINAL_DESTINATION</code>: The load balancer selects a backend based on the client connection metadata. Connections are opened to the original destination IP address specified in the incoming client request, before the request was redirected to the load balancer.</p> <p><code translate="no" dir="ltr">ORIGINAL_DESTINATION</code> is not supported for global and regional external Application Load Balancers.</p></li> <li><p><code translate="no" dir="ltr">MAGLEV</code>: Implements consistent hashing to backends and can be used as a replacement for the <code translate="no" dir="ltr">RING_HASH</code> policy. Maglev is not as stable as <code translate="no" dir="ltr">RING_HASH</code> but has faster table lookup build times and host selection times. For more information about Maglev, see the <a href="https://research.google/pubs/maglev-a-fast-and-reliable-software-network-load-balancer/">Maglev whitepaper</a>.</p></li> <li><p><code translate="no" dir="ltr">WEIGHTED_MAGLEV</code>: Implements per-instance weighted load balancing by using weights reported by health checks. If this policy is used, the backend service must configure a non legacy HTTP-based health check, and health check replies are expected to contain the non-standard HTTP response header field, <code translate="no" dir="ltr">X-Load-Balancing-Endpoint-Weight</code>, to specify the per-instance weights. Load balancing decisions are made based on the per-instance weights reported in the last processed health check replies, as long as every instance reports a valid weight or reports <code translate="no" dir="ltr">UNAVAILABLE_WEIGHT</code>. Otherwise, load balancing will remain equal-weight.</p> <p><code translate="no" dir="ltr">WEIGHTED_MAGLEV</code> is supported only for External passthrough Network Load Balancers. For an example, see <a href="/load-balancing/docs/network/configure-weighted-netlb">Set up weighted load balancing for external passthrough Network Load Balancers</a>.</p></li> </ul> <p>Configuring a load balancing locality policy is supported only on backend services used with the following load balancers:</p> <ul> <li>Global external Application Load Balancer</li> <li>Regional external Application Load Balancer</li> <li>Cross-region internal Application Load Balancer</li> <li>Regional internal Application Load Balancer</li> <li>External passthrough Network Load Balancer</li> </ul> <p>Note that the effective default value of the load balancing locality policy (<code translate="no" dir="ltr">localityLbPolicy</code>) changes according to your session affinity settings. If session affinity is not configured&mdash;that is, if session affinity remains at the default value of <code translate="no" dir="ltr">NONE</code>&mdash;then the default value for <code translate="no" dir="ltr">localityLbPolicy</code> is <code translate="no" dir="ltr">ROUND_ROBIN</code>. If session affinity is set to a value other than <code translate="no" dir="ltr">NONE</code>, then the default value for <code translate="no" dir="ltr">localityLbPolicy</code> is <code translate="no" dir="ltr">MAGLEV</code>.</p> <p>To configure a load balancing locality policy, you can use the Google Cloud console, gcloud (<a href="/sdk/gcloud/reference/compute/backend-services/create#--locality-lb-policy"><code translate="no" dir="ltr">--locality-lb-policy</code></a>) or the API (<a href="/compute/docs/reference/rest/v1/backendServices"><code translate="no" dir="ltr">localityLbPolicy</code></a>).</p> <h3 id="td-distribution" data-text="Cloud Service Mesh and traffic distribution" tabindex="-1">Cloud Service Mesh and traffic distribution</h3> <p>Cloud Service Mesh also uses backend service resources. Specifically, Cloud Service Mesh uses backend services whose load balancing scheme is <code translate="no" dir="ltr">INTERNAL_SELF_MANAGED</code>. For an internal self-managed backend service, traffic distribution is based on the combination of a <em>load balancing mode</em> and a <em>load balancing policy</em>. The backend service directs traffic to a backend according to the backend&#39;s balancing mode. Then Cloud Service Mesh distributes traffic according to a load balancing policy.</p> <p>Internal self-managed backend services support the following balancing modes:</p> <ul> <li><code translate="no" dir="ltr">UTILIZATION</code>, if all the backends are instance groups</li> <li><code translate="no" dir="ltr">RATE</code>, if all the backends are either instance groups or zonal NEGs</li> </ul> <p>If you choose <code translate="no" dir="ltr">RATE</code> balancing mode, you must specify a maximum rate, maximum rate per instance, or maximum rate per endpoint.</p> <p>For more information about Cloud Service Mesh, see <a href="/traffic-director/docs/traffic-director-concepts">Cloud Service Mesh concepts</a>.</p> <h3 id="subsetting" data-text="Backend subsetting" tabindex="-1">Backend subsetting</h3> <p><em>Backend subsetting</em> is an optional feature that improves performance and scalability by assigning a subset of backends to each of the proxy instances.</p> <p>Backend subsetting is supported for the following:</p> <ul> <li>Regional internal Application Load Balancer</li> <li>Internal passthrough Network Load Balancer</li> </ul> <h4 id="https-subsetting" data-text="Backend subsetting for regional internal Application Load Balancers" tabindex="-1">Backend subsetting for regional internal Application Load Balancers</h4> <aside class="beta"> <p> <strong> Preview </strong> </p> <p> This product or feature is subject to the "Pre-GA Offerings Terms" in the General Service Terms section of the <a href="/terms/service-terms#1" track-type="commonIncludes">Service Specific Terms</a>. Pre-GA products and features are available "as is" and might have limited support. For more information, see the <a href="/products#product-launch-stages" track-type="commonIncludes">launch stage descriptions</a>. </p> </aside> <em>The cross-region internal Application Load Balancer doesn&#39;t support backend subsetting.</em> <p>For regional internal Application Load Balancers, backend subsetting automatically assigns only a subset of the backends within the regional backend service to each proxy instance. By default, each proxy instance opens connections to all the backends within a backend service. When the number of proxy instances and the backends are both large, opening connections to all the backends can lead to performance issues.</p> <p>By enabling subsetting, each proxy only opens connections to a subset of the backends, reducing the number of connections which are kept open to each backend. Reducing the number of simultaneously open connections to each backend can improve performance for both the backends and the proxies.</p> <p>The following diagram shows a load balancer with two proxies. Without backend subsetting, traffic from both proxies is distributed to all the backends in the backend service 1. With backend subsetting enabled, traffic from each proxy is distributed to a subset of the backends. Traffic from proxy 1 is distributed to backends 1 and 2, and traffic from proxy 2 is distributed to backends 3 and 4.</p> <figure style="text-align: center"> <a href="/static/load-balancing/images/ilb-l7-subsetting.svg"> <img src="/static/load-balancing/images/ilb-l7-subsetting.svg" border="0" Alt="Comparing internal Application Load Balancer without and with backend subsetting."></a> <figcaption>Comparing internal Application Load Balancer without and with backend subsetting (click to enlarge).</figcaption> </figure> <p>You can additionally refine the load balancing traffic to the backends by setting the <code translate="no" dir="ltr">localityLbPolicy</code> policy. For more information, see <a href="/load-balancing/docs/l7-internal/traffic-management#traffic_policies">Traffic policies</a>.</p> <p>To read about setting up backend subsetting for internal Application Load Balancers, see <a href="/load-balancing/docs/l7-internal/setting-up-l7-internal#config_lbsubsetting">Configure backend subsetting</a>.</p> <h5 id="https-subsetting-caveats" data-text="Caveats related to backend subsetting for internal Application Load Balancer" tabindex="-1">Caveats related to backend subsetting for internal Application Load Balancer</h5> <ul> <li>Although backend subsetting is designed to ensure that all backend instances remain well utilized, it can introduce some bias in the amount of traffic that each backend receives. Setting the <code translate="no" dir="ltr">localityLbPolicy</code> to <code translate="no" dir="ltr">LEAST_REQUEST</code> is recommended for backend services that are sensitive to the balance of backend load.</li> <li>Enabling or disabling subsetting breaks existing connections.</li> <li>Backend subsetting requires that the session affinity is <code translate="no" dir="ltr">NONE</code> (a 5-tuple hash). Other session affinity options can only be used if backend subsetting is disabled. The default values of the <code translate="no" dir="ltr">--subsetting-policy</code> and <code translate="no" dir="ltr">--session-affinity</code> flags are both <code translate="no" dir="ltr">NONE</code>, and only one of them at a time can be set to a different value.</li> </ul> <h4 id="tcp-subsetting" data-text="Backend subsetting for internal passthrough Network Load Balancer" tabindex="-1">Backend subsetting for internal passthrough Network Load Balancer</h4> <p>Backend subsetting for internal passthrough Network Load Balancers lets you scale your internal passthrough Network Load Balancer to support a larger number of backend VM instances per internal backend service.</p> <p>For information about how subsetting affects this limit, see the <a href="/load-balancing/docs/quotas#backend_services">&quot;Backend services&quot; section of Load balancing resource quotas and limits</a>.</p> <p>By default, subsetting is disabled, which limits the backend service to distributing to up to 250 backend instances or endpoints. If your backend service needs to support more than 250 backends, you can enable subsetting. When subsetting is enabled, a subset of backend instances is selected for each client connection.</p> <p>The following diagram shows a scaled-down model of the difference between these two modes of operation.</p> <figure style="text-align: center"> <a href="/static/load-balancing/images/subsetting.svg"> <img src="/static/load-balancing/images/subsetting.svg" border="0" Alt="Comparing an internal passthrough Network Load Balancer without and with subsetting."></a> <figcaption>Comparing an internal passthrough Network Load Balancer without and with subsetting (click to enlarge).</figcaption> </figure> <p>Without subsetting, the complete set of healthy backends is better utilized, and new client connections are distributed among all healthy backends according to <a href="#traffic_distribution">traffic distribution</a>. Subsetting imposes load balancing restrictions but allows the load balancer to support more than 250 backends.</p> <p>For configuration instructions, see <a href="/load-balancing/docs/internal/setting-up-internal#subsetting">Subsetting</a>.</p> <h5 id="tcp-subsetting-caveats" data-text="Caveats related to backend subsetting for internal passthrough Network Load Balancer" tabindex="-1">Caveats related to backend subsetting for internal passthrough Network Load Balancer</h5> <ul> <li>When subsetting is enabled, not all backends will receive traffic from a given sender even when the number of backends is small.</li> <li>For the maximum number of backend instances when subsetting is enabled, see <a href="/load-balancing/docs/quotas#backend_services">the quotas page</a> .</li> <li>Only 5-tuple <a href="/load-balancing/docs/internal#session_affinity">session affinity</a> is supported with subsetting.</li> <li>Packet Mirroring is not supported with subsetting.</li> <li>Enabling or disabling subsetting breaks existing connections.</li> <li>If on-premises clients need for to access an internal passthrough Network Load Balancer, subsetting can substantially reduce the number of backends that receive connections from your on-premises clients. This is because the region of the Cloud VPN tunnel or Cloud Interconnect VLAN attachment determines the subset of the load balancer&#39;s backends. All Cloud VPN and Cloud Interconnect endpoints in a specific region use the same subset. Different subsets are used in different regions.</li> </ul> <h4 id="subsetting-pricing" data-text="Backend subsetting pricing" tabindex="-1">Backend subsetting pricing</h4> <p>There is no charge for using backend subsetting. For more information, see <a href="/vpc/network-pricing#lb">All networking pricing</a>.</p> <h2 id="session_affinity" data-text="Session affinity" tabindex="-1">Session affinity</h2> <p><em>Session affinity</em> lets you control how the load balancer selects backends for new connections in a predictable way as long as the number of healthy backends remains constant. This is useful for applications that need multiple requests from a given user to be directed to the same backend or endpoint. Such applications usually include stateful servers used by ads serving, games, or services with heavy internal caching.</p> <p>Google Cloud load balancers provide session affinity on a best-effort basis. Factors such as changing backend health check states, adding or removing backends, changes in backend weights (including enabling or disabling weighted balancing), or changes to backend fullness, as measured by the balancing mode, can break session affinity.</p> <p>Load balancing with session affinity works well when there is a <em>reasonably large</em> distribution of unique connections. Reasonably large means at least several times the number of backends. Testing a load balancer with a small number of connections won&#39;t result in an accurate representation of the distribution of client connections among backends.</p> <p>By default, all Google Cloud load balancers select backends by using a five-tuple hash (<code translate="no" dir="ltr">--session-affinity=NONE</code>), as follows:</p> <ul> <li>Packet&#39;s source IP address</li> <li>Packet&#39;s source port (if present in the packet&#39;s header)</li> <li>Packet&#39;s destination IP address</li> <li>Packet&#39;s destination port (if present in the packet&#39;s header)</li> <li>Packet&#39;s protocol</li> </ul> <p><strong>For pass-through load balancers</strong>, new connections are distributed to healthy backend instances or endpoints (in the active pool, if a failover policy is configured). You can control the following:</p> <ul> <li>Whether established connections persist on unhealthy backends. For details, see <a href="/load-balancing/docs/internal#connection-persistence">Connection persistence on unhealthy backends in the internal passthrough Network Load Balancer documentation</a> and <a href="/load-balancing/docs/network/networklb-backend-service#connection-persistence">Connection persistence on unhealthy backends in the backend service-based external external passthrough Network Load Balancer documentation</a>.</li> <li>Whether established connections persist during failover and failback, if a failover policy is configured. For details, see <a href="/load-balancing/docs/internal/failover-overview#connection_draining">Connection draining on failover and failback in the internal passthrough Network Load Balancer documentation</a> and <a href="/load-balancing/docs/network/networklb-failover-overview#connection_draining">Connection draining on failover and failback in the backend service-based external external passthrough Network Load Balancer documentation</a>.</li> <li>How long established connections can persist when removing a backend from the load balancer. For details, see <a href="/load-balancing/docs/enabling-connection-draining">Enabling connection draining</a>.</li> </ul> <p><strong>For proxy-based load balancers</strong>, as long as the number of healthy backend instances or endpoints remains constant, and as long as the previously selected backend instance or endpoint is not at capacity, subsequent requests or connections go to the same backend VM or endpoint. The <a href="#balancing-mode">target capacity of the balancing mode</a> determines when the backend is at capacity.</p> <p>The following table shows the session affinity options supported for each product:</p> <table id="bs-session-affinity"> <caption><b>Table:</b> Supported session affinity settings</caption> <tr> <th width="30%">Product</th> <th width="70%">Session affinity options</th> </tr> <tr> <td> <ul> <li><a href="/load-balancing/docs/https">Global external Application Load Balancer</a></li> <li><a href="/load-balancing/docs/https">Regional external Application Load Balancer</a></li> </ul> </td> <td> <ul> <li>None (<code translate="no" dir="ltr">NONE</code>)</li> <li>Client IP (<code translate="no" dir="ltr">CLIENT_IP</code>)</li> <li>Generated cookie (<code translate="no" dir="ltr">GENERATED_COOKIE</code>)</li> <li>Header field (<code translate="no" dir="ltr">HEADER_FIELD</code>)</li> <li>HTTP cookie (<code translate="no" dir="ltr">HTTP_COOKIE</code>)</li> <li>Stateful cookie-based affinity (<code translate="no" dir="ltr">STRONG_COOKIE_AFFINITY</code>)</li> </ul> <p>Also note:</p> <ul> <li> The effective default value of the load balancing locality policy (<code translate="no" dir="ltr">localityLbPolicy</code>) changes according to your session affinity settings. If session affinity is not configured&mdash;that is, if session affinity remains at the default value of <code translate="no" dir="ltr">NONE</code>&mdash;then the default value for <code translate="no" dir="ltr">localityLbPolicy</code> is <code translate="no" dir="ltr">ROUND_ROBIN</code>. If session affinity is set to a value other than <code translate="no" dir="ltr">NONE</code>, then the default value for <code translate="no" dir="ltr">localityLbPolicy</code> is <code translate="no" dir="ltr">MAGLEV</code>. </li> <li>For the global external Application Load Balancer, don't configure session affinity if you're using weighted traffic splitting. If you do, the weighted traffic splitting configuration takes precedence.</li> </ul> </td> </tr> <tr> <td><a href="/load-balancing/docs/https">Classic Application Load Balancer</a></td> <td> <ul> <li>None (<code translate="no" dir="ltr">NONE</code>)</li> <li>Client IP (<code translate="no" dir="ltr">CLIENT_IP</code>)</li> <li>Generated cookie (<code translate="no" dir="ltr">GENERATED_COOKIE</code>)</li> </ul> </td> </tr> <tr> <td><ul> <li><a href="/load-balancing/docs/l7-internal">Cross-region internal Application Load Balancer</a></li> <li><a href="/load-balancing/docs/l7-internal">Regional internal Application Load Balancer</a></li> </ul></td> <td> <ul> <li>None (<code translate="no" dir="ltr">NONE</code>)</li> <li>Client IP (<code translate="no" dir="ltr">CLIENT_IP</code>)</li> <li>Generated cookie (<code translate="no" dir="ltr">GENERATED_COOKIE</code>)</li> <li>Header field (<code translate="no" dir="ltr">HEADER_FIELD</code>)</li> <li>HTTP cookie (<code translate="no" dir="ltr">HTTP_COOKIE</code>)</li> <li>Stateful cookie-based affinity (<code translate="no" dir="ltr">STRONG_COOKIE_AFFINITY</code>)</li> </ul> <p>Also note:</p> <ul> <li> The effective default value of the load balancing locality policy (<code translate="no" dir="ltr">localityLbPolicy</code>) changes according to your session affinity settings. If session affinity is not configured&mdash;that is, if session affinity remains at the default value of <code translate="no" dir="ltr">NONE</code>&mdash;then the default value for <code translate="no" dir="ltr">localityLbPolicy</code> is <code translate="no" dir="ltr">ROUND_ROBIN</code>. If session affinity is set to a value other than <code translate="no" dir="ltr">NONE</code>, then the default value for <code translate="no" dir="ltr">localityLbPolicy</code> is <code translate="no" dir="ltr">MAGLEV</code>. </li> <li>For the internal Application Load Balancer, don't configure session affinity if you're using weighted traffic splitting. If you do, the weighted traffic splitting configuration takes precedence.</li> </ul> </td> </tr> <tr> <td><a href="/load-balancing/docs/internal">Internal passthrough Network Load Balancer</a></td> <td> <ul> <li>None (<code translate="no" dir="ltr">NONE</code>)</li> <li>CLIENT IP, no destination (<code translate="no" dir="ltr">CLIENT_IP_NO_DESTINATION</code>)</li> <li>Client IP, Destination IP (<code translate="no" dir="ltr">CLIENT_IP</code>)</li> <li>Client IP, Destination IP, Protocol (<code translate="no" dir="ltr">CLIENT_IP_PROTO</code>)</li> <li>Client IP, Client Port, Destination IP, Destination Port, Protocol (<code translate="no" dir="ltr">CLIENT_IP_PORT_PROTO</code>)</li> </ul> <p>For specific information about the internal passthrough Network Load Balancer and session affinity, see the <a href="/load-balancing/docs/internal#traffic_distribution">Internal passthrough Network Load Balancer overview</a>.</p> </td> </tr> <tr> <td><a href="/load-balancing/docs/network">External passthrough Network Load Balancer</a><sup>*</sup></td> <td> <ul> <li>None (<code translate="no" dir="ltr">NONE</code>)</li> <li>Client IP, Destination IP (<code translate="no" dir="ltr">CLIENT_IP</code>)</li> <li>Client IP, Destination IP, Protocol (<code translate="no" dir="ltr">CLIENT_IP_PROTO</code>)</li> <li>Client IP, Client Port, Destination IP, Destination Port, Protocol (<code translate="no" dir="ltr">CLIENT_IP_PORT_PROTO</code>)</li> </ul> <p>For specific information about the external passthrough Network Load Balancer and session affinity, see the <a href="/load-balancing/docs/network/networklb-backend-service">External TCP/UDP External passthrough Network Load Balancer overview</a>.</p> </td> </tr> <tr> <td><ul> <li>Global external proxy Network Load Balancer</li> <li>Classic proxy Network Load Balancer</li> <li>Regional external proxy Network Load Balancer</li> <li>Regional internal proxy Network Load Balancer</li> <li>Cross-region internal proxy Network Load Balancer</li> </ul> </td> <td> <ul> <li>None (<code translate="no" dir="ltr">NONE</code>)</li> <li>Client IP (<code translate="no" dir="ltr">CLIENT_IP</code>)</li> </ul> </td> </tr> <tr> <td><a href="/traffic-director/docs">Cloud Service Mesh</a></td> <td> <ul> <li>None (<code translate="no" dir="ltr">NONE</code>)</li> <li>Client IP (<code translate="no" dir="ltr">CLIENT_IP</code>)</li> <li>Generated cookie (<code translate="no" dir="ltr">GENERATED_COOKIE</code>) (HTTP protocols only)</li> <li>Header field (<code translate="no" dir="ltr">HEADER_FIELD</code>) (HTTP protocols only)</li> <li>HTTP cookie (<code translate="no" dir="ltr">HTTP_COOKIE</code>) (HTTP protocols only)</li> </ul> </td> </tr> </table> <p><sup>*</sup> This table documents session affinities supported by <a href="/load-balancing/docs/network/networklb-backend-service">backend service-based external passthrough Network Load Balancers</a>. <a href="/load-balancing/docs/network/networklb-target-pools">Target pool-based external passthrough Network Load Balancers</a> don&#39;t use backend services. Instead, you set session affinity for external passthrough Network Load Balancers through the <code translate="no" dir="ltr">sessionAffinity</code> parameter in <a href="/load-balancing/docs/target-pools#sessionaffinity">Target Pools</a>.</p> <p>Keep the following in mind when configuring session affinity:</p> <ul> <li><p>Don&#39;t rely on session affinity for authentication or security purposes. Session affinity, except for <a href="#stateful-session-affinity">stateful cookie-based session affinity</a>, is designed to break whenever the number of serving and healthy backends changes. For more details, see <a href="#losing_session_affinity">Losing session affinity</a>.</p></li> <li><p>The default values of the <code translate="no" dir="ltr">--session-affinity</code> and <code translate="no" dir="ltr">--subsetting-policy</code> flags are both <code translate="no" dir="ltr">NONE</code>, and only one of them at a time can be set to a different value.</p></li> </ul> <h3 id="types_of_session_affinity" data-text="Types of session affinity" tabindex="-1">Types of session affinity</h3> <p>The following sections discuss the different types of session affinity:</p> <h4 id="client-ip-no-destination-affinity" data-text="Client IP, no destination affinity" tabindex="-1">Client IP, no destination affinity</h4> <p><em>Client IP, no destination</em> session affinity (<code translate="no" dir="ltr">CLIENT_IP_NO_DESTINATION</code>) is a one-tuple hash based on just the source IP address of each received packet. This session affinity is only available for internal passthrough Network Load Balancers.</p> <p>This option can be useful in situations where you need the same backend VM to process all packets from a client, based solely on the source IP address of the packet, without respect to the packet destination IP address. These situations usually arise when an internal passthrough Network Load Balancer is a next hop for a static route. For details, see <a href="/load-balancing/docs/internal#session_affinity_and_nh_ilb">Session affinity and next hop internal passthrough Network Load Balancers</a>.</p> <h4 id="client_ip_affinity" data-text="Client IP affinity" tabindex="-1">Client IP affinity</h4> <p><em>Client IP</em> session affinity (<code translate="no" dir="ltr">CLIENT_IP</code>) is a two-tuple hash created from the source and destination IP addresses of the packet. Client IP session affinity is available for all Google Cloud load balancers that use backend services. External passthrough Network Load Balancers call this session affinity option <em>Client IP, Destination IP</em>.</p> <p>When you use client IP affinity, keep the following in mind:</p> <ul> <li><p>The packet destination IP address is only the same as the load balancer forwarding rule&#39;s IP address if the packet is sent directly to the load balancer.</p></li> <li><p>Packets that are routed to a next hop internal passthrough Network Load Balancer by a static route have destination IP addresses that don&#39;t match the load balancer forwarding rule&#39;s IP address. For important details, see <a href="/load-balancing/docs/internal#session_affinity_and_nh_ilb">Session affinity and next hop internal passthrough Network Load Balancers</a>.</p></li> <li><p>The packet source IP address might not match an IP address associated with the original client if the packet is processed by an intermediate NAT or proxy system before being delivered to a Google Cloud load balancer. In situations where many clients share the same effective source IP address, some backend VMs might receive more connections or requests than others.</p></li> </ul> <h4 id="generated_cookie_affinity" data-text="Generated cookie affinity" tabindex="-1">Generated cookie affinity</h4> <p>When you use generated cookie-based affinity, the load balancer includes an HTTP cookie in the <code translate="no" dir="ltr">Set-Cookie</code> header in response to the initial HTTP request.</p> <p>The name of the generated cookie varies depending on the type of the load balancer. The following products support generated cookies:</p> <table> <tr> <th>Product</th> <th>Cookie name</th> </tr> <tr> <td>Global external Application Load Balancers</td> <td><code translate="no" dir="ltr">GCLB</code></td> </tr> <tr> <td>Classic Application Load Balancers</td> <td><code translate="no" dir="ltr">GCLB</code></td> </tr> <tr> <td>Regional external Application Load Balancers</td> <td><code translate="no" dir="ltr">GCILB</code></td> </tr> <tr> <td>Cross-region internal Application Load Balancers</td> <td><code translate="no" dir="ltr">GCILB</code></td> </tr> <tr> <td>Regional internal Application Load Balancers</td> <td><code translate="no" dir="ltr">GCILB</code></td> </tr> <tr> <td>Cloud Service Mesh</td> <td><code translate="no" dir="ltr">GCILB</code></td> </tr> </table> <p>The generated cookie&#39;s path attribute is always a forward slash (<code translate="no" dir="ltr">/</code>), so it applies to all backend services on the same URL map, provided that the other backend services also use generated cookie affinity.</p> <p>You can configure the cookie&#39;s time to live (TTL) value between <code translate="no" dir="ltr">0</code> and <code translate="no" dir="ltr">1,209,600</code> seconds (inclusive) by using the <code translate="no" dir="ltr">affinityCookieTtlSec</code> backend service parameter. If <code translate="no" dir="ltr">affinityCookieTtlSec</code> isn&#39;t specified, the default TTL value is <code translate="no" dir="ltr">0</code>.</p> <p>When the client includes the generated session affinity cookie in the <code translate="no" dir="ltr">Cookie</code> request header of HTTP requests, the load balancer directs those requests to the same backend instance or endpoint, as long as the session affinity cookie remains valid. This is done by mapping the cookie value to an index that references a specific backend instance or an endpoint, and by making sure that the generated cookie session affinity requirements are met.</p> <p>To use generated cookie affinity, configure the following balancing mode and <code translate="no" dir="ltr">localityLbPolicy</code> settings:</p> <ul> <li>For backend instance groups, use the <code translate="no" dir="ltr">RATE</code> balancing mode.</li> <li>For the <code translate="no" dir="ltr">localityLbPolicy</code> of the backend service, use either <code translate="no" dir="ltr">RING_HASH</code> or <code translate="no" dir="ltr">MAGLEV</code>. If you don&#39;t explicitly set the <code translate="no" dir="ltr">localityLbPolicy</code>, the load balancer uses <code translate="no" dir="ltr">MAGLEV</code> as an implied default.</li> </ul> <p>For more information, see <a href="#losing_session_affinity">losing session affinity</a>.</p> <h4 id="header_field_affinity" data-text="Header field affinity" tabindex="-1">Header field affinity</h4> <p>With header field affinity, requests are routed to the backends based on the value of the HTTP header in the <a href="/compute/docs/reference/rest/v1/backendServices#BackendService.FIELDS.inlinedField_60"><code translate="no" dir="ltr">consistentHash.httpHeaderName</code> field</a> of the backend service. To distribute requests across all available backends, each client needs to use a different HTTP header value.</p> <p>The following load balancers use header field affinity:</p> <ul> <li>Cloud Service Mesh</li> <li>Cross-region internal Application Load Balancer</li> <li>Global external Application Load Balancer</li> <li>Regional external Application Load Balancer</li> <li>Regional internal Application Load Balancer</li> </ul> <p>Header field affinity is supported when the following conditions are true:</p> <ul> <li>The load balancing locality policy is RING_HASH or MAGLEV.</li> <li>The backend service&#39;s <code translate="no" dir="ltr">consistentHash</code> specifies the name of the HTTP header (<code translate="no" dir="ltr">httpHeaderName</code>).</li> </ul> <p>To learn which products support header field affinity, refer the <a href="#bs-session-affinity">Table: Supported session affinity settings</a>.</p> <h4 id="http_cookie_affinity" data-text="HTTP cookie affinity" tabindex="-1">HTTP cookie affinity</h4> <p>When you use HTTP cookie-based affinity, the load balancer includes an HTTP cookie in the <code translate="no" dir="ltr">Set-Cookie</code> header in response to the initial HTTP request. You specify the name, path, and time to live (TTL) for the cookie.</p> <p>The following products support HTTP cookie-based affinity:</p> <ul> <li>All Application Load Balancers</li> <li>Cloud Service Mesh</li> </ul> <p>You can configure the cookie&#39;s TTL values using seconds, fractions of a second (as nanoseconds), or both seconds plus fractions of a second (as nanoseconds) using the following backend service parameters and valid values:</p> <ul> <li><code translate="no" dir="ltr">consistentHash.httpCookie.ttl.seconds</code> can be set to a value between <code translate="no" dir="ltr">0</code> and <code translate="no" dir="ltr">315576000000</code> (inclusive).</li> <li><code translate="no" dir="ltr">consistentHash.httpCookie.ttl.nanos</code> can be set to a value between <code translate="no" dir="ltr">0</code> and <code translate="no" dir="ltr">999999999</code> (inclusive). Because the units are nanoseconds, <code translate="no" dir="ltr">999999999</code> means <code translate="no" dir="ltr">.999999999</code> seconds.</li> </ul> <p>If both <code translate="no" dir="ltr">consistentHash.httpCookie.ttl.seconds</code> and <code translate="no" dir="ltr">consistentHash.httpCookie.ttl.nanos</code> aren&#39;t specified, the value of the <code translate="no" dir="ltr">affinityCookieTtlSec</code> backend service parameter is used instead. If <code translate="no" dir="ltr">affinityCookieTtlSec</code> isn&#39;t specified, the default TTL value is <code translate="no" dir="ltr">0</code>.</p> <p>When the client includes the HTTP session affinity cookie in the <code translate="no" dir="ltr">Cookie</code> request header of HTTP requests, the load balancer directs those requests to the same backend instance or endpoint, as long as the session affinity cookie remains valid. This is done by mapping the cookie value to an index that references a specific backend instance or an endpoint, and by making sure that the generated cookie session affinity requirements are met.</p> <p>To use HTTP cookie affinity, configure the following balancing mode and <code translate="no" dir="ltr">localityLbPolicy</code> settings:</p> <ul> <li>For backend instance groups, use the <code translate="no" dir="ltr">RATE</code> balancing mode.</li> <li>For the <code translate="no" dir="ltr">localityLbPolicy</code> of the backend service, use either <code translate="no" dir="ltr">RING_HASH</code> or <code translate="no" dir="ltr">MAGLEV</code>. If you don&#39;t explicitly set the <code translate="no" dir="ltr">localityLbPolicy</code>, the load balancer uses <code translate="no" dir="ltr">MAGLEV</code> as an implied default.</li> </ul> <p>For more information, see <a href="#losing_session_affinity">losing session affinity</a>.</p> <h4 id="stateful-session-affinity" data-text="Stateful cookie-based session affinity" tabindex="-1">Stateful cookie-based session affinity</h4> <p>When you use stateful cookie-based affinity, the load balancer includes an HTTP cookie in the <code translate="no" dir="ltr">Set-Cookie</code> header in response to the initial HTTP request. You specify the name, path, and time to live (TTL) for the cookie.</p> <p>All Application Load Balancers, except for classic Application Load Balancers, support stateful cookie-based affinity.</p> <p>You can configure the cookie&#39;s TTL values using seconds, fractions of a second (as nanoseconds), or both seconds plus fractions of a second (as nanoseconds). The duration represented by <code translate="no" dir="ltr">strongSessionAffinityCookie.ttl</code> cannot be set to a value representing more than two weeks (1,209,600 seconds).</p> <p>The value of the cookie identifies a selected backend instance or endpoint by encoding the selected instance or endpoint in the value itself. For as long as the cookie is valid, if the client includes the session affinity cookie in the <code translate="no" dir="ltr">Cookie</code> request header of subsequent HTTP requests, the load balancer directs those requests to selected backend instance or endpoint.</p> <p>Unlike other session affinity methods:</p> <ul> <li><p>Stateful cookie-based affinity has no specific requirements for the balancing mode or for the load balancing locality policy (<code translate="no" dir="ltr">localityLbPolicy</code>).</p></li> <li><p>Stateful cookie-based affinity is not affected when autoscaling adds a new instance to a managed instance group.</p></li> <li><p>Stateful cookie-based affinity is not affected when autoscaling removes an instance from a managed instance group <em>unless</em> the selected instance is removed.</p></li> <li><p>Stateful cookie-based affinity is not affected when autohealing removes an instance from a managed instance group <em>unless</em> the selected instance is removed.</p></li> </ul> <p>For more information, see <a href="#losing_session_affinity">losing session affinity</a>.</p> <h3 id="zero-ttl" data-text="Meaning of zero TTL for cookie-based affinities" tabindex="-1">Meaning of zero TTL for cookie-based affinities</h3> <p>All cookie-based session affinities, such as generated cookie affinity, HTTP cookie affinity, and stateful cookie-based affinity, have a TTL attribute.</p> <p>A TTL of zero seconds means the load balancer does not assign an <code translate="no" dir="ltr">Expires</code> attribute to the cookie. In this case, the client treats the cookie as a session cookie. The definition of a <i>session</i> varies depending on the client:</p> <ul> <li><p>Some clients, like web browsers, retain the cookie for the entire browsing session. This means that the cookie persists across multiple requests until the application is closed.</p></li> <li><p>Other clients treat a session as a single HTTP request, discarding the cookie immediately after.</p></li> </ul> <h3 id="losing_session_affinity" data-text="Losing session affinity" tabindex="-1">Losing session affinity</h3> <p>All session affinity options for Application Load Balancers and Proxy Network Load Balancers require the following:</p> <ul> <li><p>The selected backend instance or endpoint must remain configured as a backend. Session affinity can break when one of the following events occurs:</p> <ul> <li><p>You remove the selected instance from its instance group.</p></li> <li><p>Managed instance group autoscaling or autohealing removes the selected instance from its managed instance group.</p></li> <li><p>You remove the selected endpoint from its NEG.</p></li> <li><p>You remove the instance group or NEG that contains the selected instance or endpoint from the backend service.</p></li> </ul></li> <li><p>The selected backend instance or endpoint must remain healthy. Session affinity can break when the selected instance or endpoint fails health checks.</p></li> <li><p>For Global external Application Load Balancers, Classic Application Load Balancers, Global external proxy Network Load Balancers, and Classic proxy Network Load Balancers, session affinity can break if a different first-layer Google Front End (GFE) is used for subsequent requests or connections after the change in routing path. A different first-layer GFE might be selected if the routing path from a client on the internet to Google changes between requests or connections.</p></li> </ul> <p>Except for <a href="#stateful-session-affinity">stateful cookie-based session affinity</a>, all session affinity options for Application Load Balancers and Proxy Network Load Balancers have the following additional requirements:</p> <ul> <li><p>The instance group or NEG that contains the selected instance or endpoint must not be full as defined by its <a href="#balancing-mode">target capacity</a>. (For regional managed instance groups, the zonal component of the instance group that contains the selected instance must not be full.) Session affinity can break when the instance group or NEG is full and other instance groups or NEGs are not. Because fullness can change in unpredictable ways when using the <code translate="no" dir="ltr">UTILIZATION</code> balancing mode, you should use the <code translate="no" dir="ltr">RATE</code> or <code translate="no" dir="ltr">CONNECTION</code> balancing mode to minimize situations when session affinity can break.</p></li> <li><p>The <em>total number</em> of configured backend instances or endpoints must remain constant. When at least one of the following events occurs, the number of configured backend instances or endpoints changes, and session affinity can break:</p> <ul> <li><p>Adding new instances or endpoints:</p> <ul> <li>You add instances to an existing instance group on the backend service.</li> <li>Managed instance group autoscaling adds instances to a managed instance group on the backend service.</li> <li>You add endpoints to an existing NEG on the backend service.</li> <li>You add non-empty instance groups or NEGs to the backend service.</li> </ul></li> <li><p>Removing any instance or endpoint, <em>not just the selected instance or endpoint</em>:</p> <ul> <li>You remove any instance from an instance group backend.</li> <li>Managed instance group autoscaling or autohealing removes any instance from a managed instance group backend.</li> <li>You remove any endpoint from a NEG backend.</li> <li>You remove any existing, non-empty backend instance group or NEG from the backend service.</li> </ul></li> </ul></li> <li><p>The <em>total number</em> of healthy backend instances or endpoints must remain constant. When at least one of the following events occurs, the number of healthy backend instances or endpoints changes, and session affinity can break:</p> <ul> <li>Any instance or endpoint passes its health check, transitioning from unhealthy to healthy.</li> <li>Any instance or endpoint fails its health check, transitioning from healthy to unhealthy or timeout.</li> </ul></li> </ul> <h2 id="timeout-setting" data-text="Backend service timeout" tabindex="-1">Backend service timeout</h2> <p>Most Google Cloud load balancers have a <em>backend service timeout</em>. The default value is 30 seconds. The full range of timeout values allowed is 1 - 2,147,483,647 seconds.</p> <ul> <li><p><strong>For external Application Load Balancers and internal Application Load Balancers</strong> using the HTTP, HTTPS, or HTTP/2 protocol, the backend service timeout is a request and response timeout for HTTP(S) traffic.</p> <p>For more details about the backend service timeout for each load balancer, see the following:</p> <ul> <li>For global external Application Load Balancers and regional external Application Load Balancers, see <a href="/load-balancing/docs/https#timeouts_and_retries">Timeouts and retries</a>.</li> <li>For internal Application Load Balancers, see <a href="/load-balancing/docs/l7-internal#timeouts_and_retries">Timeouts and retries</a>.</li> </ul></li> <li><p><strong>For external proxy Network Load Balancers,</strong> the timeout is an idle timeout. To allow more or less time before the connection is deleted, change the timeout value. This idle timeout is also used for WebSocket connections.</p></li> <li><p><strong>For internal passthrough Network Load Balancers and external passthrough Network Load Balancers,</strong> you can set the value of the backend service timeout using <code translate="no" dir="ltr">gcloud</code> or the API, but the value is ignored. Backend service timeout has no meaning for these pass-through load balancers.</p></li> </ul> <ul> <li><strong>For Cloud Service Mesh</strong>, the backend service timeout field (specified using <code translate="no" dir="ltr">timeoutSec</code>) is not supported with proxyless gRPC services. For such services, configure the backend service timeout using the <code translate="no" dir="ltr">maxStreamDuration</code> field. This is because gRPC does not support the semantics of <code translate="no" dir="ltr">timeoutSec</code> that specifies the amount of time to wait for a backend to return a full response after the request is sent. gRPC&#39;s timeout specifies the amount of time to wait from the beginning of the stream until the response has been completely processed, including all retries.</li> </ul> <h2 id="health-checks" data-text="Health checks" tabindex="-1">Health checks</h2> <p>Each backend service whose backends are instance groups or zonal NEGs must have an associated <a href="/load-balancing/docs/health-checks">health check</a>. Backend services using a serverless NEG or a global internet NEG as a backend must <em>not</em> reference a health check.</p> <p>When you create a load balancer using the Google Cloud console, you can create the health check, if it is required, when you create the load balancer, or you can reference an existing health check.</p> <p>When you create a backend service using either instance group or zonal NEG backends using the Google Cloud CLI or the API, you must reference an existing health check. Refer to the <a href="/load-balancing/docs/health-check-concepts#lb_guide">load balancer guide</a> in the <em>Health Checks Overview</em> for details about the type and scope of health check required.</p> <p>For more information, read the following documents:</p> <ul> <li><a href="/load-balancing/docs/health-check-concepts">Health checks overview</a></li> <li><a href="/load-balancing/docs/health-checks">Creating health checks</a></li> <li><a href="/sdk/gcloud/reference/compute/health-checks"><code translate="no" dir="ltr">gcloud</code> health check page</a></li> <li><a href="/compute/docs/reference/rest/v1/healthChecks">REST API health check page</a></li> </ul> <h2 id="additional_features_enabled_on_the_backend_service_resource" data-text="Additional features enabled on the backend service resource" tabindex="-1">Additional features enabled on the backend service resource</h2> <p>The following optional features are supported by some backend services.</p> <h3 id="cdn-support" data-text="Cloud CDN" tabindex="-1">Cloud CDN</h3> <p>Cloud CDN uses Google&#39;s global edge network to serve content closer to users, which accelerates your websites and applications. Cloud CDN is enabled on backend services used by <a href="/load-balancing/docs/https">global external Application Load Balancers</a>. The load balancer provides the frontend IP addresses and ports that receive requests, and the backends that respond to the requests.</p> <p>For more details, see the <a href="/cdn/docs/overview">Cloud CDN documentation</a>.</p> <p>Cloud CDN is incompatible with IAP. They can&#39;t be enabled on the same backend service.</p> <h3 id="armor-support" data-text="Google Cloud Armor" tabindex="-1">Google Cloud Armor</h3> <p>If you use one of the following load balancers, you can add additional protection to your applications by enabling Google Cloud Armor on the backend service during load balancer creation:</p> <ul> <li><a href="/load-balancing/docs/https">Global external Application Load Balancer</a></li> <li><a href="/load-balancing/docs/https">Classic Application Load Balancer</a></li> <li><a href="/load-balancing/docs/tcp">Global external proxy Network Load Balancer</a></li> <li><a href="/load-balancing/docs/tcp">Classic proxy Network Load Balancer</a></li> </ul> <p>If you use the Google Cloud console, you can do one of the following:</p> <ul> <li>Select an existing <a href="/armor/docs/security-policy-overview#policy-types">Google Cloud Armor security policy</a>.</li> <li>Accept the configuration of a default Google Cloud Armor rate-limiting security policy with a customizable name, request count, interval, key, and rate limiting parameters. If you use Google Cloud Armor with an upstream proxy service, such as a CDN provider, <code translate="no" dir="ltr">Enforce_on_key</code> should be set as an XFF IP address.</li> <li>Choose to opt out of Google Cloud Armor protection by selecting <strong>None</strong>. </li> </ul> <h3 id="iap-support" data-text="IAP" tabindex="-1">IAP</h3> <p><a href="/iap/docs/concepts-overview">IAP</a> lets you establish a central authorization layer for applications accessed by HTTPS, so you can use an application-level access control model instead of relying on network-level firewalls. IAP is supported by <a href="/load-balancing/docs/features#security">certain Application Load Balancers</a>.</p> <p>IAP is incompatible with Cloud CDN. They can&#39;t be enabled on the same backend service.</p> <h2 id="advanced_traffic_management_features" data-text="Advanced traffic management features" tabindex="-1">Advanced traffic management features</h2> <p>To learn about advanced traffic management features that are configured on the backend services and URL maps associated with load balancers, see the following:</p> <ul> <li><a href="/load-balancing/docs/l7-internal/traffic-management">Traffic management overview for internal Application Load Balancers</a></li> <li><a href="/load-balancing/docs/https/traffic-management-global">Traffic management overview for global external Application Load Balancers</a></li> <li><a href="/load-balancing/docs/https/traffic-management-regional">Traffic management overview for regional external Application Load Balancers</a></li> </ul> <h2 id="api_and_gcloud_reference" data-text="API and gcloud reference" tabindex="-1">API and <code translate="no" dir="ltr">gcloud</code> reference</h2> <p>For more information about the properties of the backend service resource, see the following references:</p> <ul> <li><a href="/compute/docs/reference/rest/v1/backendServices">Global backend service API</a> resource</li> </ul> <ul> <li><p><a href="/compute/docs/reference/rest/v1/regionBackendServices">Regional backend service API</a> resource</p></li> <li><p><a href="/sdk/gcloud/reference/compute/backend-services"><code translate="no" dir="ltr">gcloud compute backend-services</code> page, for both global and regional backend services</a></p></li> </ul> <h2 id="whats_next" data-text="What's next" tabindex="-1">What's next</h2> <p>For related documentation and information about how backend services are used in load balancing, review the following:</p> <ul> <li><a href="/load-balancing/docs/https/custom-headers">Create custom headers</a></li> <li><a href="/load-balancing/docs/https/setting-up-https">Create an external Application Load Balancer</a></li> <li><a href="/load-balancing/docs/https">External Application Load Balancer overview</a></li> <li><a href="/load-balancing/docs/enabling-connection-draining">Enable connection draining</a></li> <li><a href="/security/encryption-in-transit">Encryption in transit in Google Cloud</a></li> </ul> <p>For related videos:</p> <ul> <li><a href="https://www.youtube.com/watch?v=rknxoOyMRSY">How to configure backend services for global external Application Load Balancers</a></li> </ul> <devsite-hats-survey class="nocontent" hats-id="Nd7nTix2o0eU5NUYprb0ThtUc5jf" listnr-id="83405"></devsite-hats-survey> </div> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-feedback position="footer" project-name="Load Balancing" product-id="5173945" bucket="Documentation" context="" version="t-devsite-webserver-20250227-r00-rc00.467351038544441702" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="footer" class="nocontent" project-icon="https://www.gstatic.com/devrel-devsite/prod/vdcd49b48a0f6579e36a0f52b513a1840db67522fa48e80a57742b4388044a7e9/cloud/images/favicons/onecloud/super_cloud.png" > <button> Send feedback </button> </devsite-feedback> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-content-footer class="nocontent"> <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2025-03-03 UTC.</p> </devsite-content-footer> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-feedback"> <devsite-feedback position="thumb-rating" project-name="Load Balancing" product-id="5173945" bucket="Documentation" context="" version="t-devsite-webserver-20250227-r00-rc00.467351038544441702" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="thumb-rating" class="nocontent" project-icon="https://www.gstatic.com/devrel-devsite/prod/vdcd49b48a0f6579e36a0f52b513a1840db67522fa48e80a57742b4388044a7e9/cloud/images/favicons/onecloud/super_cloud.png" > <button> Need to tell us more? </button> </devsite-feedback> </template> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-03-03 UTC."],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Why Google</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/why-google-cloud/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-metadata-child_headline="why google"track-type="footer link"track-name="choosing google cloud"track-metadata-eventDetail="cloud.google.com/why-google-cloud/"track-metadata-position="footer"track-metadata-module="footer"> Choosing Google Cloud </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/trust-center/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-metadata-eventDetail="cloud.google.com/security/"track-type="footer link"track-metadata-child_headline="why google"track-name="trust and security"track-metadata-module="footer"track-metadata-position="footer"> Trust and security </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/modern-infrastructure/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-metadata-module="footer"track-metadata-position="footer"track-metadata-child_headline="why google"track-type="footer link"track-name="modern infrastructure cloud"track-metadata-eventDetail="cloud.google.com/solutions/modern-infrastructure/"> Modern Infrastructure Cloud </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/multicloud/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" track-name="multicloud"track-type="footer link"track-metadata-child_headline="why google"track-metadata-position="footer"track-metadata-eventDetail="cloud.google.com/multicloud/"track-metadata-module="footer"> Multicloud </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/infrastructure/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" track-metadata-module="footer"track-metadata-child_headline="why google"track-name="global infrastructure"track-type="footer link"track-metadata-position="footer"track-metadata-eventDetail="cloud.google.com/infrastructure/"> Global infrastructure </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/customers/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" track-metadata-child_headline="why google"track-type="footer link"track-name="customers and case studies"track-metadata-eventDetail="cloud.google.com/customers/"track-metadata-module="footer"track-metadata-position="footer"> Customers and case studies </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/analyst-reports/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" track-name="analyst reports"track-type="footer link"track-metadata-child_headline="why google"track-metadata-position="footer"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/analyst-reports/"> Analyst reports </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/whitepapers/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 8)" track-metadata-position="footer"track-metadata-child_headline="why google"track-type="footer link"track-metadata-eventDetail="cloud.google.com/whitepapers/"track-name="whitepapers"track-metadata-module="footer"> Whitepapers </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//cloud.google.com/blog/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 9)" track-metadata-eventDetail="cloud.google.com/blog/"track-name="blog"track-metadata-position="footer"track-metadata-child_headline="engage"track-type="footer link"track-metadata-module="footer"> Blog </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Products and pricing</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/pricing/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-metadata-position="footer"track-metadata-child_headline="products and pricing"track-metadata-module="footer"track-metadata-eventDetail="cloud.google.com/pricing/"track-type="footer link"track-name="google cloud pricing"> Google Cloud pricing </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//workspace.google.com/pricing.html" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-name="google workspace pricing"track-metadata-eventDetail="workspace.google.com/pricing.html"track-metadata-position="footer"target="_blank"track-type="footer link"track-metadata-module="footer"track-metadata-child_headline="products and pricing"> Google Workspace pricing </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/products/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-name="see all products"track-type="footer link"track-metadata-position="footer"track-metadata-eventDetail="cloud.google.com/products/"track-metadata-module="footer"track-metadata-child_headline="products and pricing"> See all products </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Solutions</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/solutions/infrastructure-modernization/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-metadata-module="footer"track-type="footer link"track-name="infrastructure modernization"track-metadata-position="footer"track-metadata-child_headline="solutions"track-metadata-eventDetail="cloud.google.com/solutions/infrastructure-modernization/"> Infrastructure modernization </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/databases/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-metadata-module="footer"track-type="footer link"track-metadata-child_headline="solutions"track-metadata-eventDetail="cloud.google.com/solutions/databases"track-metadata-position="footer"track-name="databases"> Databases </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/application-modernization/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-type="footer link"track-metadata-child_headline="solutions"track-metadata-eventDetail="cloud.google.com/solutions/application-modernization/"track-name="application development"track-metadata-module="footer"track-metadata-position="footer"> Application modernization </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/smart-analytics/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" track-metadata-eventDetail="cloud.google.com/solutions/smart-analytics/"track-metadata-module="footer"track-metadata-child_headline="solutions"track-name="smart analytics"track-type="footer link"track-metadata-position="footer"> Smart analytics </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/ai/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" track-type="footer link"track-metadata-module="footer"track-metadata-position="footer"track-metadata-child_headline="solutions"track-name="artificial intelligence"track-metadata-eventDetail="cloud.google.com/solutions/ai/"> Artificial Intelligence </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/security/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" track-name="security"track-metadata-position="footer"track-metadata-eventDetail="cloud.google.com/solutions/security/"track-metadata-child_headline="solutions"track-type="footer link"track-metadata-module="footer"> Security </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://workspace.google.com/enterprise/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" track-metadata-eventDetail="workspace.google.com/enterprise/"track-metadata-position="footer"track-name="productivity and work transformation"track-metadata-module="footer"track-type="footer link"track-metadata-child_headline="solutions"target="_blank"> Productivity & work transformation </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/#industry-solutions" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 8)" track-metadata-position="footer"track-name="industry solutions"track-type="footer link"track-metadata-eventDetail="cloud.google.com/solutions/#industry-solutions"track-metadata-child_headline="solutions"track-metadata-module="footer"> Industry solutions </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/devops/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 9)" track-metadata-module="footer"track-metadata-position="footer"track-metadata-child_headline="solutions"track-type="footer link"track-name="devops solutions"track-metadata-eventDetail="cloud.google.com/solutions/devops/"> DevOps solutions </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/#section-14" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 10)" track-type="footer link"track-metadata-position="footer"track-metadata-child_headline="solutions"track-metadata-eventDetail="cloud.google.com/solutions/#section-14"track-metadata-module="footer"track-name="small business solutions"> Small business solutions </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/solutions/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 11)" track-metadata-child_headline="solutions"track-metadata-eventDetail="cloud.google.com/solutions/"track-name="see all solutions"track-metadata-module="footer"track-type="footer link"track-metadata-position="footer"> See all solutions </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Resources</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/affiliate-program/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-name="google cloud affiliate program"track-metadata-module="footer"track-type="footer link"track-metadata-child_headline="resources"track-metadata-position="footer"track-metadata-eventDetail="cloud.google.com/affiliate-program/"> Google Cloud Affiliate Program </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/docs/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-name="google cloud documentation"track-metadata-eventDetail="cloud.google.com/docs/"track-metadata-module="footer"track-metadata-child_headline="resources"track-type="footer link"track-metadata-position="footer"> Google Cloud documentation </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/docs/get-started/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-metadata-child_headline="resources"track-name="google cloud quickstarts"track-metadata-eventDetail="cloud.google.com/docs/get-started/"track-metadata-module="footer"track-type="footer link"track-metadata-position="footer"> Google Cloud quickstarts </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/marketplace/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" track-metadata-module="footer"track-name="google cloud marketplace"track-metadata-child_headline="resources"track-metadata-eventDetail="cloud.google.com/marketplace/"track-type="footer link"track-metadata-position="footer"> Google Cloud Marketplace </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/discover/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" track-metadata-module="footer"track-metadata-position="footer"track-metadata-child_headline="resources"track-metadata-eventDetail="learn/"track-name="learn about cloud computing"track-type="footer link"> Learn about cloud computing </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/support-hub/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" track-metadata-module="footer"track-metadata-position="footer"track-name="support"track-metadata-child_headline="resources"track-type="footer link"track-metadata-eventDetail="cloud.google.com/support-hub/"> Support </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/docs/samples" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" track-metadata-child_headline="resources"track-type="footer link"track-metadata-eventDetail="cloud.google.com/docs/samples"track-metadata-module="footer"track-metadata-position="footer"track-name="code samples"> Code samples </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/architecture/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 8)" track-type="footer link"track-metadata-position="footer"track-metadata-module="footer"track-metadata-child_headline="resources"track-metadata-eventDetail="cloud.google.com/architecture/"track-name="cloud architecture center"> Cloud Architecture Center </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/learn/training/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 9)" track-metadata-child_headline="resources"track-metadata-eventDetail="cloud.google.com/training/"track-type="footer link"track-metadata-module="footer"track-name="training"track-metadata-position="footer"> Training </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/learn/certification/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 10)" track-metadata-child_headline="resources"track-metadata-position="footer"track-name="certifications"track-metadata-module="footer"track-type="footer link"track-metadata-eventDetail="cloud.google.com/certification"> Certifications </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//developers.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 11)" track-metadata-child_headline="resources"target="_blank"track-type="footer link"track-metadata-eventDetail="developers.google.com"track-metadata-module="footer"track-name="google developers"track-metadata-position="footer"> Google for Developers </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/startup/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 12)" track-type="footer link"track-name="google cloud for startups"track-metadata-eventDetail="cloud.google.com/startup/"track-metadata-module="footer"track-metadata-position="footer"track-metadata-child_headline="resources"> Google Cloud for Startups </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//status.cloud.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 13)" track-metadata-eventDetail="status.cloud.google.com"track-metadata-position="footer"track-metadata-module="footer"track-metadata-child_headline="resources"track-type="footer link"target="_blank"track-name="system status"> System status </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/release-notes" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 14)" track-name="release notes"track-type="footer link"track-metadata-module="footer"track-metadata-position="footer"track-metadata-child_headline="resources"track-metadata-eventDetail="cloud.google.com/release-notes/"> Release Notes </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Engage</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/contact/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-metadata-eventDetail="cloud.google.com/contact/"track-metadata-module="footer"track-metadata-position="footer"track-metadata-child_headline="engage"track-name="contact sales"track-type="footer link"> Contact sales </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//cloud.google.com/find-a-partner" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-metadata-position="footer"track-type="footer link"track-metadata-child_headline="engage"track-name="find a partner"target="_blank"track-metadata-eventDetail="cloud.google.com/find-a-partner"track-metadata-module="footer"> Find a Partner </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/partners/become-a-partner/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-metadata-position="footer"track-metadata-eventDetail="cloud.google.com/partners/become-a-partner/"track-metadata-module="footer"track-name="become a partner"track-metadata-child_headline="engage"track-type="footer link"> Become a Partner </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/events/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" track-metadata-eventDetail="cloud.withgoogle.com/events"track-metadata-child_headline="engage"track-metadata-module="footer"track-metadata-position="footer"track-name="events"track-type="footer link"> Events </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/podcasts/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" target="_blank"track-metadata-eventDetail="cloud.google.com/podcasts/"track-metadata-child_headline="engage"track-metadata-module="footer"track-type="footer link"track-metadata-position="footer"track-name="podcasts"rel="noopener"> Podcasts </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/developers/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" track-metadata-eventDetail="cloud.google.com/developers/"track-type="footer link"track-metadata-position="footer"track-metadata-module="footer"track-metadata-child_headline="engage"track-name="developer center"> Developer Center </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://www.googlecloudpresscorner.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" track-type="footer link"track-metadata-position="footer"track-metadata-eventDetail="www.googlecloudpresscorner.com"track-metadata-module="footer"target="_blank"track-name="press corner"track-metadata-child_headline="engage"rel="noopener"> Press Corner </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.youtube.com/googlecloud" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 8)" track-metadata-child_headline="engage"track-metadata-position="footer"track-metadata-eventDetail="www.youtube.com/googlecloud"rel="noopener"track-type="footer link"track-name="google cloud on youtube"target="_blank"track-metadata-module="footer"> Google Cloud on YouTube </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.youtube.com/googlecloudplatform" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 9)" track-metadata-child_headline="engage"track-type="footer link"track-name="google cloud tech on youtube"target="_blank"rel="noopener"track-metadata-module="footer"track-metadata-eventDetail="www.youtube.com/googlecloudplatform"track-metadata-position="footer"> Google Cloud Tech on YouTube </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//x.com/googlecloud" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 10)" track-metadata-child_headline="engage"rel="noopener"track-metadata-position="footer"track-metadata-module="footer"track-name="follow on x"track-type="footer link"target="_blank"track-metadata-eventDetail="x.com/googlecloud"> Follow on X </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//userresearch.google.com/?reserved=1&amp;utm_source=website&amp;Q_Language=en&amp;utm_medium=own_srch&amp;utm_campaign=CloudWebFooter&amp;utm_term=0&amp;utm_content=0&amp;productTag=clou&amp;campaignDate=jul19&amp;pType=devel&amp;referral_code=jk212693" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 11)" track-type="footer link"track-name="join user research"track-metadata-child_headline="engage"target="_blank"track-metadata-position="footer"track-metadata-module="footer"track-metadata-eventDetail="userresearch.google.com/?reserved=1&amp;utm_source=website&amp;Q_Language=en&amp;utm_medium=own_srch&amp;utm_campaign=CloudWebFooter&amp;utm_term=0&amp;utm_content=0&amp;productTag=clou&amp;campaignDate=jul19&amp;pType=devel&amp;referral_code=jk212693"> Join User Research </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//careers.google.com/cloud" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 12)" target="_blank"track-metadata-eventDetail="careers.google.com/cloud"track-metadata-module="footer"track-metadata-child_headline="engage"track-type="footer link"track-metadata-position="footer"track-name="we are hiring join google cloud"> We're hiring. Join Google Cloud! </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://www.googlecloudcommunity.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 13)" track-metadata-eventDetail="www.googlecloudcommunity.com"target="_blank"track-metadata-module="footer"track-metadata-child_headline="engage"track-metadata-position="footer"track-type="footer link"rel="noopener"track-name="google cloud community"> Google Cloud Community </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//about.google/" data-category="Site-Wide Custom Events" data-label="Footer About Google link" track-metadata-eventDetail="//about.google/" track-metadata-module="utility footer" track-name="about google" track-metadata-position="footer" target="_blank" track-type="footer link" > About Google </a> </li> <li class="devsite-footer-utility-item devsite-footer-privacy-link"> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" target="_blank" track-name="privacy" track-type="footer link" track-metadata-eventDetail="//policies.google.com/privacy" track-metadata-position="footer" track-metadata-module="utility footer" > Privacy </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//www.google.com/intl/en/policies/terms/regional.html" data-category="Site-Wide Custom Events" data-label="Footer Site terms link" target="_blank" track-name="site terms" track-type="footer link" track-metadata-position="footer" track-metadata-module="utility footer" track-metadata-eventDetail="//www.google.com/intl/en/policies/terms/regional.html" > Site terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/product-terms/" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud terms link" track-metadata-eventDetail="/product-terms/" track-metadata-position="footer" track-name="google cloud terms" track-metadata-module="utility footer" track-type="footer link" > Google Cloud terms </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" track-type="footer link" track-metadata-module="utility footer" aria-hidden="true" track-metadata-eventDetail="#" track-name="Manage cookies" track-metadata-position="footer" > Manage cookies </a> </li> <li class="devsite-footer-utility-item devsite-footer-carbon-button"> <a class="devsite-footer-utility-link gc-analytics-event" href="/sustainability" data-category="Site-Wide Custom Events" data-label="Footer Our third decade of climate action: join us link" track-metadata-module="utility footer" track-metadata-eventDetail="/sustainability/" track-metadata-position="footer" track-name="Our third decade of climate action: join us" track-type="footer link" > Our third decade of climate action: join us </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Sign up for the Google Cloud newsletter</span> <a class="devsite-footer-utility-link gc-analytics-event" href="/newsletter/" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link" track-name="subscribe" track-metadata-eventDetail="/newsletter/" track-type="footer link" track-metadata-module="utility footer" track-metadata-position="footer" > Subscribe </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[]</script> <script type="application/json" tag-management>{&#34;at&#34;: &#34;True&#34;, &#34;ga4&#34;: [], &#34;ga4p&#34;: [], &#34;gtm&#34;: [{&#34;id&#34;: &#34;GTM-5CVQBG&#34;, &#34;purpose&#34;: 1}], &#34;parameters&#34;: {&#34;internalUser&#34;: &#34;False&#34;, &#34;language&#34;: {&#34;machineTranslated&#34;: &#34;False&#34;, &#34;requested&#34;: &#34;en&#34;, &#34;served&#34;: &#34;en&#34;}, &#34;pageType&#34;: &#34;article&#34;, &#34;projectName&#34;: &#34;Load Balancing&#34;, &#34;signedIn&#34;: &#34;False&#34;, &#34;tenant&#34;: &#34;cloud&#34;, &#34;recommendations&#34;: {&#34;sourcePage&#34;: &#34;&#34;, &#34;sourceType&#34;: 0, &#34;sourceRank&#34;: 0, &#34;sourceIdenticalDescriptions&#34;: 0, &#34;sourceTitleWords&#34;: 0, &#34;sourceDescriptionWords&#34;: 0, &#34;experiment&#34;: &#34;&#34;}, &#34;experiment&#34;: {&#34;ids&#34;: &#34;&#34;}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <cloudx-user></cloudx-user> <cloudx-free-trial-eligible-store freeTrialEligible='true'></cloudx-free-trial-eligible-store> <cloudx-pricing-socket></cloudx-pricing-socket> <cloudx-experiments type="TestAACodivertedExperiment" path="/virtual/TestAACodivertedExperiment/configureExperiment" location="SG" variant="variant2" ></cloudx-experiments> <cloudx-experiment-ids userCountry="SG" devsiteExperimentIdList="[39300012, 39300023, 39300118, 39300196, 39300251, 39300319, 39300320, 39300327, 39300346, 39300354, 39300364, 39300374, 39300412, 39300421, 39300436, 39300471, 39300487, 39300496, 39300498, 39300569]"> </cloudx-experiment-ids> <script nonce="kaq208eH99zHwUTKP/qb9DSWEH1UF/"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/vdcd49b48a0f6579e36a0f52b513a1840db67522fa48e80a57742b4388044a7e9/cloud/js/app_loader.js', '[2,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/vdcd49b48a0f6579e36a0f52b513a1840db67522fa48e80a57742b4388044a7e9","https://www.gstatic.com/devrel-devsite/prod/vdcd49b48a0f6579e36a0f52b513a1840db67522fa48e80a57742b4388044a7e9/cloud","https://cloud-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/cloud/manifest.json","https://www.gstatic.com/devrel-devsite/prod/vdcd49b48a0f6579e36a0f52b513a1840db67522fa48e80a57742b4388044a7e9/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/vdcd49b48a0f6579e36a0f52b513a1840db67522fa48e80a57742b4388044a7e9/cloud/images/favicons/onecloud/favicon.ico","https://www.gstatic.com/devrel-devsite/prod/vdcd49b48a0f6579e36a0f52b513a1840db67522fa48e80a57742b4388044a7e9/cloud/images/cloud-logo.svg","https://fonts.googleapis.com/css?family=Google+Sans:400,500,700|Google+Sans+Text:400,400italic,500,500italic,700,700italic|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","cloud.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["Cloud__enable_cloud_dlp_service","Profiles__enable_awarding_url","Analytics__enable_clearcut_logging","Cloud__enable_cloud_shell","Search__enable_dynamic_content_confidential_banner","MiscFeatureFlags__enable_explain_this_code","Profiles__enable_page_saving","TpcFeatures__enable_mirror_tenant_redirects","Profiles__enable_recognition_badges","MiscFeatureFlags__emergency_css","MiscFeatureFlags__enable_variable_operator","Profiles__enable_dashboard_curated_recommendations","MiscFeatureFlags__developers_footer_dark_image","Concierge__enable_concierge_restricted","DevPro__enable_cloud_innovators_plus","Search__enable_ai_search_summaries","Cloud__enable_cloud_facet_chat","Profiles__enable_complete_playlist_endpoint","Profiles__enable_developer_profiles_callout","Profiles__enable_completequiz_endpoint","EngEduTelemetry__enable_engedu_telemetry","Search__scope_to_project_tenant","Cloud__enable_cloudx_ping","Cloud__enable_cloud_shell_fte_user_flow","Profiles__enable_completecodelab_endpoint","Cloud__enable_llm_concierge_chat","Cloud__enable_legacy_calculator_redirect","Concierge__enable_pushui","CloudShell__cloud_code_overflow_menu","TpcFeatures__enable_unmirrored_page_left_nav","Search__enable_ai_eligibility_checks","MiscFeatureFlags__enable_firebase_utm","Profiles__enable_profile_collections","Search__enable_ai_search_summaries_restricted","Profiles__require_profile_eligibility_for_signin","Search__enable_page_map","Search__enable_suggestions_from_borg","Profiles__enable_join_program_group_endpoint","Cloud__enable_cloudx_experiment_ids","Profiles__enable_stripe_subscription_management","Profiles__enable_public_developer_profiles","CloudShell__cloud_shell_button","Experiments__reqs_query_experiments","MiscFeatureFlags__enable_view_transitions","Cloud__enable_free_trial_server_call","MiscFeatureFlags__enable_project_variables","MiscFeatureFlags__developers_footer_image","BookNav__enable_tenant_cache_key","Profiles__enable_release_notes_notifications","DevPro__enable_developer_subscriptions"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","https://developerscontentserving-pa.clients6.google.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","https://developerscontentsearch-pa.clients6.google.com",1,4,1,"https://developerprofiles-pa.clients6.google.com",[2,"cloud","Google Cloud","cloud.google.com",null,"cloud-dot-devsite-v2-prod.appspot.com",null,null,[1,1,null,null,null,null,null,null,null,null,null,[1],null,null,null,null,null,1,[1],[null,null,null,[1,20],"/terms/recommendations"],[1],null,[1],[1,null,1],[1,1,null,null,1,null,["/vertex-ai/"]]],null,[22,null,null,null,null,null,"/images/cloud-logo.svg","/images/favicons/onecloud/apple-icon.png",null,null,null,null,1,1,1,[6,5],[],null,null,[[],[],[],[],[],[],[],[]],null,1,null,null,null,null,[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1,14,15,22,23,29,37],null,[[null,null,null,null,null,null,[1,[["docType","Choose a content type",[["ApiReference",null,null,null,null,null,null,null,null,"API reference"],["Sample",null,null,null,null,null,null,null,null,"Code sample"],["ReferenceArchitecture",null,null,null,null,null,null,null,null,"Reference architecture"],["Tutorial",null,null,null,null,null,null,null,null,"Tutorial"]]],["category","Choose a topic",[["AiAndMachineLearning",null,null,null,null,null,null,null,null,"Artificial intelligence and machine learning (AI/ML)"],["ApplicationDevelopment",null,null,null,null,null,null,null,null,"Application development"],["BigDataAndAnalytics",null,null,null,null,null,null,null,null,"Big data and analytics"],["Compute",null,null,null,null,null,null,null,null,"Compute"],["Containers",null,null,null,null,null,null,null,null,"Containers"],["Databases",null,null,null,null,null,null,null,null,"Databases"],["HybridCloud",null,null,null,null,null,null,null,null,"Hybrid and multicloud"],["LoggingAndMonitoring",null,null,null,null,null,null,null,null,"Logging and monitoring"],["Migrations",null,null,null,null,null,null,null,null,"Migrations"],["Networking",null,null,null,null,null,null,null,null,"Networking"],["SecurityAndCompliance",null,null,null,null,null,null,null,null,"Security and compliance"],["Serverless",null,null,null,null,null,null,null,null,"Serverless"],["Storage",null,null,null,null,null,null,null,null,"Storage"]]]]]],[1],null,1],[[null,null,null,null,null,["GTM-5CVQBG"],null,null,null,null,null,[["GTM-5CVQBG",2]],1],null,null,null,null,null,1],"mwETRvWii0eU5NUYprb0Y9z5GVbc",4,null,null,null,null,null,null,null,null,null,null,null,null,null,"cloud.devsite.google"],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m",1]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10