AWS

AWS Educate: AWS Networking

hyeoni__ 2024. 6. 5. 18:03
Amazon VPC

 

Virtual Private Cloud(VPC)는 AWS에서 제공하는 가상의 프라이빗 네트워크로 VPC를 사용하면 AWS 리소스에 대해 사용자 정의가 가능한 가상 네트워크를 설정할 수 있습니다. 즉, VPC는 AWS 클라우드 안에 사용자만의 독립된 네트워크 환경을 구축할 수 있게 해줍니다.  Amazon VPC를 활용하면 온프레미스 데이터 센터에서 직접 네트워크 환경을 만드는 것과 같은 방식으로 클라우드 환경에서도 네트워크를 구축할 수 있습니다.

 

VPC의 구성요소

 

  • 리전

AWS가 전 세계적으로 분리된 데이터 센터의 물리적 위치를 말합니다. 사용자는 애플리케이션의 요구 사항에 따라 리전을 선택할 수 있고 각 리전은 서로 독립적입니다.

 

  • 가용영역(Availability Zone, AZ)

AWS에서 제공하는 지리적으로 분리된 데이터 센터 그룹을 의미합니다. 각 가용영역은 하나 이상의 데이터 센터로 구성되어 있으며, 높은 가용성과 내결함성을 가지고 있습니다.

 

  • 서브넷(Subnet)

서브넷(Subnet) VPC 내의 IP 주소 범위를 더 작은 네트워크 단위로 나눈 것입니다. 서브넷은 특정 가용 영역(Availability Zone)에 속해 있으며, VPC의 IP 주소 범위(CIDR 블록)를 작은 네트워크 범위로 나누어 구성합니다. 서브넷을 생성할때에는 해당 서브넷에 주소를 지정해야하며,  한 개의 가용영역 안에서만 존재해야 합니다. EC2 인스턴스는 반드시 서브넷 내에 있어야하고 한 번 서브넷에 배치된 인스턴스는 다른 서브넷으로 옮길 수 없습니다. 리소스를 논리적으로 그룹화하고, 트래픽을 제어할 수 있고 서브넷은 퍼블릭 서브넷과 프라이빗 서브넷으로 구분됩니다.  

  • 퍼블릭 서브넷: 인터넷 게이트웨이와 연결되어 인터넷과 통신할 수 있습니다. 여기서는 누구나 액세스할 수 있는 리소스가 포함 되어야합니다.
  • 프라이빗 서브넷: 인터넷과 직접 연결되지 않으며, NAT 게이트웨이 또는 VPN을 통해 외부와 통신합니다. 여기서는 데이터베이스와 같이 프라이빗 네트워크를 통해서만 액세스할 수 있는 리소스가 포함됩니다. 

 

  • 인터넷 게이트웨이

인터넷 게이트웨이(Internet Gateway)VPC와 인터넷 간의 논리적인 연결입니다. 쉽게 말해, VPC에서 인터넷으로 나가는 관문이라고 생각하면 됩니다. 인터넷 게이트웨이는 퍼블릭 서브넷의 인스턴스가 외부 클라이언트나 서버와 통신할 수 있도록 하는데 사용됩니다. 이러한 인터넷 게이트웨이는 VPC당 1개만 연결할 수 있고 인터넷 게이트웨이를 통해 VPC 내부의 리소스가 인터넷과 통신할 수 있게 됩니다. 인터넷 게이트웨이는 VPC 내의 퍼블릭 서브넷에 배치된 인스턴스가 인터넷으로 트래픽을 송수신할 수 있도록 지원하며, 인터넷으로부터 VPC로 들어오는 트래픽도 처리합니다.

 

  • NAT 게이트웨이

NAT 게이트웨이 (Network Address Translation Gateway)는 프라이빗 서브넷의 리소스가 인터넷에 접속할 수 있도록 하는 구성 요소입니다. NAT 게이트웨이는 네트워크 주소 변환(Network Address Translation, NAT)을 사용하여 프라이빗 IP 주소를 퍼블릭 IP 주소로 변환하여 인터넷과 통신합니다.

 

  • 라우팅 테이블(Routing Table)

라우팅 테이블 (Routing Table) 은 네트워크 장치가 데이터를 어디로 보낼지 결정하는 중요한 구성요소입니다. AWS VPC에서 라우팅 테이블은 서브넷과 인터넷 게이트웨이, NAT 게이트웨이 등의 네트워크 장치 간의 트랙픽 흐름을 제어합니다. VPC내에서 라우팅 테이블은 서브넷에 연결되어 있으며, 각 서브넷은 하나의 라우팅 테이블과 연결될 수 있습니다. 

 

클라우드 환경에서 네트워크 보안을 강화하기 위한 두 가지 주요 도구
  • 네트워크 ACL(Network ACL)

네트워크 ACL(Network Access Control List)은 서브넷 수준에서 인바운드(들어오는) 및 아웃바운드(나가는) 트래픽을 제어하는 가상 방화벽입니다. 네트워크 ACL은 AWS의 VPC(Virtual Private Cloud)에서 사용되며, 각 서브넷에 적용하여 트래픽을 관리하고 보안을 강화합니다. 네트워크 ACL은 상태 비저장 방식으로 작동하며 들어오는 트래픽과 나가는 트래픽을 별도로 설정해야 합니다. 네트워크 ACL이 이전 상태 정보를 기억하지 않아 다음 단계에 관여하지 않습니다.  기본적으로 모든 트래픽이 허용되어 있고, 불필요한 트래픽을 차단하도록 설정해야 합니다.(허용 및 거부 규칙 지원) 트래픽 허용 여부를 결정할 때 번호가 가장 낮은 규칙부터 순서대로 규칙을 처리합니다. 네트워크 ACL은 서브넷 단위로 적용되고, 개별 인스턴스에는 적용할 수 없습니다. 네트워크 ACL과 보안 그룹이 충돌할 경우, 보안 그룹이 더 높은 우선순위를 가집니다.

 

  • 보안그룹(Security Group)

보안 그룹은 인스턴스에 대한 인바운드(들어오는) 및 아웃바운드(나가는) 트래픽을 제어하는 가상 방화벽 역할을 합니다.  상태 저장 방식으로 작동하며 한 번 들어온 트래픽이 자동으로 나가는 것도 허용됩니다. 이전 상태 정보를 기억하고 있다가 다음 단계에서 그 상태 정보를 활용할 수 있습니다. 기본적으로 모든 트래픽이 차단되어 있으며 트래픽 허용 여부를 결정하기 전에는 모든 규칙을 평가하고 필요한 트래픽만 허용하도록 설정해야 합니다.(허용 규칙만 지원)  보안 그룹은 개별 EC2 인스턴스에 적용할 수 있고, 여러 인스턴스에 동일한 보안 그룹을 적용할 수도 있습니다. 각각의 보안 그룹에 대해 별도로 트래픽 규칙을 설정할 수 있습니다.

 

보안그룹와 네트워크 ACL의 차이
  • 보안 그룹: 상태 저장 방식. 개별 인스턴스에 적용 가능. 기본적으로 모든 트래픽 차단, 필요한 트래픽만 허용.
  • 네트워크 ACL: 상태 비저장 방식. 서브넷 단위로 적용. 기본적으로 모든 트래픽 허용, 불필요한 트래픽 차단.
  • 우선순위: 보안 그룹이 네트워크 ACL보다 우선순위입니다.
요약

 

Amazon VPC는 AWS 클라우드 내에서 사용할 수 있는 가상의 프라이빗 네트워크로 AWS 리소스를 안전하게 보호하고 네트워크를 제어할 수 있는 환경을 제공합니다. 서브넷은 VPC 내에서 리소스를 배치하는 작은 네트워크이고, 인터넷 게이트웨이는 VPC와 인터넷을 연결해주는 관문역할을 합니다. NAT게이트웨이는 프라이빗 서브넷에 있는 인스턴스가 인터넷에 접근할 수 있게 해주고, 라우팅 테이블은 네트워크 트래픽의 경로를 지정하는 역할을 합니다. 네트워크 ACL은 서브넷 수준에서 인바운드 및 아웃바인드 트래픽을 제어하는 가상 방화벽이고, 보안 그룹은 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽입니다. 이 요소들의 역할을 통해 VPC 내에서 효율적이고 안전한 네트워크 운영을 가능하게 해줍니다.