

# 미들박스 시나리오
<a name="middlebox-routing-examples"></a>

Amazon Virtual Private Cloud(VPC)는 가상 네트워크 내에서 트래픽의 라우팅을 사용자 지정하고 제어할 수 있는 다양한 네트워킹 기능을 제공합니다. 이러한 기능 중 하나인 미들박스 라우팅 마법사를 사용하여 VPC로 들어오고 나가는 트래픽의 라우팅 경로를 세밀하게 제어할 수 있습니다.

검사, 모니터링 또는 최적화 목적으로 트래픽을 보안 어플라이언스, 로드 밸런서 또는 기타 네트워크 디바이스로 리디렉션해야 하는 경우 미들박스 라우팅 마법사를 사용하여 프로세스를 간소화할 수 있습니다. 이 마법사는 필요한 라우팅 테이블과 경로(홉)를 자동으로 생성하여 필요에 따라 지정된 트래픽을 리디렉션하므로 복잡한 라우팅 구성을 설정하기 위한 수동 작업이 필요하지 않습니다.

미들박스 라우팅 마법사는 여러 시나리오를 지원합니다. 예를 들어, 이를 사용하여 특정 서브넷으로 향하는 트래픽을 검사하거나, 전체 VPC에 대한 미들박스 트래픽 라우팅 및 검사를 구성하거나, 특정 서브넷 간의 트래픽을 선택적으로 검사할 수 있습니다. 이렇게 세분화된 트래픽 라우팅 제어를 통해 고급 보안 정책을 이행하거나, 중앙 집중식 네트워크 모니터링을 활성화하거나, 클라우드 기반 애플리케이션의 성능을 최적화할 수 있습니다.

다음 예에서는 미들박스 라우팅 마법사의 시나리오를 설명합니다.

**Topics**
+ [

# 서브넷을 대상으로 하는 트래픽 검사
](internet-gateway-subnet.md)
+ [

# VPC에서 미들박스 트래픽 라우팅 및 검사 구성
](gwlb-route.md)
+ [

# 서브넷 간 트래픽 검사
](intra-vpc-route.md)

# 서브넷을 대상으로 하는 트래픽 검사
<a name="internet-gateway-subnet"></a>

인터넷 게이트웨이를 통해 VPC 로 들어오는 트래픽이 있고, EC2 인스턴스에 설치된 방화벽 어플라이언스를 사용하여 서브넷(서브넷 B로 가정)을 대상으로 하는 모든 트래픽을 검사하려는 시나리오를 생각해봅시다. 방화벽 어플라이언스는 VPC의 서브넷 B와는 별도인 서브넷(서브넷 C로 가정)의 EC2 인스턴스에 설치 및 구성해야 합니다. 그런 다음 미들박스 라우팅 마법사를 사용하여 서브넷 B와 인터넷 게이트웨이 간의 트래픽 경로를 구성할 수 있습니다.

 미들박스 라우팅 마법사는 다음의 작업을 자동으로 수행합니다.
+ 다음의 라우팅 테이블을 생성합니다.
  + 인터넷 게이트웨이의 라우팅 테이블
  + 대상 서브넷의 라우팅 테이블 
  + 미들박스 서브넷의 라우팅 테이블
+ 다음 단원에 설명된 내용에 따라 필요한 라우팅을 새 라우팅 테이블에 추가합니다.
+ 인터넷 게이트웨이, 서브넷 B 및 서브넷 C와 연결된 현재 라우팅 테이블의 연결을 해제합니다.
+ 라우팅 테이블 A를 인터넷 게이트웨이(미들박스 라우팅 마법사의 **소스(Source)**)와 연결하고 라우팅 테이블 C를 서브넷 C(미들박스 라우팅 마법사의 **미들박스(Middlebox)**)와 연결하고 라우팅 테이블 B를 서브넷 B(미들박스 라우팅 마법사의 **대상(Destination)**)과 연결합니다.
+ 미들박스 라우팅 마법사에 의해 생성되었음을 나타내는 태그와 생성 날짜를 나타내는 태그를 생성합니다.

미들박스 라우팅 마법사는 기존 라우팅 테이블을 수정하지 않습니다. 새 라우팅 테이블을 생성한 다음 게이트웨이 및 서브넷 리소스와 연결합니다. 리소스가 이미 기존 라우팅 테이블과 명시적으로 연결되어 있는 경우 기존 라우팅 테이블의 연결이 우선적으로 해제된 다음 새 라우팅 테이블이 리소스와 연결됩니다. 기존 라우팅 테이블은 삭제되지 않습니다.

미들박스 라우팅 마법사를 사용하지 않는 경우 서브넷과 인터넷 게이트웨이에 라우팅 테이블을 수동으로 구성한 다음 할당해야 합니다.

![\[VPC로의 인바운드 라우팅\]](http://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/images/ingress-routing-firewall-ipv6.png)


## 인터넷 게이트웨이 라우팅 테이블
<a name="internet-gateway-igw-route-table"></a>

인터넷 게이트웨이의 라우팅 테이블에 다음의 경로를 추가합니다.


| 대상 주소 | 대상 | 용도 | 
| --- | --- | --- | 
| 10.0.0.0/16 | 로컬 | IPv4에 대한 로컬 경로 | 
| 10.0.1.0/24 | appliance-eni | 서브넷 B를 대상으로 하는 IPv4 트래픽을 미들박스로 라우팅 | 
| 2001:db8:1234:1a00::/56 | 로컬 | IPv6에 대한 로컬 경로 | 
| 2001:db8:1234:1a00::/64 | appliance-eni | 서브넷 B를 대상으로 하는 IPv6 트래픽을 미들박스로 라우팅 | 

인터넷 게이트웨이와 VPC 간에는 엣지 연결이 있습니다.

미들박스 라우팅 마법사를 사용하면 다음의 태그가 라우팅 테이블과 연결됩니다.
+ 키는 “Origin”이고 값은 “미들박스 마법사”입니다.
+ 키는 “date\$1created”이고 값은 생성 시간입니다(예: “2021-02-18T22:25:49.137Z”)

## 대상 서브넷 라우팅 테이블
<a name="internet-gateway-subnet-route-table"></a>

대상 서브넷(예제 다이어그램의 서브넷 B)에 대한 라우팅 테이블에 다음 경로를 추가합니다.


| 대상 주소 | 대상 | 용도 | 
| --- | --- | --- | 
| 10.0.0.0/16 | 로컬 | IPv4에 대한 로컬 경로 | 
| 0.0.0.0/0 | appliance-eni | 인터넷을 대상으로 하는 IPv4 트래픽을 미들박스로 라우팅 | 
| 2001:db8:1234:1a00::/56 | 로컬 | IPv6에 대한 로컬 경로 | 
| ::/0 | appliance-eni | 인터넷을 대상으로 하는 IPv6 트래픽을 미들박스로 라우팅 | 

미들박스 서브넷과의 서브넷 연결이 있습니다.

미들박스 라우팅 마법사를 사용하면 다음의 태그가 라우팅 테이블과 연결됩니다.
+ 키는 “Origin”이고 값은 “미들박스 마법사”입니다.
+ 키는 “date\$1created”이고 값은 생성 시간입니다(예: “2021-02-18T22:25:49.137Z”)

## 미들박스 서브넷 라우팅 테이블
<a name="internet-gateway-middlebox-subnet-route-table"></a>

대상 서브넷(예제 다이어그램의 서브넷 C)에 대한 라우팅 테이블에 다음 경로를 추가합니다.


| 대상 주소 | 대상 | 용도 | 
| --- | --- | --- | 
| 10.0.0.0/16 | 로컬 | IPv4에 대한 로컬 경로 | 
| 0.0.0.0/0 | igw-id | IPv4 트래픽을 인터넷 게이트웨이로 라우팅 | 
| 2001:db8:1234:1a00::/56 | 로컬 | IPv6에 대한 로컬 경로 | 
| ::/0 | eigw-id | 송신 전용 인터넷 게이트웨이로 IPv6 트래픽 라우팅 | 

대상 서브넷과의 서브넷 연결이 있습니다.

미들박스 라우팅 마법사를 사용하면 다음의 태그가 라우팅 테이블과 연결됩니다.
+ 키는 “Origin”이고 값은 “미들박스 마법사”입니다.
+ 키는 “date\$1created”이고 값은 생성 시간입니다(예: “2021-02-18T22:25:49.137Z”)

# VPC에서 미들박스 트래픽 라우팅 및 검사 구성
<a name="gwlb-route"></a>

Gateway Load Balancer 뒤에 구성된 보안 어플라이언스 플릿을 사용하여 인터넷 게이트웨이에서 VPC로 들어오고 서브넷을 대상으로 하는 트래픽을 검사해야 하는 시나리오를 고려합니다. 서비스 소비자 VPC의 소유자는 VPC의 서브넷에 Gateway Load Balancer 엔드포인트를 생성합니다(엔드포인트 네트워크 인터페이스로 표시됨). 인터넷 게이트웨이를 통해 VPC로 들어오는 모든 트래픽은 먼저 검사할 수 있도록 Gateway Load Balancer 엔드포인트로 라우팅된 후 애플리케이션 서브넷으로 라우팅됩니다. 마찬가지로 애플리케이션 서브넷에서 나가는 모든 트래픽은 검사할 수 있도록 먼저 Gateway Load Balancer 엔드포인트로 라우팅된 후 인터넷으로 라우팅됩니다.

미들박스 라우팅 마법사는 다음의 작업을 자동으로 수행합니다.
+ 라우팅 테이블을 생성합니다.
+ 필요한 경로를 새 라우팅 테이블에 추가합니다.
+ 서브넷과 연결된 현재 라우팅 테이블의 연결을 해제합니다.
+ 미들박스 라우팅 마법사가 생성하는 라우팅 테이블을 서브넷과 연결합니다.
+ 미들박스 라우팅 마법사에 의해 생성되었음을 나타내는 태그와 생성 날짜를 나타내는 태그를 생성합니다.

미들박스 라우팅 마법사는 기존 라우팅 테이블을 수정하지 않습니다. 새 라우팅 테이블을 생성한 다음 게이트웨이 및 서브넷 리소스와 연결합니다. 리소스가 이미 기존 라우팅 테이블과 명시적으로 연결되어 있는 경우 기존 라우팅 테이블의 연결이 우선적으로 해제된 다음 새 라우팅 테이블이 리소스와 연결됩니다. 기존 라우팅 테이블은 삭제되지 않습니다.

미들박스 라우팅 마법사를 사용하지 않는 경우 서브넷과 인터넷 게이트웨이에 라우팅 테이블을 수동으로 구성한 다음 할당해야 합니다.

![\[Gateway Load Balancer 엔드포인트를 사용하여 엔드포인트 서비스에 액세스\]](http://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/images/vpc-endpoint-service-gwlbe.png)


## 인터넷 게이트웨이 라우팅 테이블
<a name="igw-route-table-table"></a>

인터넷 게이트웨이의 라우팅 테이블에는 다음의 경로가 포함됩니다.


| 대상 주소 | 대상 | 용도 | 
| --- | --- | --- | 
| 소비자 VPC CIDR | 로컬 | 로컬 경로 | 
| 애플리케이션 서브넷 CIDR | endpoint-id | 애플리케이션 서브넷을 대상으로 하는 트래픽을 Gateway Load Balancer 엔드포인트로 라우팅 | 

게이트웨이와의 엣지 연결이 있습니다.

미들박스 라우팅 마법사를 사용하면 다음의 태그가 라우팅 테이블과 연결됩니다.
+ 키는 “Origin”이고 값은 “미들박스 마법사”입니다.
+ 키는 “date\$1created”이고 값은 생성 시간입니다(예: “2021-02-18T22:25:49.137Z”)

## 애플리케이션 서브넷 라우팅 테이블
<a name="subnet1-route-table-table"></a>

애플리케이션 서브넷의 라우팅 테이블에는 다음과 같은 경로가 있습니다.


| 대상 주소 | 대상 | 용도 | 
| --- | --- | --- | 
| 소비자 VPC CIDR | 로컬 | 로컬 경로 | 
| 0.0.0.0/0 | endpoint-id | 애플리케이션 서버에서 트래픽이 인터넷으로 라우팅되기 전에 Gateway Load Balancer 엔드포인트로 라우팅 | 

미들박스 라우팅 마법사를 사용하면 다음의 태그가 라우팅 테이블과 연결됩니다.
+ 키는 “Origin”이고 값은 “미들박스 마법사”입니다.
+ 키는 “date\$1created”이고 값은 생성 시간입니다(예: “2021-02-18T22:25:49.137Z”)

## 공급자 서브넷 라우팅 테이블
<a name="subnet2-route-table"></a>

공급자 서브넷의 라우팅 테이블에는 다음과 같은 경로가 있습니다.


| 대상 주소 | 대상 | 용도 | 
| --- | --- | --- | 
| 공급자 VPC CIDR | 로컬 | 로컬 경로 인터넷에서 시작된 트래픽이 애플리케이션 서버로 라우팅되는지 확인 | 
| 0.0.0.0/0 | igw-id | 모든 트래픽을 인터넷 게이트웨이로 라우팅 | 

미들박스 라우팅 마법사를 사용하면 다음의 태그가 라우팅 테이블과 연결됩니다.
+ 키는 “Origin”이고 값은 “미들박스 마법사”입니다.
+ 키는 “date\$1created”이고 값은 생성 시간입니다(예: “2021-02-18T22:25:49.137Z”)

# 서브넷 간 트래픽 검사
<a name="intra-vpc-route"></a>

VPC에 여러 개의 서브넷이 있고 방화벽 어플라이언스를 통해 해당 서브넷 간의 트래픽을 검사하려는 시나리오를 생각해봅시다. VPC에 별도의 서브넷에 있는 EC2 인스턴스에 방화벽 어플라이언스를 구성하고 설치합니다.

다음 다이어그램은 서브넷 C의 EC2 인스턴스에 설치된 방화벽 어플라이언스를 보여줍니다. 해당 어플라이언스는 서브넷 A에서 서브넷 B로(1 참조), 서브넷 B에서 서브넷 A(2 참조)로 이동하는 트래픽을 모두 검사합니다.

![\[서브넷 트래픽 검사\]](http://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/images/middlebox-intra-vpc_updated.png)


VPC 및 미들박스 서브넷에 대한 기본 라우팅 테이블을 사용합니다. 서브넷 A와 B에는 각각 사용자 지정 라우팅 테이블이 있습니다.

미들박스 라우팅 마법사는 다음의 작업을 자동으로 수행합니다.
+ 라우팅 테이블을 생성합니다.
+ 필요한 경로를 새 라우팅 테이블에 추가합니다.
+ 서브넷과 연결된 현재 라우팅 테이블의 연결을 해제합니다.
+ 미들박스 라우팅 마법사가 생성하는 라우팅 테이블을 서브넷과 연결합니다.
+ 미들박스 라우팅 마법사에 의해 생성되었음을 나타내는 태그와 생성 날짜를 나타내는 태그를 생성합니다.

미들박스 라우팅 마법사는 기존 라우팅 테이블을 수정하지 않습니다. 새 라우팅 테이블을 생성한 다음 게이트웨이 및 서브넷 리소스와 연결합니다. 리소스가 이미 기존 라우팅 테이블과 명시적으로 연결되어 있는 경우 기존 라우팅 테이블의 연결이 우선적으로 해제된 다음 새 라우팅 테이블이 리소스와 연결됩니다. 기존 라우팅 테이블은 삭제되지 않습니다.

미들박스 라우팅 마법사를 사용하지 않는 경우 서브넷과 인터넷 게이트웨이에 라우팅 테이블을 수동으로 구성한 다음 할당해야 합니다.

## 서브넷 A에 대한 사용자 지정 라우팅 테이블
<a name="subneta-route-table-table"></a>

서브넷 A의 라우팅 테이블에는 다음과 같은 경로가 있습니다.


| 대상 주소 | 대상 | 용도 | 
| --- | --- | --- | 
| VPC CIDR | 로컬 | 로컬 경로 | 
| 서브넷 B CIDR | appliance-eni | 서브넷 B를 대상으로 하는 트래픽을 미들박스로 라우팅 | 

미들박스 라우팅 마법사를 사용하면 다음의 태그가 라우팅 테이블과 연결됩니다.
+ 키는 “Origin”이고 값은 “미들박스 마법사”입니다.
+ 키는 “date\$1created”이고 값은 생성 시간입니다(예: “2021-02-18T22:25:49.137Z”)

## 서브넷 B에 대한 사용자 지정 라우팅 테이블
<a name="subnetb-route-table-table"></a>

서브넷 B의 라우팅 테이블에는 다음과 같은 경로가 있습니다.


| 대상 주소 | 대상 | 용도 | 
| --- | --- | --- | 
| VPC CIDR | 로컬 | 로컬 경로 | 
| 서브넷 A CIDR | appliance-eni | 서브넷 A를 대상으로 하는 트래픽을 미들박스로 라우팅 | 

미들박스 라우팅 마법사를 사용하면 다음의 태그가 라우팅 테이블과 연결됩니다.
+ 키는 “Origin”이고 값은 “미들박스 마법사”입니다.
+ 키는 “date\$1created”이고 값은 생성 시간입니다(예: “2021-02-18T22:25:49.137Z”)

## 기본 라우팅 테이블
<a name="example-main-route-table"></a>

서브넷 C는 기본 라우팅 테이블을 사용합니다. 기본 라우팅 테이블에는 다음과 같은 경로가 있습니다.


| 대상 주소 | 대상 | 용도 | 
| --- | --- | --- | 
| VPC CIDR | 로컬 | 로컬 경로 | 

미들박스 라우팅 마법사를 사용하면 다음의 태그가 라우팅 테이블과 연결됩니다.
+ 키는 “Origin”이고 값은 “미들박스 마법사”입니다.
+ 키는 “date\$1created”이고 값은 생성 시간입니다(예: “2021-02-18T22:25:49.137Z”)