본문 바로가기

Information/[AWS]

[AWS] Network - AWS 인터넷 연결

A. 인터넷 연결 방안

1. 인터넷 게이트웨이

1-1. 특징

  • 확장성과 가용성이 있는 VPC 구성요소로 VPC와 인터넷 간에 통신할 수 있게 해줍니다.
  • 퍼블릭 IPv4 주소가 할당된 인스턴스에 대해 1:1 IPv4 주소 변환을 수행합니다.
  • 인터넷 게이트웨이는 IP변환에만 관여하고 포트 변환에는 관여하지 않습니다.
  • IPv4, IPv6 트래픽을 지원합니다.

1-2. 동작 순서

1. 내부 인스턴스 에서 외부 웹서버로 HTTP 접속을 시도합니다. 이때, 출발지 IP를 100.0.0.10으로 하여 요청 트래픽을 생성하여 보내게 됩니다.

2. 인터넷 게이트웨이는 출발지 IP 확인 후 자신이 가지고 있는 NAT 정보에 의해 출발지 IP를 50.1.1.1로 변경하는 NAT 동작을 수행합니다.

3. 외부 웹서버에서 요청을 처리하고 응답 트래픽을 보냅니다. 당연히 응답 트래픽의 출발지와 목적지 IP는 뒤바뀌게 됩니다.

4. 인터넷 게이트웨이는 다시 한번 NAT 정보에 의해 목적지 IP를 50.1.1.1에서 100.0.0.10으로 변경하고 VPC 내부로 전달하여 최종적으로 내부 인스턴스로 도달하게 됩니다.

1-3. 제약사항

  • 하나의 VPC에는 한 개의 인터넷 게이트웨이만 사용할 수 있습니다.
  • VPC와 인터넷 게이트웨이 최대 할당량은 동일하게 적용됩니다. 리전 VPC의 기본 할당량은 5개이고 필요시 케이스 오픈으로 리전당 최대 100개까지 증가할 수 있습니다.

2. NAT 디바이스

NAT 디바이스는 NAT 인스턴스와 NAT 게이트웨이를 통칭하는 말입니다. 기본적으로 내부에서 외부 인터넷으로만 통신이 가능하며, 인터넷 게이트웨이와는 다르게 외부 인터넷에서 내부 AWS 구간으로 직접 통신은 불가능합니다.

2-1. 특징

NAT gateway

  • NAT 인스턴스 : 소규모의 트래픽만 발생하고 서비스 중요도가 낮은 경우 저렴한 비용의 NAT 인스턴스가 추천됩니다.

NAT Instance

  • NAT 게이트웨이 : 트래픽이 대규모로 발생하거나 서비스 중요도가 높은 경우에는 더 나은 가용성과 향상된 대역폭을 제공하면서도 관리 작업은 간소화하는 관리형 NAT 서비스인 NAT 게이트웨이가 추천됩니다.

2-2. 동작 순서

NAT 인스턴스와 NAT 게이트웨이의 외부 접속 동작 방식은 유사하여 NAT 인스턴스를 기준으로 하여 설명합니다.

1. 내부 인스턴스(a.a.a.a)에서 외부 웹서버(100.0.0.1)로 HTTP 접속을 시도합니다. 프라이빗 서브넷 라우팅 테이블에 따라서 NAT 인스턴스로 트래픽을 보내게 됩니다.

2. NAT 인스턴스는 IP masquerading 기능을 통해서 출발지 IP(a.a.a.a->a.a.b.b)와 포트번호를 변환하고 정보를 기록합니다. 이후 퍼블릭 서브넷 라우팅 테이블에 따라서 인터넷 게이트웨이로 트래픽을 보내게 됩니다.

3. 인터넷 게이트웨이는 프라이빗 IP와 탄력적 IP간의 IP 변환을 수행합니다. 출발지 IP를 10.40.1.100에서 A.A.A.A로 변환하고 외부 인터넷 트래픽을 보냅니다.

4. 외부 웹서버(100.0.0.1)에서 요청을 처리하고 응답 트래픽을 보냅니다.

5. 인터넷 게이트웨이에 인입된 트래픽은 목적지 IP를 A.A.A.A에서 a.a.b.b로 IP변환하여 VPC 내부로 ㄴ보냅니다.

6. NAT 인스턴스는 변환정보에 따라서 출발지 IP(a.a.b.b -> a.a.a.a)와 포트번호를 변환하여 프라이빗 서브넷으로 보냅니다.

7. 최종적으로 응답 트래픽이 내부 인스턴스(a.a.a.a)로 도달하게 됩니다.

추가로, 다수의 내부 인스턴스가 외부로 접속 시도를하여도 동일한 방법으로 동작을 합니다. 동일한 IP로 NAT가 되어도 각각의 내부 인스턴스의 출발한 패킷의 출발지 포트번호가 다르기 때문에 구분을 할 수 있습니다.

2-3. 제약사항 (NAT 게이트웨이)

  • NAT 게이트웨이는 5Gbps의 대역폭을 지원하며, 최대 45Gbps까지 자동 확장합니다.
  • NAT 게이트웨이는 단일 대상에 대해 분당 최대 55,000개의 동시 연결을 지원할 수 있습니다.
  • NAT 게이트웨이는 가용 영역당 기본 할당량은 5개이며, 그 이상 필요할 경우 AWS에 요청하여야 합니다.

3. Proxy 인스턴스

3-1. 특징

Proxy는 일종의 대리자로 클라이언트와 서버 중간에 통신을 대신 처리해주는 역할을 합니다. Proxy가 클라이언트의 통신을 대신 처리하기 때문에 서버의 입장에서는 마치 Proxy와 통신을 하는 것으로 보입니다. HTTP 통신을 Proxy로 보내는 설정과 같이 클라이언트는 기존 애플리에케이션 통신을 Proxy로 보내기 위한 설정이 필요합니다.

3-2. 동작 순서

1. EC2 인스턴스에 HTTP(S) 경우 Proxy 인스턴스로(10.0.0.10)로 보낼 수 있게 아래와 같은 설정이 필요합니다. EC2에서 외부 HTTP(S) 통신 시 목적지 IP는 Proxy 인스턴스로 보내게 됩니다.

2. EC2 인스턴스에서 요청한 패킷을 Proxy 인스턴스가 대신하여 웹서버와 연결을 만듭니다. 이때 출발지 IP는 Proxy 인스턴스의 IP입니다. 프라이빗 IP(10.1.1.10)이지만 인터넷 게이트웨이에서 탄력적 IP(54.1.1.1)로 변환됩니다. 그리고 목적지 IP는 해당 웹서버 DNS 질의 응답 값인 60.1.1.1로 보내게 됩니다.

3. Proxy 인스턴스와 웹 서버 간은 새로운 TCP 연결을 만들기에, 출발지 포트 번호는 임시 포트중에 선택하고 목적지 포트는 웹서버이므로 80을 선택하게 됩니다.

4. HTTP 헤더는 EC2 인스턴스가 요청한 내용을 포함하여 전달합니다.

'Information > [AWS]' 카테고리의 다른 글

[AWS] Network - Route 53  (1) 2024.06.03
[AWS] Network - ELB(Elastic Load Balancing)  (0) 2024.05.31
[AWS] Network - 퍼블릭 서브넷 VPC 생성  (0) 2024.05.26
[AWS] Network - VPC 정리  (0) 2024.05.26
[AWS] AWS 인프라 개요  (0) 2024.05.26