AWS를 사용한다면 반드시 알아야 할 네트워크 기초 지식

 

  • 글로벌 레벨 = CF
  • 리전 레벨 = S3
  • VPC 레벨 = EC2, RDS

가상의 네트워크 인프라 영역이다.

라우팅 테이블 설정 단위는 서브넷 이다.

어느 리전에 있던지 디폴트 VPC는 1개가 존재함

172.31.0.0/16 대역을 사용

서울 리전은 4개의 가용영역(AZ, Availability zone)을 제공

라우팅 테이블 때문에 VPC내에 네트워크 통신이 가능하다

인터넷게이트웨이(IGW)가 서브넷에 연결되어 있어 외부 인터넷과 통신이 가능(public subnet)

NACL은 상태를 저장하지 않는 방화벽 역할을 수행한다.

그리고 서브넷 단위로 설정한다. 또한 상태를 저장하지 않기 때문에 인바운드, 아웃바운드 설정을 해야 한다.

기본 설정은 모든 트래픽을 allow 하는 정책이다. rule의 숫자가 낮은 것부터 먼저 규칙을 확인한다.

 

보안그룹 설정이다. 같은 보안 그룹이 포함된 경우 서로 통신이 가능하다.

보안그룹은 상태 저장되는 방화벽이기 때문에 인바운드가 허용되어 있으면 아웃바운드는 따로 설정하지 않아도 된다.

서브네팅에서 고려되어야 할 점은 한개의 서브넷에 용도 및 같은 네트워크 공간에 몇대의 서버를 배치할 것인가이다.

퍼블릭서브넷은 인터넷과 양방향 통신이 가능하므로 필요한 서버 이외에 배치하지 않는 것이 핵심이다.

(인터넷에 서버들이 노출되는 것을 최소화 하기 위함)

퍼블릭 서브넷 라우팅 테이블을 보면 서브넷이 사용하고 있는 네트워크 대역 외에 모든 트래픽이 IGW 라는 곳으로 이동한다.

프라이빗서브넷에 있는 서버들도 외부 인터넷을 통해 SW패치를 적용해야 한다면 퍼블릭 서브넷에 NAT Gateway를 배포하고 프라이빗서브넷 라우팅테이블에 NAT Gateway 정보를 등록한다.

이렇게 이중화 구성도 가능하나 비용을 고려해봐야한다.

RDS 같은 경우 외부인터넷과 통신이 전혀 필요없다.

NACL을 통해 DDoS 공격시 특정 아이피 대역을 차단하여 인프라를 보호할 수 있다.

https 서비스를 위해 외부에서 들어오는 아이피를 전부 허용한다.

EC2 입장에서는 NLB에서 들어오는 트래픽만 허용 시킬 수 있다.

보안그룹의 특징은 서로 참조가 가능하다는 점이다. 소스를 NLB가 포함된 그룹자체를 지정하였다.

RDS 보안그룹은 EC2에서 오는 트래픽만 허용하도록 규칙을 추가하였다.

굳이 외부 인터넷으로 나가지 않고 내부에서 직접 통신할 수 없을까?

S3나 dynamodb에 연결할 때 엔드포인트를 사용할 수 있다.

서브넷에 연결된 라우팅 테이블에 s3 prefix가 더 구체적인 경로이기 때문에 추가할 수 있다.

이 방식은 NAT Gateway를 사용하는 것보다 더 좋은 선택이다.

IAM 정책을 통해 접근정책을 세부적으로 가져갈 수 있다.

S3랑 dynamodb 접근만 지원하는 게이트웨이 엔드포인트와 달리 그외 AWS 리소스도 접근가능한게 privatelink이다.

네트워크 인터페이스의  보안그룹으로 네트워크 접근을 관리할 수 있고 vpc endpoint policy를 통해 세부 접근제어도 가능하다.

내부의 다른 VPC나 다른 계정의 VPC로 연결하기 위해서는 다음과 같은 서비스를 고려할 수 있다.

이렇게 구성된 경우에 VPC2와 VPC4 통신이 안되는 문제점이 있다.

결국 모든 VPC간에 통신을 하려면 많은 숫자의 VPC Peering을 구성해야한다.

또한 복잡도도 증가한다.

2개의 터널이 열려서 active-standby 형태로 운영된다.

VPC 라우팅 테이블에 사설 데이터센터 네트워크 대역을 추가한다.