App Engine તમારા VPN ડેટાબેઝ સુધી પહોંચી શકે છે: શું મેળ ખાવું જોઈએ
સ્ટાન્ડર્ડ App Engine ખરેખર Cloud VPN દ્વારા ડેટાબેઝ સુધી પહોંચે છે, પરંતુ ફક્ત ત્યારે જ જ્યારે egress, સ્રોત શ્રેણી અને વિનંતી માર્ગ મેળ ખાય. અહીં શું સંરેખિત કરવું તે છે.
એ દાવો કે App Engine Standard Cloud VPN દ્વારા ખાનગી ડેટાબેઝ સુધી પહોંચી શકતું નથી, તે પ્લેટફોર્મની અગાઉની પેઢીનું અવશેષ છે. Standard ઇન્સ્ટન્સને કેટલાક અન્ય રનટાઇમની જેમ VPC-મૂળ એડ્રેસ મળતું નથી, પરંતુ તેઓ તમારા નેટવર્કમાં રહેલા Serverless VPC Access કનેક્ટર દ્વારા egress મોકલી શકે છે. એકવાર તે માર્ગ અસ્તિત્વમાં આવે, Cloud VPN અને દૂરનું ફાયરવોલ કનેક્ટરના ટ્રાફિકને અન્ય કોઈપણ સ્રોતની જેમ જુએ છે. નિષ્ફળ ભાગ્યે જ ક્ષમતા પોતે જાય છે. તે ત્રણ સેટિંગ્સમાંનું એક છે જે ક્યારેય સંરેખિત થયું નથી.
જૂનો જવાબ ક્યાંથી આવ્યો
કનેક્ટર અસ્તિત્વમાં આવ્યા પહેલાં, વ્યવહારુ જવાબ ખરેખર એ હતો કે Standard ફક્ત સાર્વજનિક એન્ડપોઇન્ટ સાથે વાત કરી શકે, અને ટીમોએ તેને ટાળવા માટે પ્રોક્સી VM અથવા બીજા રનટાઇમ તરફ સ્થળાંતર કર્યું. પ્લેટફોર્મ બદલાયું, લોકવાયકા નહીં. ઓનલાઇન ઘણી સલાહ હજી પણ એ યુગને પ્રતિબિંબિત કરે છે જ્યારે egressનો કોઈ વિકલ્પ જ નહોતો.
સુધારો સાંભળવામાં આવે તેના કરતાં સાંકડો છે. Standard ખાનગી નેટવર્ક સુધી પહોંચી શકે છે, પરંતુ ફક્ત સમર્થિત egress એકીકરણ દ્વારા, અને ફક્ત એ ગંતવ્યો માટે જ જે એકીકરણ ખરેખર પકડે છે.
પહેલાં egress માર્ગ પસંદ કરો
સેવા સાથે જોડાયેલ કનેક્ટર તેનો ટ્રાફિક VPCમાં મૂકે છે. કનેક્ટરનું દસ્તાવેજીકરણ પ્રાદેશિક પૂર્વશરત અને egress સેટિંગ્સની યાદી આપે છે; કનેક્ટર સેવાના પ્રદેશમાં હોવું જોઈએ અને ડિપ્લોય કરતી ઓળખ દ્વારા વાપરી શકાય તેવું હોવું જોઈએ.
vpc_access_connector:
name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
egress_setting: private-ranges-only
private-ranges-only ખાનગી ગંતવ્યોને VPCમાં મોકલે છે અને બાકીનું બધું સામાન્ય ઇન્ટરનેટ માર્ગ પર રાખે છે, જે સામાન્ય રીતે ડેટાબેઝ કનેક્શનને જોઈતું હોય છે. all-traffic બહાર જતા ટ્રાફિકને VPC દ્વારા વ્યાપકપણે ધકેલે છે, તેથી સામાન્ય ઇન્ટરનેટ કૉલ્સ પણ VPCની NAT અને ફાયરવોલ સ્થિતિ વારસામાં મેળવે છે.
ફાઇલને સ્થાનિક રીતે સંપાદિત કરવાથી ડિપ્લોય કર્યા સિવાય કંઈ બદલાતું નથી. ચાલતી આવૃત્તિ જે કન્ફિગરેશન સાથે બની હતી તે જાળવી રાખે છે.
સ્રોત એડ્રેસ કનેક્ટર છે, તમારું લેપટોપ નહીં
અહીં મોટાભાગનો ડિબગિંગ સમય જાય છે. દૂરના VPN ગેટવે અને ડેટાબેઝ ફાયરવોલે VPCની અંદર કનેક્ટરની ફાળવેલ શ્રેણી સ્વીકારવી જોઈએ, તમારી ઓફિસનું એડ્રેસ નહીં અને સેવાનું સાર્વજનિક egress એડ્રેસ નહીં. એક પણ નિયમ લખતા પહેલાં કન્સોલમાં તે શ્રેણી શોધો.
બીજા બે સ્થળોએ પણ સંમત થવું પડે. VPC રૂટ ટેબલને દૂરના ડેટાબેઝ નેટવર્ક તરફ રૂટની જરૂર છે, અને દૂરના બાજુને કનેક્ટર શ્રેણી માટે પરત રૂટની જરૂર છે. જો ટનલ ટ્રાફિક સિલેક્ટરનો ઉપયોગ કરે છે, તો ખાતરી કરો કે કનેક્ટર શ્રેણી વાટાઘાટ કરેલા વ્યાપની અંદર છે. ફક્ત દૂરથી સ્થાનિક દિશામાં જ અસ્તિત્વમાં હોય તેવો રૂટ સામાન્ય ચૂક છે, અને તે પિંગ પસાર કરે છે પણ TCP હેન્ડશેક ક્યારેય પૂર્ણ કરતું નથી.
ફક્ત VM સબનેટ સ્વીકારતી ટનલ કનેક્ટર પેકેટને ઉપયોગી ભૂલ સંદેશ વગર છોડી દેશે, તેથી ડેટાબેઝનો ટાઇમઆઉટ ક્રેડેન્શિયલ સમસ્યા જેવો લાગે છે.
DNS અલગ માર્ગે મુસાફરી કરે છે
ખાનગી ડેટાબેઝ હોસ્ટનામ કનેક્ટર જે નેટવર્ક સુધી પહોંચે તેની અંદર ઉકેલાવું જોઈએ, Cloud DNS પીઅરિંગ અથવા VPC વાપરી શકે તેવા ફોરવર્ડિંગ ઝોન દ્વારા. તમારા વર્કસ્ટેશન પર તેને ઉકેલવાથી ડિપ્લોય કરેલી સેવા વિશે કંઈ સાબિત થતું નથી, કારણ કે તમારું લેપટોપ તે રિઝોલ્વર વાપરતું નથી.
જો નામ VPCની અંદરથી સાર્વજનિક એડ્રેસમાં ઉકેલાય, તો તમે ખોટા ફાયરવોલને ડિબગ કરવા જઈ રહ્યા છો.
URL Fetch કનેક્ટર વાપરતું નથી
egress સેટિંગ રનટાઇમના સામાન્ય બહાર જતા સોકેટને આવરી લે છે, અને જૂની URL Fetch સેવા તે માર્ગનો ભાગ નથી. urlfetch દ્વારા બહાર પાડેલી વિનંતી કન્ફિગરેશન શું કહે તે ધ્યાનમાં લીધા વગર કનેક્ટરને અવગણે છે. જ્યારે નિષ્ફળ કૉલ જૂની લાઇબ્રેરીમાં હોય જે હજી URL Fetch વાપરે છે, ત્યારે ઉકેલ એ છે કે તે કૉલને સ્ટાન્ડર્ડ HTTP ક્લાયન્ટ પર ખસેડવો.
ડેટાબેઝ ડ્રાઇવર માટે આ ભાગ્યે જ સમસ્યા છે, પરંતુ તે ક્લાસિક કારણ છે કે એક જ સેવામાંથી એક એન્ડપોઇન્ટ કામ કરે છે અને બીજું નહીં.
એક સાંકડી ક્વેરી સાથે ચકાસો
ડિપ્લોય કરો, પછી દૂરની બાજુ જોતાં ડિપ્લોય કરેલી આવૃત્તિમાંથી એક માન્ય ડેટાબેઝ કામગીરી ચલાવો. ડેટાબેઝ અથવા VPN ગેટવે જે સ્રોત એડ્રેસ લોગ કરે તે કનેક્ટરનું હોવું જોઈએ. જો ન હોય, તો વિનંતી ક્યારેય VPCમાં દાખલ થઈ નથી અને કોઈ ટનલ કન્ફિગરેશન તેને ઠીક કરશે નહીં. કન્સોલમાં તમે શોધેલી શ્રેણી સાથે તેની સરખામણી કરો; અસંગતિનો અર્થ સામાન્ય રીતે એ છે કે બીજું કનેક્ટર આવૃત્તિને સેવા આપી રહ્યું છે.
VPCની અંદરના VMમાંથી સફળ ક્વેરી સાબિત કરે છે કે રૂટ અસ્તિત્વમાં છે. તે સાબિત કરતું નથી કે સેવાએ તેને પસંદ કર્યો.