본문 바로가기

AWS

[AWS] 폐쇄망 EKS 환경에서 Squid Proxy를 활용하여 HTTP 아웃바운드 통신하기

반응형

1. 개요

페쇄망 환경에서 Squid Proxy를 통해 HTTP, HTTPS Proxy를 설정하는 방법에 대해 설명한다.

 

폐쇄망에서는 NAT Gateway나 NAT Instance를 사용하지 않기 때문에 내부에서 외부 인터넷망으로 접근이 불가능하다.

 

예를 들어 PG사에 결제한다거나 외부 택배사 모듈과 연동한다거나 등이 불가능한데, 이를 가능하게 하기 위해서는

 

1. Public Subnet에 프록시 서버를 구성하고

2. EKS Container에서는 프록시 서버를 통해 외부망에 접근함을 명시해줘야 한다.

 

필자는 Squid Proxy를 통해 폐쇄망에서 외부 인터넷망에 접근하도록 설정하였다.

 

2. Squid Proxy 설정

설치하는 방법은 인터넷에 아주 많이 나와있고 간단하기 때문에 설치 방법 설명은 생략한다.

 

yum -y install squid

 

SG Inbound는 VPC 대역 3128 포트만 허용해주면 된다.

인바운드 SG는 최소한으로만 열어주는 것이 중요하다.

 

 

컨피그 위치 : /etc/squid/squid.conf

 

- allow_dst : 허용 리스트를 정의

- http_access allow : 기 정의한 allow_dst를 허용
- http_access deny : 그 외에는 모두 deny

 

3. EKS Container에서 HTTP Proxy를 설정하기

Worker Node 전역에 설정하기 위해서는 Kubelet config를 설정해줘야 하는데 이는 Bootstrap script를 통해 가능하다.

 

간단하게 설정하기 위해서는 Container에 환경 변수를 주입해주면 된다.

 

 

주요 키워드는 HTTP_RPOXY, HTTPS_PROXY, NO_PROXY 이다. 이 3개를 환경변수로 등록해줘야 한다.

 

 

필자는 ConfigMap을 통해 환경 변수를 주입해주었다.

 

1. HTTP/S_PROXY : Squid Proxy 서버의 주소를 기입해준다.

 

2. NO_PROXY : Squid Proxy 서버를 경유하지 않도록 하기 위한 설정 (필수)

 

# 172.20.0.0/16 : EKS 클러스터 내부 IP 대역

# xx.xx.0.0/16 : VPC CIDR 대역

 

# x.ap-northeast-2.amazonaws.com : AWS API 통신하기 위한 엔드포인트 주소 (VPC Endpoint)

 

 

4. 결과

naver.com만 허용했기 때문에 google.com은 Squid Proxy에 의해 403 Return을 받는 것을 확인할 수 있다.

naver.com은 Squid Proxy를 통해 접근

 

 

반응형