Amazon Linux에서 Docker 및 Amazon Elastic Container Service(Amazon ECS) 컨테이너 에이전트를 위한 HTTP 프록시를 설정하고 싶습니다.
간략한 설명
다음 조치를 취하십시오.
- IP 주소와 프록시 서버 포트를 저장합니다.
- Docker 데몬을 위한 HTTP 프록시를 설정합니다.
- Amazon ECS 컨테이너 에이전트를 위한 HTTP 프록시를 설정합니다.
- ecs-init를 위한 HTTP 프록시를 설정합니다. 자세한 내용은 GitHub 웹사이트의 amazon-ecs-init를 참조하십시오.
참고: 또한 사용자 데이터 스크립트가 있는 Amazon Elastic Compute Cloud(Amazon EC2) 사용자 데이터를 사용하여 시작 시 환경 변수를 설정할 수 있습니다. 모든 버전의 Linux에서 작동하는 사용자 데이터 스크립트는 Amazon ECS Linux 컨테이너 인스턴스를 위한 HTTP 프록시 사용을 참조하십시오.
Amazon Linux 2 또는 Amazon Linux 2023을 사용하는 경우 Amazon Linux 2 또는 Amazon Linux 2023에서 Docker 및 Amazon ECS 컨테이너 에이전트를 위한 HTTP 프록시를 설정하려면 어떻게 해야 합니까?를 참조하십시오.
참고: Amazon Linux 1 Amazon Machine Image(AMI)는 수명이 다했습니다. Amazon Linux 2 또는 Amazon Linux 2023 AMI로 마이그레이션하는 것이 가장 좋습니다. 자세한 내용은 Amazon Linux AMI FAQ를 참조하십시오.
해결 방법
IP 주소 및 프록시 서버 포트 저장
다음 단계를 완료합니다.
- SSH를 사용하여 Amazon EC2 인스턴스에 연결합니다.
- 루트 사용자는 나중에 환경 변수에 사용할 프록시 서버의 IP 주소와 포트를 기록해 둡니다.
export PROXY_SERVER_IP=x.x.x.xexport PROXY_PORT=1234
Docker 데몬을 위한 HTTP 프록시 설정
다음 단계를 완료합니다.
-
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는 EAmazon CS 컨테이너 에이전트를 인터넷에 연결하는 데 사용되는 HTTP 프록시의 소켓 주소(IPaddress:Port)입니다.
HTTP_PROXY 변수가 설정된 경우 NO_PROXY 변수를 169.254.169.254,169.254.170.2로 설정해야 합니다. 이 설정은 Amazon EC2 인스턴스 메타데이터, 작업에 대한 AWS Identity and Access Management(AWS IAM) 역할, 프록시의 Docker 데몬 트래픽을 필터링합니다.
-
Docker를 다시 시작하려면 다음 명령을 실행합니다.
service docker restart
참고: 위 명령은 실행 중인 모든 컨테이너를 중지합니다. 예를 들어 컨테이너의 ecs-agent를 중지합니다.
-
Docker의 HTTP 프록시 설정을 확인하려면 다음 명령을 실행합니다.
docker info | grep -i proxy
참고: 명령 출력에는 HTTP 프록시와 HTTPS 프록시가 표시됩니다.
Amazon ECS 컨테이너 에이전트를 위한 HTTP 프록시 설정
다음 단계를 완료합니다.
-
/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
-
HTTP 프록시 구성을 ecs-agent에 적용하려면 다음 명령을 실행합니다.
sudo start ecs
참고: Amazon ECS에 최적화된 AMI를 사용하는 경우 Amazon ECS 컨테이너 에이전트는 기본적으로 ecs-init를 통해 실행됩니다.
-
Docker 및 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
참고: Docker와 Amazon ECS 컨테이너 에이전트의 구성은 현재 인스턴스에만 영향을 줍니다. 클러스터의 모든 인스턴스를 업데이트하려면 사용자 데이터로 시작 구성을 생성하고 Auto Scaling 그룹을 사용하여 새 인스턴스를 시작합니다.
관련 정보
Amazon ECS 컨테이너 에이전트 업데이트
데이터 전달을 위한 컨테이너 인스턴스 부트스트래핑