[서버 기초] AWS(VPC & Internet Gateway & EC2)

Sujung Shin·2023년 10월 3일
0

서브넷(subnet) 과 서브넷 마스크(subnet mask)

서브넷은 IP 주소에서 NW 영역을 부분적으로 나눈 부분 NW을 말한다.
서브넷 마스크란 서브넷을 만들 때 사용되는 것

서브넷 마스크는 NW ID / Host ID 두 가지를 분리하는 역할을 한다.

IP주소 &(AND) subnet mask = NW ID

예를 들어 192.168.32.0/24이라는 IP주소가 있다면,

    1. 해당 IP주소는 C클래스에 해당하고, C클래스의 서브넷 마스크는 255.255.255.0이다.
    1. 해당 IP주소 뒤에 붙은 /24란, 해당 IP주소의 서브넷 마스크가 왼쪽에서 24bit가 1이라는 것을 의미한다.(서브넷 마스크 수)

서브넷팅(subnetting)

서브넷팅(subnetting)이란 IP주소 낭비를 방지하기 위해 원본 NW를 여러개의 서브넷으로 분리하는 과정이다. 서브넷팅은 서브넷 마스크의 bit수를 증가시키는 것이라고 생각하면 편하다.
서브넷마스크의 bit수를 1씩 증가시키면 NW는 2배수로 증가하고, host수는 2배수로 감소한다.
예컨대, 192.168.32.0/24를 서브넷 마스크의 bit수를 1증가시켜 (subnetting한다고 한다), 192.168.32.0/25로 변경해보자.
할당 가능한 NW 수는 2개로 늘어나고, 할당 가능한 host 수는 기존의 2^8-2개에서 2^7-2개로 감소한다. (-2가 붙는 이유는 192.168.32.0은 NW address로, 192.168.32.255는 Broadcast로 쓰이기 때문에 host에 할당할 수 없다)
또한 서브넷 마스크는 255.255.255.0에서 255.255.255.128로 변한다.


✍️ 예제


1. 211.100.10.0/24 네트워크를 각 서브넷 당 55개의 Host를 할당할 수 있도록 서브넷팅한다고 하자.

1-a. 서브넷 마스크를 구하시오.
: Host ID bit에 따라 할당할 수 있는 host의 갯수가 결정되므로 Host ID bit이 6이면 2^6-2= 62개의 host를 할당할 수 있다. 따라서 32개의 bit 중 6개의 bit은 0, 나머지 26개의 bit은 1이면 서브넷 마스크가 된다 11111111.11111111.11111111.11000000 := 255.255.255.192

1-b. 서브넷의 개수를 구하시오.
: 기존 NW ID를 나타내는 비트보다 2개의 비트를 더 표현하므로 2^2 = 4개의 서브넷이 가능하다.

1-c. 첫번째 서브넷의 Broadcast의 주소를 구하시오.
: 211.100.10.0을 이진법으로 변환하면 11010011.01100100.00001010.00000000이고, 첫번째 서브넷이므로 11010011.01100100.00001010.00111111이 broadcast주소이다. 211.100.10.63

1-d. 마지막 서브넷의 NW 주소를 구하시오.
: 11010011.01100100.00001010.11000000이 정답이다. 211.100.10.192

1-e. 두번째 서브넷의 사용가능한 IP주소를 구하시오
11010011.01100100.00001010.01000000부터 시작하는데,
11010011.01100100.00001010.01000000은 NW address이고,
11010011.01100100.00001010.01111111은 broadcast address이므로
211.100.10.65~211.100.10.126이다.

라우팅(Routing)

L3 장비(router)에서 일어나는, 목적지까지 데이터 또는 메시지를 체계적으로 다른 NW에 전달하는 경로 선택(Path Determination) + 스위칭(Switching) 하는 과정

📌 라우팅 시 필요한 정보

  • 출발지와 목적지의 NW 정보
  • 목적지로 가는 모든 경로
  • 목적지로 가는 최적 경로(Routing Table)
  • 지속적인 NW 상태 확인

IP 기초


📌 IP(Internet Protocol)


인터넷에 연결된 모든 장치들(컴퓨터, 서버 장비, 스마트폰)을 식별할 수 있도록 각각 장비에게 부여된 고유 주소이다.(IPv4, IPv6)가 있다.

IPv4는 32bit로 이루어져있으므로, 0~2^32 := 약 42억9천 => 고갈될 위기에 처해있다.

이를 해결하기 위해 등장한 것이 IPv6이지만, 아직까지 비용적인 이슈로 현재 시점에서의 적절한 해결책은 아니다.
따라서 수학적인 trick을 사용하여 아이피를 할당하는데, 바로 사설 IP 개념이다.

📌 공인 IP / 사설 IP


공인 IP는 ISP가 부여받고, 유저는 회사에 가입을 통해 IP를 제공받는다.
공인 IP는 전세계에서 유일하다.
사설 IP(local IP)는 공유기를 이용한 인터넷 접속환경일 경우, 공유기까지만 공인 IP를 할당받고, 그 안의 home NW나 local NW같은 경우의 각 기기에게는 사설 IP를 할당한다.
즉, 사설 IP는 local environment안에서 unique하다.

VPC


기본적으로는 사설 IP 컨셉.(대역도 사설 IP대역을 이용한다)
subnetting을 통하여 private subnet, public subnet으로 만들어서 AWS내 구축된 인프라와 통신할 수 있다.
AWS 인프라와 통신하기 위해서(=public subnet으로 만들기 위해서)는 Internet Gateway를 거쳐서, Internet Gateway를 통하여 밖으로 나가도록 라우팅 테이블을 조정해준다.

Destination : 10.0.0.0/16
Target : Local

라우팅 테이블에 다음과 같이 써져있다면: VPC NW로 들어올 때, Target은 VPC내부의 라우터가 알아서 하겠다는 의미!
그렇다면 의문이 든다... VPC내부의 라우터는 각 디바이스들을 어떻게 구분하는 것인가??

🎯 Port Forwarding(포트 포워딩)


라우터 안으로 들어오면, port별로 각 디바이스들을 구분한다.
하나의 공용 IP 주소를 가진 공유기가 자신의 포트를 통해
올바른 사설 IP 주소를 가진 디바이스에게 데이터를 주는 것

Socket 에서의 port ≠ Port Forwarding에서의 port임을 기억하자❣️

VPC에서의 Private Subnet?


릴리즈 서버 같은 경우는 실제 고객의 데이터가 저장되는 DB의 보안성 이슈 때문에 VPC의 Private Subnet에 배치해야 한다.

DB를 사용하는 EC2와 같은 자원을 같은 VPC에 배치하고,
MySql Workbench 혹은 DataGrip으로 원격 접속하여 DB에 저장된 데이터를 확인하자.

profile
백문이불여일타

0개의 댓글

관련 채용 정보