Para ejecutar AWS CodeBuild en un servidor proxy transparente o explícito, necesita estos componentes:
-
Una VPC.
-
Una subred pública en la VPC para el servidor proxy.
-
Una subred privada en la VPC para CodeBuild.
-
Una gateway de Internet que permita la comunicación entre la VPC e Internet.
En el siguiente diagrama, se muestran cómo interactúan los componentes.

Configuración de una VPC, varias subredes y una gateway de red
A continuación, se presentan los pasos necesarios para ejecutar AWS CodeBuild en un servidor proxy transparente o explícito.
-
Cree una VPC. Para obtener más información, consulte Creación de una VPC en la Guía del usuario de Amazon VPC.
-
Cree dos subredes en la VPC. Una será una subred pública llamada
Public Subnet
en la que se ejecutará el servidor proxy. La otra será una subred privada llamadaPrivate Subnet
en la que se ejecutará CodeBuild.Para obtener más información, consulte Creación de una subred en la VPC.
-
Cree una gateway de Internet y vincúlela a su VPC. Para obtener más información, consulte Creación y asociación de una gateway de Internet.
-
Agregue una regla a la tabla de enrutamiento predeterminada que direccione el tráfico saliente desde la VPC (0.0.0.0/0) a la gateway de Internet. Para obtener más información, consulte Adición y eliminación de rutas de una tabla de enrutamiento.
-
Agregue una regla al grupo de seguridad predeterminado de la VPC que permita la entrada de tráfico SSH (TCP 22) procedente de la VPC (0.0.0.0/0).
-
Siga las instrucciones que se indican en Lanzar una instancia con el asistente de inicialización de instancias en la Guía del usuario de Amazon EC2 para lanzar una instancia de Amazon Linux. Cuando el asistente esté en ejecución, seleccione las siguientes opciones:
-
En Elija un tipo de instancia, seleccione una Imagen de máquina de Amazon (AMI) de Amazon Linux.
-
En Subnet (Subred), seleccione la subred pública que creó anteriormente en este tema. Si utilizó el nombre recomendado, se llamará Public Subnet (Subred pública).
-
En Auto-assign Public IP (IP de asignación automática), elija Enable (Habilitar).
-
En la página Configure Security Group (Configurar grupo de seguridad), en Assign a security group (Asignar un grupo de seguridad), seleccione Select an existing security group (Seleccionar un grupo de seguridad existente). A continuación, seleccione el grupo de seguridad predeterminado.
-
Cuando haga clic en Launch (Lanzar), seleccione un par de claves existente o cree uno.
Seleccione la configuración predeterminada de todas las demás opciones.
-
-
Una vez que la instancia EC2 esté en ejecución, desactive las comprobaciones de origen/destino. Para obtener más información, consulte Desactivación de comprobaciones de origen/destino en la Guía del usuario de Amazon VPC.
-
Cree una tabla de enrutamiento en la VPC. Agregue una regla a la tabla de enrutamiento que direccione el tráfico destinado a Internet al servidor proxy. Asocie esta tabla de enrutamiento con la subred privada. Esta operación es necesaria para que las solicitudes de salida de las instancias de la subred privada en la que se ejecuta CodeBuild se direccionen siempre a través del servidor proxy.
Instalación y configuración de un servidor proxy
Existen muchos servidores proxy entre los que elegir. Aquí, vamos a utilizar un servidor proxy de código abierto, Squid, para mostrar cómo se ejecuta AWS CodeBuild en un servidor proxy. Puede emplear estos mismos conceptos con otros servidores proxy.
Para instalar Squid, utilice un repositorio yum ejecutando los siguientes comandos:
sudo yum update -y
sudo yum install -y squid
Después de instalar Squid, edite el archivo squid.conf
siguiendo las instrucciones que se indican más adelante en este tema.
Configuración de Squid para el tráfico HTTPS
En HTTPS, el tráfico HTTP se encapsula en una conexión Transport Layer Security (TLS). Squid utiliza una característica llamada SslPeekAndSplice
sudo mkdir /etc/squid/ssl
cd /etc/squid/ssl
sudo openssl genrsa -out squid.key 2048
sudo openssl req -new -key squid.key -out squid.csr -subj "/C=XX/ST=XX/L=squid/O=squid/CN=squid"
sudo openssl x509 -req -days 3650 -in squid.csr -signkey squid.key -out squid.crt
sudo cat squid.key squid.crt | sudo tee squid.pem
nota
En el caso de HTTP, Squid no requiere configuración. En todos los mensajes de solicitud HTTP/1.1, puede recuperar el campo del encabezado de host, donde se especifica el host de Internet que se está solicitando.