본문 바로가기
AWS

AWS 네트워크 - VPC, ELB, Route53

by pius712 2024. 3. 24.

1. VPC (Virtual Private Cloud)

가상 네트워크로써 네트워크 환경을 논리적으로 격리시켜줌.

  • 환경을 분리(dev, live)
  • 보안, 트래픽 등을 분리

하나의 VPC 안에는 여러 서브넷이 존재함.

1.1 서브넷

VPC 내에서 리소스를 그룹화 한 것을 서브넷이라고 함. 여기서 리소스라 함은, ec2 와 같은 것을 뜻함.

서브넷은 퍼블릭 서브넷과 프라이빗 서브넷으로 나뉜다.

퍼블릭 서브넷은 인터넷 게이트웨이를 통해 인터넷과 연결될 수 있는 서브넷이고, 프라이빗 서브넷은 VPC 내에서만 통신이 가능하다. (NAT 게이트웨이를 통하면 외부 통신 가능. 아래에서 추가 설명)

1.2 라우팅 테이블

라우팅 테이블은 네트워크의 라우팅 정보를 담는 테이블이다.

VPC 생성시 라우팅 테이블이 생기고, 서브넷마다 라우팅 테이블이 할당된다.

인터넷 게이트웨이, NAT 게이트웨이 등이 라우팅 테이블에 연결되어서 외부(인터넷)과 통신을 할 수 있다.

 

1.3 인터넷 게이트웨이

서브넷 내부의 자원이 외부 인터넷과 통신할 수 있게 하는 게이트웨이.

서브넷은 public 서브넷과 private 서브넷으로 분류된다.

이 때, 인터넷과 연결될 수 있는 서브넷은 public 서브넷

1.4 NAT 게이트웨이

프라이빗 서브넷에 있는 리소스는 NAT 게이트웨이 없이는 네트워크 통신을 할 수 없다.

NAT 게이트웨이를 통하면, 프라이빗 서브넷에 있는 리소스의 ip 를 퍼블릭 ip 로 매핑시켜준다.

 

프라이빗 서브넷에서 인터넷으로 통신을 하고자하면, 라우팅 테이블에 의해서 NAT GW 로 가게 되고

NAT GW 에서 IGW 를 통해 외부로 통신이 나가게 된다.

 

 

→ 프라이빗 ip 는 공개된 ip 가 아니기 때문에 다른 서버 입장에서는 식별할 수가 없음. 그래서 NAT 를 통해 퍼블릭 ip 로 요청을 보내서 커넥션을 맺어줘야함.

이 때, NAT 게이트웨이도 라우팅 테이블에 연결해줘야한다.

1.3 접근제어

VPC는 subnet 단위의 접근제어를 할 수 있고, 이 접근 제어는 acl (access control list) 을 통해 이루어진다.

추가적으로, ec2 와 같은 리소스에는 보안그룹 설정을 할 수 있다.

ACL vs 보안그룹

  • ACL
    • stateless(상태 비저장): 매 in/out 요청에 대해서 검사함
    • default: 모두 허용
  • 보안그룹
    • stateful(상태 저장): 모든 outbound 트래픽 허가됨. response 허용됨.
    • default: 모두 차단
    • 별도의 차단 설정을 할 수는 없음. 허용 설정만 가능
     

2. ELB (Elastic Load Balancer)

AWS 에서 제공하는 로드 밸런서이다.

로드 밸런서를 생성할 때, 아래와 같은 유형을 선택할 수 있다.

  • ALB (Application Load Balancer)
    • L7 계층에서 동작하는 로드밸런서
  • NLB (Network Load Balancer)
    • L4 계층에서 동작하는 로드밸런서
  • GWLB (Gateway Load Balancer)

로드밸런서도 아래와 같이 구성될 수 있다.

  • 인터넷 경계에 있는 로드밸런서 → public ip 있어야 함.
  • 내부 로드밸런서 → private ip 만 있으면 됨.

ALB 설정

ALB 가 속할 VPC 를 설정해준다. -> ALB 는 리젼 단위로 관리된다. 

AZ 를 두 개 이상 매핑시켜서 로드 밸런싱을 해준다.

이때, 서브넷을 private 으로 고르면 안된다.

→ 프라이빗 서브넷은 igw 와 라우팅 테이블 연결이 안되어 있기 때문이다.

대상 그룹을 생성한다.

대상그룹은 http 로 사용하면,

alb 로 들어오는 트래픽은 https 인데, alb → ec2 로 가는 것은 http 로 라우팅 할 수 있다.

개별 ec2 에 대해서는 https 설정을 할 필요가 없어진다.

 

3. Route53

AWS 에서 제공해주는 DNS 서비스이다. 아래 기능들이 있다.

  • 도메인 등록
  • 트래픽 라우팅

3.1 도메인 등록

3.2 트래픽 라우팅

  • 단순 라우팅
    • 특정 ip로 라우팅함
  • 가중치 기반
    • 라우팅 대상이 여러 개. 가중치를 기반으로 라우팅됨
  • 지리적 위치
    • client의 위치 기반
  • 다중값 응답 라우팅
    • 여러 ip 주소를 무작위로 반환

3.3 상태확인

도메인에 연결된 타겟이 정상적인 상태인지 확인할 수 있는 기능.

다 돈내야함.. 기본 엔드포인트 사용시 월 0.5$

상태확인 실패시, 알림을 받을 수도 있음.

 

 

 

4. 전체적인 그림 및 요약

MSA 환경에서의 대부분의 애플리케이션 서버들은 프라이빗 서브넷에 위치한다.

따라서, 퍼블릭 서브넷의 경우 많은 ip 대역을 필요로 하지는 않는다.