AWS VPC와 Subnet

지노·2021년 5월 18일
0

Amazon VPC

Amazon VPC 개념

  • Amazon VPC는 Amazon EC2의 네트워킹 계층
  • Virtual Private Cloud(VPC) — 사용자의 AWS 계정 전용 가상 네트워크입니다.
  • 서브넷 — VPC의 IP 주소 범위입니다.
  • 라우팅 테이블 — 네트워크 트래픽을 전달할 위치를 결정하는 데 사용하는 라우팅이라는 이름의 규칙 집합입니다.
  • 인터넷 게이트웨이 — VPC의 리소스와 인터넷 간의 통신을 활성화하기 위해 VPC에 연결하는 게이트웨이입니다.
  • VPC 엔드포인트 — 인터넷 게이트웨이, NAT 디바이스, VPN 연결 또는 AWS Direct Connect 연결 없이도 PrivateLink로 구동하는 지원되는 AWS 서비스 및 VPC 엔드포인트 서비스에 비공개로 연결할 수 있게 합니다.
  • VPC의 인스턴스는 서비스의 리소스와 통신하는 데 퍼블릭 IP 주소를 필요로 하지 않습니다.
  • VPC와 기타 서비스 간의 트래픽은 Amazon 네트워크를 벗어나지 않습니다.
  • 자세한 내용은 AWS PrivateLink 및 VPC 엔드포인트를 참조하십시오.
  • CIDR 블록
    클래스 없는 도메인 간 라우팅입니다.
    인터넷 프로토콜 주소 할당 및 라우팅 집계 방법입니다.
    • 자세한 내용은 Wikipedia의 Classless Inter-Domain Routing을 참조하십시오.

??? 일단 하나하나 만들어보자

1. VPC 생성

CIDR 블록 지정

  • VPC에 대한 CIDR 블록, 즉 네트워크 범위에 대한 지정을 할 수 있다.
  • CIDR 블록 크기는 /16 ~ /28 넷마스크 범위 내에서 가능

CIDR이란?

  • CIDR = Classless Inter-Domain Routing
  • 클래스 없이 네트워크 구분을 하겠다!
  • CIDR 이전에는 네트워크 구분을 위와 같이 Class를 기준으로 나누었다.
  • 하지만 Class를 사용하여 서비스에 딱 맞게! 네트워크를 나눌 수 없었다.
  • CIDR을 사용해서 나에게 딱 맞는 네트워크 구분을 할 수 있다!

어떻게 나누지?

CIDR 표기에 가장 마지막 부분을 보면 "/숫자"를 사용한 것을 볼 수 있다.
이게 바로 CIDR 표기법!

IP

  • IP를 옥텟이라는 단위로 나눌 수 있다.
  • 하나의 옥텟은 8bit
  • 우리가 자주 사용하는 IPv4 주소는 4개의 옥텟으로 이루어져 있다.

  • 만약 CIDR이 "/24"라면 앞에서부터 24비트 이후에 오는 파란색 부분을 전부 사용할 수 있다라는 표현
  • 하나의 옥텟은 8비트로 2의8승 인 256개 이기 때문에
    CIDR이 143.7.65.203/24라면 143.7.65.0 ~ 143.7.65.255 까지 사용이 가능한 것
  • CIDR이 옥텟 기준(8의 배수)가 아닌 "/22"로 걸쳐 있는 경우에는? -> 위 블로그 참조

어쨌든 CIDR을 사용하면 네트워크 범위를 편하게 정할 수 있다!

  • AWS에서 예시로 제공하는 10.0.0.0/16 CIDR을 사용하면
  • 10.0.0.0 ~ 10.0.255.255의 네트워크 범위를 지정한 것

VPC 생성 완료!

2. 서브넷 생성

VPC 지정

  • 서브넷은 VPC 내부에 존재하는 네트워크 구분을 위함
  • 서브넷이 위치할 VPC를 지정

가용 영역(AZ) 지정

  • 서브넷의 가용 영역(AZ)를 지정할 수 있다.
  • AZ끼리는 물리적인 위치(서로 다른 데이터센터)가 다름
  • 여러 AZ로 구성했을 때 하나의 데이터센터에 문제가 생기더라도 서비스 중단을 피할 수 있음

서브넷 CIDR 지정

  • 서브넷은 VPC에 포함되기 때문에 CIDR도 VPC에서 벗어나는 네트워크 범위를 지정할 수 없다.

  • 포함되는 CIDR로 변경

서브넷 생성 완료!

서브넷 추가 생성

  • 방금 생성한 서브넷과 중첩되는 네트워크를 지정할 수 없음

범위 수정

  • 기존에 CIDR이 10.0.0.0/24이었고 해당 범위가 (10.0.0.0 ~ 10.0.0.255)
  • VPC에 속하면서 기존 서브넷 범위와 중첩이 되지 않는 10.0.1.0/24로 지정

서브넷 추가 완료!

인터넷 게이트웨이(IGW)

  • VPC의 인스턴스와 인터넷 간에 통신할 수 있게 해줍니다.
  • 인터넷 게이트웨이에는 인터넷 라우팅 가능 트래픽에 대한 VPC 라우팅 테이블에 대상을 제공
  • 퍼블릭 IPv4 주소가 할당된 인스턴스에 대해 NAT(네트워크 주소 변환)를 수행하는 두 가지 목적

IGW에 대한 라우팅 추가

새로운 라우팅 테이블 생성

라우팅 편집

라우팅 테이블 확인

public subnet에 라우트 테이블 추가

public subnet에 인스턴스 생성

public ip 생성

인스턴스에 public ip 적용

접속 확인

private subnet

  • private subnet은 인터넷 연결을 허용하지 않게 하고 싶음
    * DB Server와 같은 Server에 외부에서 쉽게 접근하지 못하게 하기 위함
  • 그렇게 되면 private subnet 내부 인스턴스에는 원격으로 접속 불가능!
  • 그래서 Bastion Server가 필요! 아하
  • Bastion 이외에도 비슷한 역할을 하는 NAT나 AWS SSM을 사용하여 접속 가능!

참조

profile
Spring Framework를 이용한 웹 개발과 AWS 서비스, Container를 사용한 CI/CD 인프라에 관심이 있습니다.

1개의 댓글

comment-user-thumbnail
2024년 9월 9일

도움 많이 되었습니다. 추석 잘 보내세요!

답글 달기