En esta página, se muestra la configuración necesaria para exponer un servicio del entorno flexible de App Engine solo en su dirección IP interna.
De forma predeterminada, los servicios de entorno flexible reciben una dirección IP interna y una dirección IP externa efímera cuando se implementan por primera vez. La dirección IP externa efímera permite que tu servicio envíe solicitudes a servicios de App Engine con dominios personalizados y recursos en Internet. Las direcciones IP externas efímeras generan costos.
Si el servicio no requiere una dirección IP externa, puedes evitar que envíe solicitudes a recursos en Internet y reducir los costos si limitas el servicio a usar solo su dirección IP interna. Esto no evita que el servicio reciba solicitudes de Internet o de servicios de App Engine con dominios personalizados, ya que el nombre de dominio completamente calificado del servicio sigue siendo visible de forma externa.
Limitaciones
La inhabilitación de direcciones IP externas efímeras tiene las siguientes limitaciones:
- Servicios con dominios personalizados: para enviar solicitudes a servicios de App Engine con dominios personalizados, debes configurar Cloud NAT.
- Recursos externos: para enviar solicitudes a recursos externos, debes configurar Cloud NAT.
- Dependencia de Acceso privado a Google: Las instancias con el modo IP configurado como
internal
requieren Acceso privado a Google en la subred de destino. - Redes heredadas: las redes heredadas no pueden usar el Acceso privado a Google y, por lo tanto, no pueden inhabilitar direcciones IP externas efímeras.
Antes de comenzar
Para implementar apps de entorno flexible sin direcciones IP externas, debes habilitar el Acceso privado a Google en la subred de destino.
- Para obtener más información sobre el Acceso privado a Google, consulta Descripción general.
- Para obtener instrucciones de configuración paso a paso, consulta Habilita el Acceso privado a Google.
Prepara la red de VPC compartida
Si usas una VPC compartida, sigue estos pasos a fin de preparar tu red de VPC compartida para ampliar la configuración.
Verifica que tengas una ruta que sea compatible con el Acceso privado a Google. Por lo general, la ruta predeterminada de una red es compatible con el Acceso privado a Google. En el caso de otras rutas, confirma que la ruta esté configurada de la siguiente manera.
Network: SHARED_VPC_NETWORK_NAME Destination IP address range: 0.0.0.0/0 Instance tags: INSTANCE_TAGS Next hop: DEFAULT_INTERNET_GATEWAY
Reemplaza lo siguiente:
SHARED_VPC_NETWORK_NAME
: el nombre de tu red de VPC compartida.INSTANCE_TAGS
: si no usas etiquetas de instancia, no especifiques nada en este campo. Si usas etiquetas de instancia, incluyeaef-instances
en la lista de etiquetas de instancia.DEFAULT_INTERNET_GATEWAY
: la puerta de enlace de Internet predeterminada.
Para obtener más información sobre las rutas compatibles con el Acceso privado a Google, consulta la documentación de Acceso privado a Google sobre opciones de enrutamiento.
Verifica que tengas una regla de firewall compatible con el Acceso privado a Google. La regla de firewall se debe configurar de la siguiente manera.
Network: SHARED_VPC_NETWORK_NAME Destination IP address range: 0.0.0.0/0 Destination filter: IP ranges Direction of traffic: Egress Attach on match: Allow Instance tags: INSTANCE_TAGS
Reemplaza lo siguiente:
SHARED_VPC_NETWORK_NAME
: el nombre de tu red de VPC compartida.INSTANCE_TAGS
: si no usas etiquetas de instancia, no especifiques nada en este campo. Si usas etiquetas de instancia, incluyeaef-instances
en la lista de etiquetas de instancia.
Para obtener más información sobre las reglas de firewall compatibles con el Acceso privado a Google, consulta la documentación de Acceso privado a Google sobre la configuración del firewall.
Configura el servicio para usar solo su dirección IP interna
Actualiza Google Cloud CLI. Esto garantiza que uses una versión de la CLI de gcloud que admita direcciones IP privadas para apps del entorno flexible.
gcloud components update
En tu archivo
app.yaml
, agrega el campoinstance_ip_mode
a la secciónnetwork
y configúralo comointernal
.Si tu archivo
app.yaml
ya tiene una secciónnetwork
, agrega la siguiente línea dentro de la secciónnetwork
:instance_ip_mode: internal
Si el archivo
app.yaml
no tiene una secciónnetwork
, agrega las siguientes líneas para crear la sección y especificar el modo de IP de la instancia:network: instance_ip_mode: internal
Guarda estos cambios.
Implemente el servicio.
gcloud beta app deploy
Para verificar la configuración, revisa la página de instancias de la consola de Google Cloud.
Desplázate hacia abajo hasta la tabla Instancias (debajo del gráfico Resumen). En la columna IP de la VM, confirma que no haya direcciones IP enumeradas. La ausencia de una dirección IP en esta columna significa que tu instancia no tiene dirección IP externa. Aunque este campo está vacío, la instancia aún tiene una dirección IP interna.
Envía solicitudes externas sin una dirección IP externa
Si tu servicio envía solicitudes a Internet, pero deseas limitarlo a usar solo su dirección IP interna, puedes usar Cloud NAT para crear una puerta de enlace. El servicio puede enviar solicitudes externas a través de la puerta de enlace de Cloud NAT sin usar las direcciones IP externas efímeras predeterminadas.
Sigue los pasos de la sección Configura tu servicio para usar solo su dirección IP interna.
Sigue los pasos para configurar Cloud NAT.
Para obtener más información sobre este enfoque, consulta la documentación de Cloud Architecture Center sobre cómo implementar Cloud NAT para la recuperación.