2021년 11월 30일 화요일

Cloud 환경을 기반한 서비스를 구축하고자 할 때 가장 먼저 살펴보고 구성해줘야 하는 자원 중 하나는 바로 Network 이다. On-premise 에서의 Network 구성은 각각의 요구사항에 따라 각 Layer 별로 장비를 마련해서 각각의 장비를 설정하고 각각의 장비간 연동 작업이 수반되었다면 Cloud 에서는 software defined network 기반의 가상네트워크로 환경을 구성한다. Cloud 에서의 Network 를 구성하는 과정은 크게 IP 주소자원 할당 과 Traffic 제어 관련 설정 으로 이루어진다.

Amazon AWS VPC Network Diagram
  1. IP 주소자원 할당
    서비스 구축 시 생성되는 Cloud Resource (예: VM Instance, Database 등) 는 생성 시 IP 주소와 서비스 이름을 부여받게 되고 이를 기반으로 Resource 의 위치를 파악하고 동일 network 내 다른 Resource 또는 외부 network 와 통신하거나 연동하게 된다. 이러한 IP 주소자원 할당을 위해 Cloud 에서는 아래와 같은 구성요소를 생성 및 활용한다.
    1. VPC 또는 VCN 1 : IP 주소 자원 Pool 이다. CIDR 2 의 형태로 표현하며 최대 /16 의 사이즈 (x.x.x.x/16 지정 시 65,536 개 IP 사용) 로 할당받을 수 있다. VPC 또는 VCN을 생성해서 할당 받는 IP 주소 자원 Pool 은 모두 Private Network 대역을 기본으로 하게 되는데 이는 우리 각 가정에서 사용하는 유무선공유기가 사용하는 IP주소 Pool 을 떠올리면 이해하기 쉽다. (예: 192.168.x.x)
    2. Subnet 3 : VPC 또는 VCN 을 생성하여 할당 받은 하나의 큰 IP 주소 자원 Pool 을 용도에 맞게 사용 및 관리하기 위해 더 잘게 나눈 하부 Network 이다. 용도에 따라 Public Subnet 과 Private Subnet 으로 나뉘게 되는데 Subnet 에 포함될 VM Instance 가 외부 Network 와 통신을 위한 Public IP 주소 할당이 필요하다면 Public Subnet 을, 외부 Network 과의 통신이 필요 없이 내부 Resource 간 통신만 한다면 Private IP 주소만 할당 하는 Private Subnet 을 생성하면 된다.
  2. Traffic 제어 관련 설정
    IP 주소 자원 할당을 위한 구성요소 생성을 마치고 나면 각 Subnet 단위 별로 발생되는 Traffic 에 대한 처리를 위한 규칙 설정이 필요하다.
    1. Routing Table : Network Traffic이 발생되어 Traffic 의 도착지를 찾아가야 할 때 거쳐가야 하는 Next Hop 4 에 대한 Network Gateway 정보를 지정 및 제어하기 위해 정리하는 규칙이다. 각 Subnet 마다 1개씩 지정이 가능하며, Cloud Service Provider 마다 다를 수 있지만 보통 동일 VPC 또는 VCN 내에서의 Traffic 은 별도의 Routing Table 규칙 정리 없이 처리되고 주로 외부 통신에 대한 부분을 명시한다. 예를 들면, 인터넷으로 Traffic 이 나가야 하는 경우에 대한 처리를 위해 거쳐가야 하는 Next Hop을 Internet Gateway 으로 지정해 주는 것이다.
    2. Security List (ACL) : 가상의 방화벽이다. 들어오고 (Ingress) 나가는 (Egress) Traffic 에 대한 제어를 하기 위한 규칙 설정이다. 예를 들면 VM Instance 를 이용하여 구성된 웹서버를 관리하기 위해 SSH 접속이 필요한데 이 때 보안 유지를 위해 관리자가 사용할 PC 의 IP와 SSH 접속 포트인 22번에 대해 Security List 에 등록하여 해당 웹서버의 SSH 접속을 특정 IP를 가진 PC 로 한정하는 것이다. 필요한 제어 규칙을 담은 Security List 은 Subnet 단위로 지정하거나 더 세세한 설정이 필요한 경우 별도 제어 규칙을 작성해서 Instance 단위로 지정하는 것도 가능하다.
    3. 각종 Gateway : 외부와 통신이 필요한 Traffic 에 대한 Next Hop 역할을 해준다. 인터넷과 통신하기 위한 Internet Gateway, 외부와 통신 시 NAT 5 처리가 필요한 경우를 위한 NAT Gateway, VPC 또는 VCN 간의 Peering 이나 On-premise 와의 VPN Peering 을 구성할 때 사용하는 Peering Gateway 가 그것이다. 각 Traffic 처리 목적에 맞게 Gateway 를 미리 생성해주고 위에서 다룬 Routing Table 에 해당 Traffic 처리를 위한 규칙을 설정해주면 된다.
    4. Load Balancer : 서비스를 제공하는 Instance 에 대한 가용성을 확보하기 위해 Subnet 으로 인입되는 Traffic 에 대해 여러 개의 동일한 역할을 하는 Instance 로 Traffic 분산 처리를 해준다. 외부에서 인입되는 Traffic을 분산하는 경우 Public, 내부에서 Traffic 이 발생되어 분산이 필요한 경우 Private Load Balancer 를 구성하며, Traffic 의 형태에 따라 L4 또는 L7 Load Balancing 을 설정하여 사용할 수 있다.

위와 같이 기본적인 네트워크 구성을 마치고 나면 VM Instance 와 Database 를 비롯한 서비스 구축을 시작할 수 있다. 다음 편에서는 이러한 구성요소를 토대로 구성 가능한 Cloud 환경에서의 Network Architecture 에 대해 살펴볼 예정이다.

  1. What is Amazon VPC ?
  2. https://dev.classmethod.jp/articles/vpc-3/
  3. Amazon VPC and Subnet
  4. What is a Next Hop ?
  5. What is NAT ?

    Related Posts

    신속하고 편리한 개발, Lowcode
    Cloud 에서의 Network Architecture

    Leave a Reply