네트워크

클라우드 네트워크 아키텍처: AWS, GCP, Azure 비교

찬이한이 2025. 1. 22. 05:28

1. 클라우드 네트워크 개요

클라우드 네트워크는 기업이 데이터센터 없이 네트워크 인프라를 운영할 수 있도록 돕는 핵심 요소입니다. 주요 클라우드 제공업체인 AWS, GCP, Azure는 각기 다른 네트워크 아키텍처를 제공하지만, 기본적인 개념은 유사합니다.

각 클라우드의 네트워크 구성 요소를 비교하면 다음과 같습니다.

개념AWS (Amazon Web Services)GCP (Google Cloud Platform)Azure

가상 네트워크 VPC (Virtual Private Cloud) VPC (Virtual Private Cloud) VNet (Virtual Network)
서브넷 퍼블릭/프라이빗 서브넷 리전 및 서브넷 기반 서브넷 (서브넷 내 가용 영역 포함)
라우팅 라우트 테이블 사용 글로벌 및 리전별 라우팅 사용자 정의 라우트 및 시스템 라우트
방화벽 보안 그룹, 네트워크 ACL 방화벽 규칙 NSG (Network Security Group)
로드 밸런서 ALB, NLB, CLB HTTP(S), TCP/UDP, Internal LB Azure Load Balancer, Application Gateway

각 클라우드의 네트워크 개념을 자세히 살펴보겠습니다.

2. AWS VPC, GCP VPC, Azure VNet 개념 비교

(1) AWS VPC

  • AWS의 네트워크 서비스로, 사용자가 원하는 IP 범위 내에서 퍼블릭 및 프라이빗 서브넷을 설정할 수 있습니다.
  • 인터넷 게이트웨이(IGW), NAT 게이트웨이, VPN 연결 등 다양한 기능을 제공.
  • 기본적으로 각 VPC는 AWS 리전 내에서만 작동하지만, VPC 피어링 및 AWS Transit Gateway를 이용해 여러 VPC를 연결할 수 있습니다.

(2) GCP VPC

  • AWS와 유사하지만, 글로벌 VPC 개념을 채택하고 있어 리전 간 서브넷을 자유롭게 설정 가능.
  • **하이브리드 연결(Cloud Interconnect, VPN, Peering)**이 용이하여 온프레미스와 쉽게 연결 가능.
  • 방화벽 규칙이 프로젝트 단위에서 관리되며, 기본적으로 모든 서브넷 간 통신이 가능함.

(3) Azure VNet

  • VPC와 개념적으로 유사하며, Azure의 가용 영역(AZ) 기반으로 네트워크를 설계.
  • Peering을 통해 다른 VNet과 연결할 수 있으며, 기업 환경에서는 ExpressRoute를 통해 온프레미스와 직접 연결하는 기능을 제공.
  • 네트워크 보안 그룹(NSG)을 이용해 세부적인 보안 정책을 적용할 수 있음.

3. 서브넷, 라우팅, 로드 밸런서 설정 및 비용 최적화

(1) 서브넷 설정

각 클라우드에서 서브넷을 설정할 때 다음을 고려해야 합니다.

  • AWS: 서브넷을 퍼블릭/프라이빗으로 구분하고, 인터넷 게이트웨이를 통해 외부 통신 가능.
  • GCP: 리전 단위의 서브넷을 사용하고, 모든 서브넷이 기본적으로 연결됨.
  • Azure: VNet 내에서 여러 서브넷을 생성하며, 서브넷 간 보안 규칙을 별도로 적용해야 함.

AWS 서브넷 생성 예제 (Terraform)

resource "aws_subnet" "public_subnet" {
  vpc_id     = aws_vpc.main.id
  cidr_block = "10.0.1.0/24"
  map_public_ip_on_launch = true
  availability_zone = "us-east-1a"
}

(2) 라우팅 설정

라우팅은 클라우드 네트워크에서 필수적인 요소입니다.

  • AWS: **라우트 테이블(Route Table)**을 통해 네트워크 트래픽을 제어.
  • GCP: **라우트(Route)**를 이용해 트래픽 경로를 지정.
  • Azure: **사용자 정의 라우트(UDR, User Defined Route)**를 활용.

AWS 라우트 테이블 설정 예제

resource "aws_route_table" "public_rt" {
  vpc_id = aws_vpc.main.id

  route {
    cidr_block = "0.0.0.0/0"
    gateway_id = aws_internet_gateway.gw.id
  }
}

(3) 로드 밸런서 비교

로드 밸런서는 클라우드 서비스에서 트래픽을 분산하고 가용성을 높이는 역할을 합니다.

  • AWS: ALB (Application Load Balancer), NLB (Network Load Balancer), CLB (Classic Load Balancer)
  • GCP: HTTP(S) Load Balancer, TCP/UDP Load Balancer
  • Azure: Azure Load Balancer, Application Gateway

AWS Application Load Balancer 생성 예제

resource "aws_lb" "app_lb" {
  name               = "app-load-balancer"
  internal           = false
  load_balancer_type = "application"
  security_groups    = [aws_security_group.lb_sg.id]
  subnets            = [aws_subnet.public_subnet.id]
}

4. 클라우드 네트워크 비용 최적화 전략

클라우드 네트워크 비용은 데이터 전송, 로드 밸런서, VPN 연결 등에 의해 크게 영향을 받습니다.

비용 절감 방법

무료 egress 트래픽 활용: AWS, GCP, Azure는 특정 양의 무료 egress 트래픽을 제공. ✅ VPC 피어링 활용: 리전 내 트래픽은 VPC 피어링을 사용하면 비용이 저렴. ✅ 서브넷 및 NAT 최적화: NAT Gateway는 사용량에 따라 비용이 증가하므로, 필요한 경우만 사용. ✅ Reserved Instance 활용: 지속적으로 사용하는 네트워크 리소스는 예약 구매로 비용 절감.

5. 실제 클라우드 네트워크 설정 예제 (AWS 기준)

  1. VPC 생성
  2. 퍼블릭 서브넷, 프라이빗 서브넷 생성
  3. 라우트 테이블 설정
  4. 로드 밸런서 및 EC2 인스턴스 연결
  5. NAT Gateway 또는 VPN 설정
resource "aws_vpc" "main" {
  cidr_block = "10.0.0.0/16"
  enable_dns_support = true
  enable_dns_hostnames = true
}

결론

AWS, GCP, Azure 모두 가상 네트워크(VPC/VNet) 개념을 제공하지만 차이점이 존재함.

클라우드 네트워크 설정 시 서브넷, 라우팅, 로드 밸런서를 최적화해야 비용 절감 가능.

실제 환경에서는 Terraform을 이용해 인프라를 코드로 관리하면 운영이 쉬워짐.