Tvrdenie, že App Engine Standard nedokáže dosiahnuť privátnu databázu cez Cloud VPN, je pozostatok staršej generácie platformy. Inštancie Standard nedostávajú adresu natívnu pre VPC ako niektoré iné runtime prostredia, ale môžu posielať egress cez konektor Serverless VPC Access, ktorý žije vo vašej sieti. Keď táto cesta existuje, Cloud VPN a vzdialený firewall vidia prevádzku konektora ako akýkoľvek iný zdroj. Zlyháva málokedy samotná schopnosť. Je to jedno z troch nastavení, ktoré sa nikdy nezladili.

Odkiaľ sa vzala stará odpoveď

Kým konektory existovali, praktická odpoveď naozaj bola, že Standard vie hovoriť len s verejnými koncovými bodmi, a tímy prechádzali na proxy VM alebo iné runtime prostredie, aby to obišli. Platforma sa zmenila, folklór nie. Veľa rád na internete stále odráža éru, keď neexistovala žiadna možnosť egress.

Oprava je užšia, než to znie. Standard sa dostane do privátnej siete, ale len cez podporovanú egress integráciu a len pre ciele, ktoré táto integrácia skutočne zachytí.

Najprv vyberte egress cestu

Konektor pripojený k službe je to, čo dostane jej prevádzku do VPC. Dokumentácia konektora uvádza regionálny predpoklad a nastavenia egress; konektor musí existovať v regióne služby a byť použiteľný identitou, ktorá nasadzuje.

vpc_access_connector:
  name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
  egress_setting: private-ranges-only

private-ranges-only posiela privátne ciele do VPC a všetko ostatné necháva na bežnej internetovej ceste, čo je zvyčajne to, čo pripojenie k databáze potrebuje. all-traffic pretláča odchádzajúcu prevádzku široko cez VPC, takže bežné internetové volania tiež dedia NAT a firewallový postoj VPC.

Úprava súboru lokálne nič nezmení, kým nenasadíte. Bežiaca verzia si zachováva konfiguráciu, s ktorou bola vytvorená.

Zdrojová adresa je konektor, nie váš laptop

Sem ide väčšina času na ladenie. Vzdialená VPN brána a firewall databázy musia povoliť rozsah pridelený konektoru vo vnútri VPC, nie adresu vašej kancelárie a nie verejnú egress adresu služby. Vyhľadajte tento rozsah v konzole, kým napíšete jediné pravidlo.

Ďalšie dve miesta musia súhlasiť. Smerovacia tabuľka VPC potrebuje trasu do vzdialenej siete databázy a vzdialená strana potrebuje spätnú trasu pre rozsah konektora. Ak tunel používa selektory prevádzky, overte, že rozsah konektora leží v dohodnutom rozsahu. Trasa, ktorá existuje len v smere zo vzdialenej na lokálnu stranu, je časté opomenutie a prepúšťa pingy, no nikdy nedokončí TCP handshake.

Tunel, ktorý povoľuje len podsieve VM, zahodí pakety konektora bez užitočnej chybovej správy, a preto časový limit databázy vyzerá ako problém s prihlasovacími údajmi.

DNS ide inou cestou

Názov hostiteľa privátnej databázy sa musí preložiť v sieti, do ktorej sa konektor dostane, cez Cloud DNS peering alebo preposielaciu zónu, ktorú VPC môže použiť. Preloženie na vašej pracovnej stanici nič nedokazuje o nasadenej službe, pretože váš laptop tento resolver nepoužíva.

Ak sa názov zvnútra VPC preloží na verejnú adresu, chystáte sa ladiť nesprávny firewall.

URL Fetch konektor nepoužíva

Nastavenie egress pokrýva bežné odchádzajúce sockety runtime prostredia a staršia služba URL Fetch nie je súčasťou tejto cesty. Požiadavka vydaná cez urlfetch ignoruje konektor, nech konfigurácia hovorí čokoľvek. Keď neúspešné volanie sedí v staršej knižnici, ktorá stále používa URL Fetch, opravou je presunúť toto volanie na štandardný HTTP klient.

Pre ovládač databázy to málokedy býva problém, ale je to klasický dôvod, prečo jeden koncový bod funguje a iný nie z tej istej služby.

Overte jedným úzkym dotazom

Nasaďte a potom spustite jednu povolenú databázovú operáciu z nasadenej verzie a sledujte vzdialenú stranu. Zdrojová adresa zaznamenaná databázou alebo VPN bránou by mala byť adresou konektora. Ak nie je, požiadavka nikdy nevstúpila do VPC a žiadna konfigurácia tunela to nespraví. Porovnajte ju s rozsahom, ktorý ste vyhľadali v konzole; nezhoda zvyčajne znamená, že verziu obsluhuje druhý konektor.

Úspešný dotaz z VM vo vnútri VPC dokazuje, že trasa existuje. Nedokazuje, že si ju služba vybrala.

Súvisiace články