Amazon Linux에서 도커 및 Amazon ECS 컨테이너 에이전트에 대한 HTTP 프록시를 설정하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 8월 26일

Amazon Linux에서 도커 및 Amazon Elastic Container Service(Amazon ECS) 컨테이너 에이전트에 대한 HTTP 프록시를 설정하려고 합니다.

간략한 설명

다음 단원의 단계를 완료합니다.

  • IP 주소 및 프록시 서버 포트 저장
  • Docker 데몬에 대한 HTTP 프록시 설정
  • Amazon ECS 컨테이너 에이전트에 대한 HTTP 프록시 설정
  • ecs-init에 대한 HTTP 프록시 설정

참고: 시작 시 사용자 데이터 스크립트와 함께 Amazon Elastic Compute Cloud(Amazon EC2) 사용자 데이터를 사용하여 환경 변수를 설정할 수도 있습니다. 모든 Linux 버전에서 작동하는 사용자 데이터 스크립트는 HTTP 프록시 구성을 참조하십시오.

Amazon Linux 2를 사용하는 경우 Amazon Linux 2에서 도커 및 Amazon ECS 컨테이너 에이전트에 대한 HTTP 프록시를 설정하려면 어떻게 해야 합니까?를 참조하십시오.

해결 방법

IP 주소 및 프록시 서버 포트 저장

1.    SSH를 사용하여 Amazon EC2 인스턴스에 연결합니다.

2.    루트 사용자는 나중에 환경 변수에 사용하기 위해 프록시 서버의 IP 주소와 포트를 저장합니다. 예:

export PROXY_SERVER_IP=x.x.x.x
export PROXY_PORT=1234

Docker 데몬에 대한 HTTP 프록시 설정

1.    sudo 권한으로 다음 명령을 실행합니다.

cat <<EOF >> /etc/sysconfig/docker
export HTTP_PROXY=http://$PROXY_SERVER_IP:$PROXY_PORT
export HTTPS_PROXY=https://$PROXY_SERVER_IP:$PROXY_PORT
export NO_PROXY=169.254.169.254,169.254.170.2
EOF

참고: HTTP_PROXY는 Amazon ECS 컨테이너 에이전트를 인터넷에 연결하는 데 사용되는 HTTP 프록시의 소켓 주소(IPaddress: Port)입니다.

HTTP_PROXY 변수가 설정된 경우 NO_PROXY 변수를 169.254.169.254,169.254.170.2로 설정해야 합니다. 이 설정은 Amazon EC2 인스턴스 메타데이터, 작업에 대한 AWS Identity and Access Management(IAM) 역할, 프록시로부터의 도커 데몬 트래픽을 필터링합니다.

2.    다음 명령을 실행하여 도커를 다시 시작합니다.

service docker restart

참고: 앞의 명령은 컨테이너 인스턴스에서 ecs-agent를 포함하여 실행 중인 모든 컨테이너를 중지합니다.

3.    도커에 대한 HTTP 프록시 설정을 확인하려면 다음 명령을 실행합니다.

docker info | grep -i proxy

참고: 명령 출력에는 HTTP 프록시 및 HTTPS 프록시가 표시됩니다.

Amazon ECS 컨테이너 에이전트에 대한 HTTP 프록시 설정

1.    /etc/ecs/ecs.config 파일에서 HTTP_PROXY 및 NO_PROXY 에이전트 구성 파라미터를 사용하여 프록시 구성을 추가합니다. 예:

cat <<EOF >> /etc/ecs/ecs.config
ECS_CLUSTER=your-cluster-name
HTTP_PROXY=http://$PROXY_SERVER_IP:$PROXY_PORT
NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock
EOF

2.    1단계의 HTTP 프록시 구성을 ecs-agent에 적용하려면 다음 명령을 실행합니다.

sudo start ecs

참고: Amazon ECS 최적화 Amazon Machine Image(AMI)를 사용하는 경우, Amazon ECS 컨테이너 에이전트는 기본적으로 ecs-init를 통해 실행됩니다.

3.    도커 및 Amazon ECS 컨테이너 에이전트에 대한 HTTP 프록시 설정을 확인하려면 다음 명령을 실행합니다.

docker inspect ecs-agent | grep -i proxy

참고: 프록시 설정은 명령 출력에 표시됩니다.

ecs-init에 대한 HTTP 프록시 설정

sudo 권한으로 다음 명령을 실행합니다.

cat <<EOF > /etc/init/ecs.override
env HTTP_PROXY=$PROXY_SERVER_IP:$PROXY_PORT
env NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock
EOF

참고: 도커 및 Amazon ECS 컨테이너 에이전트의 구성은 현재 실행 중인 인스턴스에만 영향을 미칩니다. 클러스터의 모든 인스턴스를 업데이트하려면 사용자 데이터로 시작 구성을 생성하고Auto Scaling 그룹을 사용하여 새 인스턴스를 시작합니다.