

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 프록시 서버에서 CodeBuild를 실행하기 위해 필요한 구성 요소 설정
<a name="use-proxy-server-transparent-components"></a>

 투명 또는 명시적 프록시 서버에서 실행하려면 다음 구성 요소가 필요합니다 AWS CodeBuild .
+  VPC 
+  프록시 서버용 VPC에 퍼블릭 서브넷 1개.
+  CodeBuild용 VPC에 프라이빗 서브넷 1개.
+  VPC와 인터넷 간 통신을 허용하는 인터넷 게이트웨이.

 다음 다이어그램은 구성 요소가 상호 작용하는 방식을 보여 줍니다.

![\[다이어그램에서 구성 요소가 상호 작용하는 방식을 보여 줍니다.\]](http://docs.aws.amazon.com/ko_kr/codebuild/latest/userguide/images/codebuild-proxy-transparent.png)


## VPC, 서브넷 및 네트워크 게이트웨이 설정
<a name="use-proxy-server-transparent-setup"></a>

 투명 또는 명시적 프록시 서버에서 AWS CodeBuild 를 실행하려면 다음 단계가 필요합니다.

1. VPC를 생성합니다. 자세한 내용은 Amazon VPC 사용 설명서의 [VPC 생성](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#Create-VPC)을 참조하세요.**

1. VPC에서 서브넷 2개를 만듭니다. 하나는 프록시 서버가 실행되는 `Public Subnet`이라는 퍼블릭 서브넷입니다. 다른 하나는 CodeBuild가 실행되는 `Private Subnet`이라는 프라이빗 서브넷입니다.

   자세한 내용은 [VPC에서 서브넷 만들기](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet) 단원을 참조하십시오.

1.  인터넷 게이트웨이를 생성하여 VPC에 연결합니다. 자세한 내용은 [인터넷 게이트웨이 생성 및 연결](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html#Add_IGW_Attach_Gateway)을 참조하세요.

1.  기본 라우팅 테이블에 VPC(0.0.0.0/0)에서 인터넷 게이트웨이로 가는 트래픽을 라우팅하는 규칙을 추가합니다. 자세한 내용은 [라우팅 테이블에 경로 추가 및 라우팅 테이블에서 경로 제거](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html#AddRemoveRoutes) 단원을 참조하십시오.

1.  VPC의 기본 보안 그룹에 VPC(0.0.0.0/0)로부터 들어오는 SSH 트래픽(TCP 22)을 허용하는 규칙을 추가합니다.

1.  Amazon EC2 인스턴스를 시작하려면 Amazon EC2 사용 설명서에서 [인스턴스 시작 마법사를 사용하여 인스턴스 시작](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launching-instance.html)의 지침을 따르세요.** 마법사를 실행할 때 다음 옵션을 선택합니다.
   +  **인스턴스 유형 선택**에서 Amazon Linux Amazon Machine Image(AMI)를 선택합니다.
   +  **서브넷**에서 이 주제의 앞부분에서 만든 퍼블릭 서브넷을 선택합니다. 제안된 이름을 사용했다면 **퍼블릭 서브넷**입니다.
   +  [**Auto-assign Public IP**]에서 [**Enable**]을 선택합니다.
   +  **보안 그룹 구성** 페이지의 **보안 그룹 할당**에서 **Select an existing security group(기존 보안 그룹 선택)**을 선택합니다. 그런 다음 기본 보안 그룹을 선택합니다.
   +  **시작**을 선택한 후 기존 키 페어를 하나 선택하거나 생성합니다.

    다른 옵션은 모두 기본 설정을 선택합니다.

1.  EC2 인스턴스가 실행되면 원본/대상 확인을 비활성화합니다. 자세한 내용은 Amazon VPC 사용 설명서의 [소스/대상 확인 비활성화](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html#EIP_Disable_SrcDestCheck)를 참조하세요.**

1.  VPC에서 라우팅 테이블을 만듭니다. 라우팅 테이블에 인터넷으로 향하는 트래픽을 프록시 서버로 라우팅하는 규칙을 추가합니다. 이 라우팅 테이블을 프라이빗 서브넷과 연결합니다. 이 단계는 CodeBuild가 실행되는 프라이빗 서브넷 내 인스턴스의 아웃바운드 요청이 항상 프록시 서버를 통해 라우팅되도록 하는 데 필요합니다.

## 프록시 서버 설치 및 구성
<a name="use-proxy-server-squid-install"></a>

 선택할 수 있는 프록시 서버는 많습니다. 오픈 소스 프록시 서버인 Squid는가 프록시 서버에서 어떻게 AWS CodeBuild 실행되는지 보여주는 데 사용됩니다. 동일한 개념을 다른 프록시 서버에도 적용할 수 있습니다.

 Squid를 설치하려면 다음 명령을 실행하여 yum repo를 사용합니다.

```
sudo yum update -y
sudo yum install -y squid
```

 Squid를 설치한 후 이 주제의 뒷부분에 나오는 지침에 따라 `squid.conf` 파일을 편집합니다.

## HTTPS 트래픽에 대해 Squid 구성
<a name="use-proxy-server-squid-configure-https"></a>

 HTTPS의 경우, TLS(전송 계층 보안) 연결에서 HTTP 트래픽이 캡슐화된 것입니다. Squid는 [SslPeekAndSplice](https://wiki.squid-cache.org/Features/SslPeekAndSplice)라는 기능을 사용하여 TLS 초기화에서 요청된 인터넷 호스트를 포함하는 SNI(서버 이름 표시)를 검색합니다. 이는 Squid가 HTTPS 트래픽을 해독할 필요가 없도록 하기 위해 필요합니다. SslPeekAndSplice를 활성화하려면 Squid가 인증서를 요구합니다. OpenSSL을 사용하여 이 인증서를 만듭니다.

```
sudo mkdir /etc/squid/ssl
cd /etc/squid/ssl
sudo openssl genrsa -out squid.key 2048
sudo openssl req -new -key squid.key -out squid.csr -subj "/C=XX/ST=XX/L=squid/O=squid/CN=squid"
sudo openssl x509 -req -days 3650 -in squid.csr -signkey squid.key -out squid.crt
sudo cat squid.key squid.crt | sudo tee squid.pem
```

**참고**  
 HTTP의 경우, Squid를 구성할 필요가 없습니다. 모든 HTTP/1.1 요청 메시지에서 요청되는 인터넷 호스를 지정하는 호스트 헤더 필드를 검색할 수 있습니다.