Ir para o conteúdo

Como configuro um proxy HTTP para o Docker e o atendente de contêiner do Amazon ECS no Amazon Linux 2 ou no Amazon Linux 2023?

4 minuto de leitura
0

Quero configurar um proxy HTTP para o Docker e o atendente de contêiner do Amazon Elastic Container Service (Amazon ECS) no Amazon Linux 2 ou Amazon Linux 2023.

Resolução

Para configurar um proxy HTTP para o Docker e o atendente de contêiner do Amazon ECS no Amazon Linux 2 ou no Amazon Linux 2023, conclua estas etapas.

Observação: Também é possível definir suas variáveis de ambiente durante a execução usando os dados do usuário do Amazon Elastic Compute Cloud (Amazon EC2) com um script de dados do usuário. Para um script de dados do usuário que funciona em todas as versões do Linux, consulte Uso de um proxy HTTP para instâncias de contêiner do Linux no Amazon ECS.

Se você estiver usando o Amazon Linux, consulte How do I set up an HTTP proxy for Docker and the Amazon ECS container agent in Amazon Linux? (Como configuro um proxy HTTP para o Docker e o atendente de contêiner do Amazon ECS no Amazon Linux?)

Importante: O Amazon Linux AMI (também chamado de Amazon Linux 1) chegou ao fim de sua vida útil em 31 de dezembro de 2023. É uma prática recomendada fazer um upgrade em suas aplicações para o Amazon Linux 2023.

Armazene o endereço IP e a porta do servidor proxy

Para armazenar o endereço IP e a porta do servidor proxy, conclua as seguintes etapas:

  1. Conecte-se à sua instância do Amazon EC2 usando SSH.
  2. Como usuário-raiz, armazene o endereço IP e a porta do servidor proxy para uso posterior em variáveis de ambiente. Por exemplo:
    export PROXY_SERVER_IP=x.x.x.x
    export PROXY_PORT=1234

Configure um proxy HTTP para o daemon do Docker

Para configurar um proxy HTTP para o daemon do Docker, conclua as seguintes etapas:

  1. Execute os seguintes comandos com permissões sudo:

    mkdir -p /etc/systemd/system/docker.service.d
    cat <<EOF > /etc/systemd/system/docker.service.d/http-proxy.conf
    [Service]
    Environment="HTTP_PROXY=http://$PROXY_SERVER_IP:$PROXY_PORT"
    Environment="HTTPS_PROXY=http://$PROXY_SERVER_IP:$PROXY_PORT"
    Environment="NO_PROXY=169.254.169.254,169.254.170.2"
    EOF

    Observação: HTTP_PROXY é o endereço de soquete (IPaddress:Port) do proxy HTTP usado para conectar o atendente de contêiner do ECS à internet.

    Se a variável HTTP_PROXY estiver definida, você deve definir a variável NO_PROXY como 169.254.169.254,169.254.170.2. Essa configuração filtra os metadados da instância do Amazon EC2, os perfis do AWS Identity and Access Management (AWS IAM) para tarefas e o tráfego do daemon do Docker a partir do proxy.

  2. Para recarregar unidades devido à alteração do docker.service no disco, execute o seguinte comando:

    systemctl daemon-reload
  3. Para reiniciar o Docker, execute o seguinte comando:

    systemctl restart docker.service

    Observação: O comando anterior interrompe todos os contêineres em execução, incluindo o ecs-agent na instância de contêiner do ECS.

  4. Para verificar as configurações do proxy HTTP para o Docker, execute o seguinte comando:

    docker info | grep -i proxy

    Observação: A saída do comando mostra o proxy HTTP e o proxy HTTPS.

Configure um proxy HTTP para o atendente de contêiner

Para configurar um proxy HTTP para o daemon do Docker, conclua as seguintes etapas:

  1. Em seu arquivo /etc/ecs/ecs.config existente, inclua a configuração do proxy usando os parâmetros de configuração do atendente HTTP_PROXY e NO_PROXY. Por exemplo:

    cat <<EOF > /etc/ecs/ecs.config
    HTTP_PROXY=http://$PROXY_SERVER_IP:$PROXY_PORT
    NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock
    EOF
  2. Para aplicar as configurações HTTP da etapa 1 ao ecs-agent, execute o seguinte comando:

    systemctl restart ecs

    Observação: Se você usa uma imagem de máquina da Amazon (AMI) otimizada para Amazon ECS, o atendente de contêiner é executado por meio do ecs-init por padrão.

  3. Para verificar as configurações de proxy HTTP para o Docker e o atendente de contêiner, execute o seguinte comando:

    docker inspect ecs-agent | grep -i proxy

    Observação: As configurações de proxy aparecem na saída do comando.

Configure um proxy HTTP para ecs-init

Para configurar um proxy HTTP para ecs-init, conclua as seguintes etapas:

  1. Execute os seguintes comandos com permissões sudo:

    mkdir -p /etc/systemd/system/ecs.service.d
    cat <<EOF > /etc/systemd/system/ecs.service.d/http-proxy.conf
    [Service]
    Environment="HTTPS_PROXY=$PROXY_SERVER_IP:$PROXY_PORT/"
    Environment="NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock"
    EOF
  2. Para recarregar unidades devido à alteração do docker.service no disco, execute o seguinte comando:

    systemctl daemon-reload
  3. Para aplicar as configurações HTTP da etapa 1 ao ecs-agent, execute o seguinte comando:

    systemctl restart ecs

    Observação: A configuração do Docker e do atendente de contêiner afeta somente a instância em execução no momento. Para atualizar todas as instâncias em um cluster, crie uma configuração de execução e use um grupo de Auto Scaling para executar novas instâncias.

Informações relacionadas

Atualizar o atendente de contêiner do Amazon ECS

Inicialização de instâncias de contêiner com dados de usuário do Amazon EC2

AWS OFICIALAtualizada há 2 anos