반응형

목차

  1. VPC 구성
    1. Subnet
    2. Route table
    3. Internet Gateway
    4. VPC 피어링
    5. VPN 연결
    6. 엔드포인트
    7. 플로그 로우
    8. Elastic IP
  2. VPC 보안
    1. Network Access Control List(NACL)
    2. 보안 그룹
    3. NACL vs 보안 그룹
    4. VPC 보안 통제
  3. 아키텍처 티어

VPC

Amazon 가상 프라이빗 클라우드(Virtual Private Cloud, VPC)는 사용자가 정의한 논리적으로 격리된 가상 네트워크에서 AWS 리소스를 실행할 수 있는 서비스입니다. 이 가상 네트워크는 자체 데이터 센터에서 운영하는 기존 네트워크와 매우 유사하며, AWS의 확장 가능한 인프라를 사용할 수 있다는 이점이 있습니다.

Amazon VPC의 주요 구성 요소는 아래와 같습니다.


1. Subnet

Amazon VPC의 서브넷 또는 하위 네트워크는 VPC의 IP 주소 범위입니다. 서브넷을 생성할 때 서브넷에 대한 CIDR 블록(IP 주소 범위)을 지정하며, 이는 VPC CIDR 블록의 하위 집합입니다. 각 서브넷은 서브넷 간의 트래픽을 제어하는 라우트 테이블과 연결되어야 합니다. 

Amazon VPC에는 두 가지 유형의 서브넷이 있습니다.

  1. Public Subnet
    서브넷의 트래픽이 인터넷 게이트웨이로 라우팅되는 경우, 해당 서브넷을 공용 서브넷이라고 합니다. 이는 이 서브넷의 인스턴스가 인터넷에 직접 액세스할 수 있다는 것을 의미합니다.

  2. Private Subnet
    서브넷에 인터넷 게이트웨이로 라우팅되는 경로가 없는 경우, 해당 서브넷을 사설 서브넷이라고 합니다. 이 서브넷의 인스턴스는 인터넷에 직접 액세스할 수 없습니다. 인터넷에 액세스하려면 NAT(네트워크 주소 변환) 게이트웨이 또는 NAT 인스턴스가 필요하며, 이러한 인스턴스는 소프트웨어 업데이트와 같은 작업을 위해 인터넷에 연결할 수 있는 동시에 인터넷이 해당 인스턴스로 다시 연결을 시작하지 못하도록 차단합니다.

각 Amazon VPC는 기본적으로 기본 경로 테이블로 생성되며, 이를 수정할 수 있습니다. VPC에서 추가 사용자 지정 경로 테이블을 만들 수도 있습니다. VPC의 각 서브넷은 라우트 테이블과 연결되어야 하며, 이 테이블은 서브넷의 트래픽을 제어합니다. 서브넷은 한 번에 하나의 라우트 테이블에만 연결할 수 있지만 여러 서브넷을 동일한 라우트 테이블에 연결할 수 있습니다. 

Amazon EC2 인스턴스와 같은 AWS 리소스를 서브넷으로 시작할 수 있습니다. 서브넷을 만들 때 서브넷에 대한 CIDR 블록을 지정하는데, 이 블록은 VPC CIDR 블록의 하위 집합입니다. 각 서브넷은 서브넷과 주고받는 트래픽을 제어하는 라우트 테이블과 연결되어야 합니다. 서브넷을 만들면 자동으로 VPC의 주 라우트 테이블과 연결됩니다. 


2. Route table

 

Amazon VPC의 라우트 테이블은 기본적으로 라우트라고 하는 규칙 집합으로, 네트워크 트래픽이 어디로 어떻게 전달되는지 결정합니다. VPC의 각 서브넷은 라우트 테이블과 연결되어야 하며, 이 테이블은 서브넷의 트래픽 흐름을 제어합니다.

라우트 테이블의 경로는 목적지(CIDR 블록으로 지정됨)와 대상(트래픽을 라우팅할 위치)으로 구성됩니다. 대상은 인터넷 게이트웨이(인터넷 액세스용), 가상 사설 게이트웨이(VPN 연결용), 네트워크 인터페이스, VPC 피어링 연결, NAT 장치 또는 트랜짓 게이트웨이일 수 있습니다. 

라우트 테이블에는 두 가지 유형이 있습니다.

  1. Main Route Table
    모든 VPC에는 모든 서브넷의 기본 트래픽을 제어하는 주 라우트 테이블이 있습니다. 이 테이블은 수정할 수 있습니다.

  2. Custom Route Table
    VPC에서 추가 라우트 테이블을 만들 수 있습니다. VPC의 각 서브넷은 해당 서브넷과 주고받는 트래픽을 제어하는 라우트 테이블과 연결되어야 합니다. 서브넷을 만들면 자동으로 VPC의 주 라우트 테이블에 연결되지만 이 연결을 사용자 지정 라우트 테이블로 변경할 수 있습니다.


경로 테이블에 동일한 목적지로 향하는 경로가 여러 개 있는 경우 AWS는 트래픽과 일치하는 가장 구체적인 경로(CIDR 블록이 가장 작은 경로)를 사용하여 트래픽을 라우팅하는 방법을 결정합니다.

또한 라우트 테이블에는 VPC 외부로 향하는 트래픽을 처리하는 방법, VPN 연결 또는 AWS 다이렉트 커넥트 연결을 통해 온프레미스 네트워크로 돌아가는 방법에 대한 규칙이 포함될 수 있습니다.


3. Internet Gateway

 

인터넷 게이트웨이(IGW)는 Amazon VPC의 핵심 구성 요소로, 인터넷 라우팅 가능한 트래픽에 대해 VPC 라우트 테이블에 대상을 제공하고, 공용 IPv4 주소가 할당된 인스턴스에 대해 네트워크 주소 변환(NAT)을 수행합니다. 

간단히 말해, Amazon VPC와 인터넷 간의 논리적 연결입니다. 수평적 확장이 가능하고 가용성이 높으며 이중화되어 있습니다. 인터넷 게이트웨이는 VPC의 인스턴스와 인터넷 간의 통신을 허용합니다. 특정 인스턴스와 연결되는 것이 아니라 VPC 전체와 연결됩니다. 

다음은 인터넷 게이트웨이의 몇 가지 주요 기능입니다.

  1. 인터넷 트래픽을 위한 경로 제공
    인터넷 게이트웨이는 인터넷 라우팅이 가능한 트래픽에 대해 VPC 라우트 테이블에 대상을 제공하고, 공용 IPv4 주소가 할당된 인스턴스에 대해 NAT(네트워크 주소 변환)를 수행하는 두 가지 용도로 사용됩니다.

  2. VPC의 인스턴스가 인터넷에 직접 액세스할 수 있도록 설정합니다
    VPC에서 인스턴스를 시작할 때 인스턴스에 공용 IP 주소가 있고 서브넷의 라우트 테이블이 인터넷 게이트웨이를 가리키면 인스턴스가 인터넷과 직접 통신할 수 있습니다. 인스턴스는 인터넷에 요청(예: 업데이트 다운로드)을 보내고 응답을 받습니다.

  3. AWS 서비스에 대한 액세스를 허용합니다
    인터넷 게이트웨이를 사용하면 VPC 외부에 있는 Amazon S3 또는 DynamoDB와 같은 다른 AWS 서비스에도 액세스할 수 있습니다.


인터넷 게이트웨이는 VPC와 외부 세계를 연결하는 '문'이라고 생각하면 됩니다. 인터넷 게이트웨이가 없으면 VPC의 리소스는 VPC 외부의 리소스와 통신할 수 없으며, 그 반대의 경우도 마찬가지입니다. 이는 VPC 보안 모델의 중요한 측면입니다.


4. VPC 피어링

VPC 피어링은 두 VPC(가상 프라이빗 클라우드) 간의 네트워킹 연결로, 두 VPC 간에 트래픽을 비공개로 라우팅할 수 있습니다. 자체 VPC 간 또는 단일 리전 내의 다른 AWS 계정에 있는 VPC와 설정할 수 있습니다. 

Amazon은 기존 인프라를 사용하여 VPC 피어링 연결을 생성합니다. 이 연결은 게이트웨이나 VPN 연결이 아니며 별도의 물리적 하드웨어에 의존하지 않습니다. 통신에 대한 단일 장애 지점이나 대역폭 병목 현상이 없습니다. 

다음은 VPC 피어링의 몇 가지 주요 특징입니다.

  1. Network Overlap
    VPC 피어링 연결을 설정하려면 VPC의 IP 주소 범위(CIDR 블록)가 서로 겹치지 않아야 합니다.

  2. Regional Restriction
    2021년 9월에 제가 아는 한, 서로 다른 AWS 리전에 있는 VPC 간에 VPC 피어링 연결을 만들 수 있습니다(리전 간 VPC 피어링이라고도 함).

  3. Transitive Peering
    전이적 피어링은 허용되지 않습니다. 즉, VPC A가 VPC B와 피어링되어 있고 VPC B가 VPC C와 피어링되어 있는 경우, VPC A는 VPC B를 통해 VPC C에 직접 액세스할 수 없으며, VPC A와 VPC C 사이에 별도의 피어링 연결을 설정해야 합니다.

  4. Routing Updates
    각 VPC 피어링 연결에 대해 VPC 경로 테이블의 경로를 수동으로 추가해야 합니다.

  5. Security
    피어 VPC의 보안 그룹은 규칙에 참조할 수 없습니다. 대신, 이 목적을 위해 NACL(네트워크 액세스 제어 목록)을 사용해야 합니다.

  6. Limits
    VPC당 가질 수 있는 VPC 피어링 연결 수에는 제한이 있지만 요청 시 이 제한을 늘릴 수 있습니다.


VPC 피어링은 여러 VPC에서 리소스를 공유하거나 공통 서비스 집합 또는 공유 데이터 리포지토리에 대한 보안 액세스를 제공하는 등의 시나리오에서 유용할 수 있습니다.


5. VPN 연결

AWS의 VPN(가상 사설망, Virtual Private Network) 연결은 온프레미스 네트워크(예: 데이터 센터 또는 기업 네트워크)와 Amazon VPC 간의 사설 네트워크 트래픽을 보호하는 방법입니다. 데이터를 공용 인터넷에 노출하지 않기 위해 프라이빗 네트워크를 클라우드로 확장합니다.

생성할 수 있는 VPN 연결에는 두 가지 유형이 있습니다:

  1. 사이트 간(Site-to-Site) VPN 연결
    하드웨어 VPN 연결이라고도 합니다. 한쪽 끝의 네트워크 라우터와 AWS 측의 VPN 엔드포인트(가상 사설 게이트웨이 또는 트랜짓 게이트웨이) 사이에 설정됩니다. 이를 통해 전체 온프레미스 네트워크를 VPC 및 모든 AWS 서비스에 연결할 수 있습니다. 마치 자체 데이터 센터 네트워크를 클라우드로 확장하는 것과 같습니다. 연결은 데이터를 암호화하는 IPsec(인터넷 프로토콜 보안)으로 보호됩니다.

  2. 클라이언트(Client) VPN 연결
    온프레미스 네트워크의 AWS 리소스 및 리소스에 안전하게 액세스할 수 있는 관리형 클라이언트 기반 VPN 서비스입니다. 클라이언트 VPN을 사용하면 OpenVPN 기반 VPN 클라이언트를 사용하여 어느 위치에서나 리소스에 액세스할 수 있습니다.


두 VPN 연결 유형 모두 네트워크 트래픽을 위한 안전한 비공개 터널을 제공합니다. 하지만 서로 다른 용도로 사용됩니다. 사이트 간 VPN은 네트워크를 연결하고 네트워크 간 트래픽을 라우팅하는 데 더 적합한 반면, 클라이언트 VPN은 네트워크 또는 리소스에 대한 개별 클라이언트의 액세스에 더 적합합니다. 

VPN 연결을 설정하려면 AWS 측과 고객 측 모두에서 구성이 필요하다는 점을 기억하세요. AWS 측에서는 VPN 연결(가상 사설 게이트웨이 또는 트랜짓 게이트웨이, 고객 게이트웨이 및 실제 VPN 연결)을 구성합니다. 고객 측에서는 고객 게이트웨이 장치를 구성합니다. 


6. 엔드포인트

 

Amazon VPC에서 "엔드포인트"는 일반적으로 VPC 엔드포인트를 의미하며, 이는 NAT 장치, VPN 연결 또는 AWS 다이렉트 커넥트 연결을 통해 인터넷을 통해 액세스할 필요 없이 VPC와 지원되는 AWS 서비스 간에 직접 통신할 수 있는 가상 장치입니다.

VPC 엔드포인트에는 두 가지 유형이 있습니다:

  1. 게이트웨이 엔드포인트(Gateway Endpoints)
    이는 라우트 테이블의 라우트 대상이며 Amazon S3 또는 Amazon DynamoDB로 향하는 트래픽에 사용됩니다(2021년 9월 지식 차단 시점 기준). 이러한 서비스로 향하는 트래픽은 인터넷을 통해 통신하거나 데이터를 전송하는 대신 Amazon 네트워크 내의 게이트웨이 엔드포인트를 통해 해당 서비스로 연결되므로 보다 안전하고 효율적인 연결이 가능합니다.

  2. 인터페이스 엔드포인트(Interface Endpoints)
    인터페이스 엔드포인트는 기본적으로 프라이빗 IP 주소가 있는 Elastic 네트워크 인터페이스(ENI)로, AWS PrivateLink를 지원하는 서비스로 향하는 트래픽의 진입점 역할을 합니다. AWS PrivateLink는 인터넷 게이트웨이가 필요 없는 방식으로 서비스에 액세스할 수 있도록 설계된 기술로, 개인정보 보호와 보안을 강화합니다. 많은 AWS 서비스가 API 게이트웨이, CloudFormation, CloudTrail, CodeBuild, EC2 API 등과 같은 인터페이스 엔드포인트를 지원합니다.


엔드포인트는 모든 트래픽을 AWS 네트워크 내에 유지하려는 경우 또는 엄격한 규정 준수 및 감사 요구 사항이 있어 인터넷을 통해 AWS 서비스에 연결할 수 없는 경우에 매우 유용합니다. 엔드포인트를 사용하면 다른 AWS 서비스와의 통신에서 개인정보 보호 및 보안을 개선할 수 있습니다.


7. 플로우 로그

 

VPC 플로우 로그는 VPC의 네트워크 인터페이스를 오가는 IP 트래픽에 대한 정보를 캡처할 수 있는 Amazon VPC의 기능입니다. 플로우 로그 데이터는 Amazon CloudWatch Logs 또는 Amazon S3를 사용하여 저장되며, 이를 사용하여 특정 트래픽이 인스턴스에 도달하지 못하는 이유를 해결하거나 인스턴스에 도달하는 트래픽을 모니터링할 수 있습니다.

  • 플로우 로그는 세 가지 수준에서 생성할 수 있습니다
    VPC, 서브넷 또는 네트워크 인터페이스 수준. VPC에 대한 플로우 로그를 만들면 해당 VPC의 모든 네트워크 인터페이스가 모니터링됩니다. 서브넷에 대한 플로우 로그를 만들면 해당 서브넷의 모든 네트워크 인터페이스가 모니터링됩니다. 그리고 네트워크 인터페이스에 대한 플로우 로그를 만들면 해당 인터페이스만 모니터링됩니다.


각 플로우 로그 레코드는 다음과 같은 세부 정보를 캡처합니다.

  1. 소스 IP 주소
  2. 대상 IP 주소
  3. 소스 포트
  4. 대상 포트
  5. 프로토콜(TCP, UDP, ICMP)
  6. 패킷 수
  7. 바이트 수
  8. 캡처 창의 시작 및 종료 시간
  9. 동작(수락 또는 거부)


플로우 로그는 네트워크 인터페이스에 대한 실시간 로그 스트림을 캡처하지 않는다는 점에 유의해야 합니다. 또한 모든 IP 트래픽을 캡처하지도 않습니다. 예를 들어 Amazon DNS 서버, DHCP 트래픽 또는 메타데이터 서비스와 주고받는 트래픽과 관련된 트래픽은 캡처하지 않습니다.

VPC 플로우 로그는 보안 분석, 네트워크 문제 해결, 네트워크 성능 이해를 위한 강력한 도구가 될 수 있습니다.


8. Elastic IP


Elastic IP 주소(EIP)는 동적 클라우드 컴퓨팅을 위해 설계된 정적 IPv4 주소입니다. EIP를 사용하면 계정의 다른 인스턴스로 주소를 빠르게 리매핑하여 인스턴스나 소프트웨어의 장애를 숨길 수 있습니다. 

EIP는 특정 인스턴스가 아닌 AWS 계정과 연결되며, 명시적으로 해제할 때까지 계정에 연결된 상태로 유지됩니다. 그러나 기존의 고정 IP 주소와 달리, EIP를 사용하면 프로그래밍 방식으로 공용 IP 주소를 계정에 연결된 인스턴스에 다시 매핑하여 인스턴스 또는 가용 영역 장애를 숨길 수 있습니다. 

EIP를 인스턴스와 연결하면 인스턴스의 현재 공인 IP 주소가 다시 공인 IP 주소 풀에 공개됩니다. 인스턴스에서 EIP 연결을 해제하면 몇 분 내에 인스턴스에 새 공인 IP 주소가 자동으로 할당됩니다. 

단일 서버에서 여러 SSL 인증서를 사용하고 각 인증서를 특정 EIP 주소에 연결하여 단일 서버에서 여러 웹사이트를 호스팅하는 데 EIP를 사용할 수 있습니다. 

실행 중인 인스턴스와 연결할 경우 EIP는 무료이지만, 할당되었지만 실행 중인 인스턴스와 연결되지 않은 EIP에 대해서는 AWS에서 요금을 부과합니다. 이는 AWS 에코시스템 내에서 한정된 수의 사용 가능한 EIP를 필요한 경우에만 사용하도록 장려하기 위한 것입니다. 


Amazon VPC는 인스턴스 및 서브넷 수준에서 인바운드 및 아웃바운드 필터링을 활성화하는 보안 그룹 및 네트워크 액세스 제어 목록과 같은 고급 보안 기능을 제공합니다. 또한 기업 데이터 센터와 VPC 간에 하드웨어 VPN(가상 사설망) 연결을 생성하여 AWS 클라우드를 기업 데이터 센터의 확장으로 활용할 수 있습니다.


 

 

 

반응형