Amazon Linux 2 또는 Amazon Linux 2023에서 Docker 및 Amazon ECS 컨테이너 에이전트의 HTTP 프록시를 설정하려면 어떻게 해야 하나요?

3분 분량
0

Amazon Linux 2 또는 Amazon Linux 2023에서 Docker용 HTTP 프록시와 Amazon Elastic Container Service(Amazon ECS) 컨테이너 에이전트를 설정하고 싶습니다.

해결 방법

Amazon Linux 2 또는 Amazon Linux 2023에서 Docker 및 Amazon ECS 컨테이너 에이전트의 HTTP 프록시를 설정하려면 다음 단계를 완료하세요.

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

Amazon Linux를 사용하는 경우 Amazon Linux에서 Docker 및 Amazon ECS 컨테이너 에이전트의 HTTP 프록시를 설정하려면 어떻게 해야 하나요?를 참조하세요.

중요: Amazon Linux AMI(Amazon Linux 1이라고도 함)는 2023년 12월 31일에 서비스 종료되었습니다. 애플리케이션을 Amazon Linux 2023으로 업그레이드하는 것이 좋습니다.

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

IP 주소 및 프록시 서버 포트를 저장하려면 다음 단계를 완료하세요.

  1. SSH를 사용하여 Amazon EC2 인스턴스에 연결합니다.
  2. 루트 사용자는 프록시 서버의 IP 주소와 포트를 나중에 환경 변수에 사용할 수 있도록 저장합니다. 예를 들면, 다음과 같습니다.
    export PROXY_SERVER_IP=x.x.x.x
    export PROXY_PORT=1234

Docker 데몬용 HTTP 프록시 설정

Docker 데몬용 HTTP 프록시를 설정하려면 다음 단계를 완료하세요.

  1. 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

    참고: HTTP_PROXY는 ECS 컨테이너 에이전트를 인터넷에 연결하는 데 사용되는 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 데몬 트래픽을 필터링합니다.

  2. 디스크의 docker.service 변경으로 인해 유닛을 다시 로드하려면 다음 명령을 실행합니다.

    systemctl daemon-reload
  3. Docker를 다시 시작하려면 다음 명령을 실행합니다.

    systemctl restart docker.service

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

  4. Docker의 HTTP 프록시 설정을 확인하려면 다음 명령을 실행합니다.

    docker info | grep -i proxy

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

컨테이너 에이전트용 HTTP 프록시 설정

Docker 데몬용 HTTP 프록시를 설정하려면 다음 단계를 완료하세요.

  1. 기존 /etc/ecs/ecs.config 파일에 HTTP_PROXY 및 NO_PROXY 에이전트 구성 파라미터를 사용하는 프록시 구성을 포함합니다. 예를 들면, 다음과 같습니다.

    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. 1단계의 HTTP 구성을 ecs-agent에 적용하려면 다음 명령을 실행합니다.

    systemctl restart ecs

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

  3. Docker 및 컨테이너 에이전트의 HTTP 프록시 설정을 확인하려면 다음 명령을 실행합니다.

    docker inspect ecs-agent | grep -i proxy

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

ecs-init용 HTTP 프록시 설정

ecs-init용 HTTP 프록시를 설정하려면 다음 단계를 완료합니다.

  1. 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. 디스크의 docker.service 변경으로 인해 유닛을 다시 로드하려면 다음 명령을 실행합니다.

    systemctl daemon-reload
  3. 1단계의 HTTP 구성을 ecs-agent에 적용하려면 다음 명령을 실행합니다.

    systemctl restart ecs

    참고: Docker와 컨테이너 에이전트의 구성은 현재 실행 중인 인스턴스에만 영향을 줍니다. 클러스터의 모든 인스턴스를 업데이트하려면 시작 구성을 생성한 다음 Auto Scaling 그룹을 사용하여 새 인스턴스를 시작합니다.

관련 정보

Amazon ECS 컨테이너 에이전트 업데이트

Amazon EC2 사용자 데이터를 사용한 컨테이너 인스턴스 부트스트랩

AWS 공식
AWS 공식업데이트됨 일 년 전