DevOps & SRE/AWS & Cloud

[클라우드 인프라와 API의 구조] 7. 네트워크 리소스를 제어하는 방법

반응형

1. 네트워크 리소스의 제어를 위한 기본 API

1-1. 클라우드 네트워크의 특징과 기본 사상

클라우드 환경이라고 하더라도 네트워크의 기본은 TCP/IP

네트워크의 기능은 크게 아래와 같이 구분.

  • 같은 네트워크에 속한 장비끼리 연결되는 L2 네트워크 (데이터링크 계층)
  • 서로 다른 L2 네트워크끼리 연결되는 L3 네트워크 (네트워크 계층)

 

클라우드 환경의 네트워크는 기존의 물리적인 네트워크에 비해 편리한 기능이 더 많음.

  • L3 네트워크는 클라우드의 내부와 연결하는 기능 등
  • 클라우드 환경의 네트워크 리소스에는 시큐리티 그룹이라는 방화벽 기능이나 접근 제어, 부하 분산, VPN 기능과 같은 다양한 기능들도 적용할 수 있음.

 

IP주소 관리

  • 클라우드 환경의 네트워크에는 IP 주소 관리를 시스템이 자동으로 처리하게 하고, IP 주소 할당은 DHCP를 통해 받아가도록 만들어져 있음.
  • API로 가상 서버를 만들거나 스토리지를 할당하는 마당에 가상 네트워크를 만들 때, 사람이 직접 IP 주소를 관리한다면 병목을 유발할 수 있음.
  • DNS를 활용한 확정성이나 오토스케일링, 오토힐링과 같은 클라우드 환경만의 장점을 제대로 살리기 위해서는 시스템 구성 시, IP 주소 정보에 종속되지 않도록 설계하는 것이 중요.

 

1-2. AWS 네트워크 모델

AWS VPC

  • 가상 네트워크 전체에 해당하는 리소스.
  • VPC라는 독립된 사설 네트워크를 먼저 만든 후에, 그 안에 기능적인 요소로 서브넷, 라우팅 테이블, ENI로 구성되는 형태.
  • AWS에서는 테넌트 안에 여러 VPC를 만들 수 있음.

 

1-3. 서브넷

  • AWS에서는 네트워크 전체를 VPC라는 단위로 만들고 그 안을 서브넷으로 분할.
  • AWS VPC에는 서브넷에 가상 스위치의 개념과 기능이 함께 녹아있음.
  • VPC에서 사용할 IP 주소 범위를 우선 정하고, 이후 서브넷을 생성할 때 앞서 정의한 IP 주소 범위 안에서 서브넷에 사용할 범위를 선택하는 방식으로 정의.
  • VPC 안에서는 여러 개의 서브넷을 만들 수 있으나 VPC가 이미 확보한 IP 주소 범위를 나중에 변경하지는 못하기 때문에 향후 사용할 IP주소 범위까지 미리 예측하여 IP 주소의 범위를 여유 있게 정할 필요가 있음.

 

서브넷

  • 서브넷에 연결된 서버는 기동시 DHCP를 통해 IP 주소를 할당받고, 그 IP 주소로 통신. (매번 기동 할 때마다 다른 IP 주소가 할당되는 것은 아님: 클라우드 환경에서는 이미 IP 주소가 할당이 되어 있는데, 단지 그 IP 주소가 DHCP를 통해서 전달될 뿐이기 때문)
  • 이렇게 서버가 존재하는 한 같은 IP 주소가 고정 ⇒ 고정 IP
  • 이렇게 서브넷은 할당된 IP 주소에만 통신을 허용한다는 특징이 있어 사용자가 서버 안에서 임의로 IP 주소의 설정을 바꾼다고 하더라도 변경된 IP 주소로는 통신을 못함.
  • 서브넷의 네트워크는 해당 네트워크 범위에서만 통신할 수 있는 폐쇄된 형태여서 다른 테넌트가 사용하고 있는 서브넷이나 IP 주소와 중복된 값을 사용하더라도 충돌을 걱정할 필요가 없음.

 

IP 주소의 범위

  • 서브넷을 생성할 때 지정하는 IP 주소의 범위를 CIDR라고 함. (Classless Inter Domain Routing)
  • 가변 길이의 서브넷 마스트 결정 방식. (/ 뒤에 이어지는 숫자가 서브넷 마스크의 비트 수를 의미)

 

1-4. 라우터

  • 서로 다른 네트워크를 연결하는 기능.
  • 내부 → 내부, 내부 → 외부, 외부 → 내부와 같은 세 가지 유형의 연결 방식이 가능.

 

내부 → 내부

  • 내부란 클라우드 네트워크를 의미.
  • 서로 다른 네트워크에 속한 서버끼리 통신하는 것.
  • 기본적으로 테넌트 내부나 VPC 내의 네트워크들을 서로 연결.
  • 경우에 따라 서로 다른 테넌트의 네트워크와 테넌트의 경계를 넘나들면서 라우팅 해야하는 경우도 있는데 AWS에서는 VPC Peering이라는 기능을 사용.

 

내부 → 외부

  • 가상 네트워크에 연결된 서버가 인터넷을 통해 외부에 접속되는 경우.
  • 라우터에서는 IP 마스커레이드를 수행 (내부 네트워크에서 사용되는 Private IP 주소를 Public IP주소로 변환)

 

외부 → 내부

  • AWS의 경우 엘라스틱 IP (EIP)가 사용.
  • Public IP를 어드레스 풀에 확보한 다음, 서버의 논리 포트에 할당하고 다시 이 Public IP 주소가 Private IP 주소로 연결되도록 만듦.
  • 이렇게 하면 클라우드 외부에서 클라우드 내부로 접근할 수 있게 되는데, 이런 기능을 NAT라고 부름.

 

실제 리소스

  • AWS에서는 외부로 연결하기 위해 VPC 안에 게이트웨이를 만듦.
  • 그런 후 서브넷의 라우팅 테이블에서 외부로 통신할 때는 이 게이트웨이를 통과하도록 라우팅 정보를 설정.

 

게이트웨이의 종류

  • 인터넷 게이트웨이(IGW): 인터넷 통신을 하기 위한 게이트웨이
  • 버추얼 게이트웨이(VGW): 거점과 사설 네트워크 통신
  • 피어링 커넥션(PCX): 리전 안에서 서로 다른 VPC 끼리 연결.
  • VPC 엔드포인트: 인터넷에 연결된 매니지드 서비스(ex) S3)에 VPC에서 인터넷을 경유하지 않고 연결.

 

라우팅 테이블

 

AWS에서는 개념적으로 라우터가 VPC에 속하는 형태이지만 실제로 라우터가 리소스 형태로 관리되지는 않음.

대신 라우터에 설정하는 라우팅 테이블을 리소스 형태로 사용

 

메인 라우팅 테이블

  • VPC 전체에 적용한 것

 

서브 라우팅 테이블

  • 특정 서브넷에만 적용한 것.

 

1-5. 포트

논리 포트는 가상 네트워크상에 만들어지는 스위치의 포트와 같은 개념.

AWS에서는 서버에서 네트워크에 연결하기 위한 인터페이스 접점이라는 의미가 강하고, ENI(Elastic Network Interface)라고 부름

논리 포트는 생성될 때 자신이 소속된 가상 서브넷으로부터 IP주소를 할당 받음. 그리고 이때 할당된 IP 주소 이외의 통신은 모두 차단시킴.

논리 포트에는 IP 주소를 여러 개 할당할 수 있기 때문에 가상 서버의 NIC 하나에 여러 개의 IP 주소를 부여하는 것이 가능.

또한 하나의 가상 서버에 여러 개의 논리 포트를 할당할 수 있음.

이러한 논리 포트는 서버를 가상 네트워크에 연결할 때만 쓰는 것이 아니라 가상 네트워크와 가상 라우터를 연결할 때도 사용.

 

1-6. 시큐리티 그룹

  • 가상 서버에 들어가고 나가는 트래픽을 필터링하는 역할.

 

기존의 물리적인 네트워크

  • 물리적인 네트워크 환경에서는 방화벽 장비로 L2 네트워크 간의 트래픽을 제어하는 것이 일반적임.
  • 서버 단위로 세부적인 제어가 필요한 경우 서버의 OS에서 iptables와 같은 기능을 사용해 제어.
  • 물리적인 스위치 장비가 제공하는 ACL 기능을 활용해서 접근 제어를 할 수도 있음.

 

클라우드 환경의 네트워크

  • 시큐리티 그룹이라는 패킷 필터링 기능이 제공.
  • 서버의 인터페이스 단위로 세부적인 패킷 제어를 할 수 있음.
  • 시큐리티 그룹은 논리 포트 단위로 적용되며 가상 서버가 기동 될 때 적용할 시큐리티 그룹을 지정할 수 있음.
  • 시큐리티 그룹은 가상 서버 OS나 애플리케이션과 종속 관계가 없기 때문에 보안 정책을 관리하거나 적용 여부를 설정하는 것을 비교적 손쉽게 할 수 있음.

 

시큐리티 그룹의 규칙

  • 방화벽 규칙에는 트래픽이 발생하는 방향(입력, 출력)과 프로토콜의 종류, 포트 번호, 통신 상대를 지정할 수 있음.

 

방화벽 규칙에 시큐리티 그룹 지정

  • 클라우드에서는 특정 역할을 하는 서버의 대수를 늘리거나 줄여야 하는 경우가 종종 발생.
  • 이런 상황에 통신 상대를 시큐리티 그룹으로 지정하는 방식을 사용하면 보다 효율적인 시큐리티 그룹 관리가 가능.

 

1-7. NACL (네트워크 액세스 컨트롤 리스트)

  • 네트워크를 설계할 때, 서브넷에 역할을 부여하게 되는데 명시적으로 패킷 필터링을 하거나 권한을 분리하는 것이 가능.
반응형