VPC 처음부터 파헤치기 👀 - 1(feat. 네트워크 개념)

gyomni·2023년 2월 2일
0

AWS

목록 보기
1/1
post-thumbnail

들어가기

aws스터디에서 VPC 부분을 맡아 정리한 내용입니다.

1.VPC 기초

✅ VPC(Virtual Private Cloud)는 뭘까?

정의

VPC는 독립된 가상의 클라우드 네트워크이다.
: AWS 클라우드 안에서 논리적으로 독립된 섹션을 제공하여,
사용자가 정의한 가상 네트워크상에서 다양한 AWS 리소스를 실행할 수 있게 지원.

AWS console에서 VPC Dashboard에 접근하면 다양한 VAP 리소스들을 확인해 볼 수 있다

종류

구분기본 VPC사용자 VPC
생성 주체AWS사용자
AWS 리소스정해진 리소스 미리 생성수동으로 생성
리전 별 생성 수1개최대 5개 (기본값)

특징

  • 확장성

    • 클라우드 기반에 손쉽게 VPC 자원 생성 및 삭제 가능.
    • 설정 및 관리에 편의성 제공.
  • 보안

    • 인스턴스 레벨과 서브넷 레벨에서 인바운드&아웃바운드 필터링 수행 가능하도록
      보안 그룹과 네트워크 ACL을 제공해서 보안을 강화.
  • 사용자 중심

    • VPC 내 리소시에 대해 사용자가 원하는 대로 손쉽게 제어 가능.
    • 네트워크 지표와 모니터링 툴을 활용해서 사용자에게 높은 가시성 제공.
  • 제약 사항

    • 전통적인 네트워크 환경에서 사용가능 했던 기능이 제한되어 있거나 일부만 사용 가능하여 기술적 제약 따르게 됨.
    • 기술적 제약의 예: 브로드캐스트, 멀티캐스트, IP 기반 Failover 프로토콜(VRRP, HSRP)
    • 현재 서술한 제약 사항들은 AWS에서 지속적으로 기능 추가하며 개선해 나가는 중이라고 함.

✅ 기본 네트워크 개념 정리!

VPC에 대한 리소스를 알기 전에 기본적인 네트워크 개념을 학습하고 넘어가보자 ~~ !!

OSI 7 layer model

국체표준화기구(IOS)에서 개발한 모델로, 복잡한 네트워크 동작 과정을 7개의 계층으로 나누어 네트워크 통신 흐름을 이해할 수 있게 도와준다.

계층별로 하위 계층의 기능을 이용하고 상위 계층으로 기능을 제공하는 상하 관계를 맺고 있다.

IOS 7 레이어는 7개의 계층이 독립적으로 활동하고 있지만,
연관되서 유기적으로 동작하기 때문에 쌓여있다는 의미로 Stack 계층이라고도 표현한다.

하위계층으로 내려갈수록 (7계층 -> 1계층) Encapsulation(캡슐화)이 진행되고,
상위계층으로 올라갈수록 De-Encapsulation(역캡슐화)가 진행된다.

즉, 아래로 내려갈수록 데이터를 보내고자하는 단위가 점점 더 커진다는 의미다.

데이터 통신을 하는데 있어서 PDU(Protocol Data Unit)를 표준으로 통신하게 되고,
PDU 양식을 맞추기 위해 캡슐화 or 역캡슐화를 진행한다.
(아래의 이미지를 참고!)
[The following figure shows the encapsulation and de-encapsulation process in the OSI model]
[The following figure shows the encapsulation and de-encapsulation process in the TCP/IP model.]

통신분야에서의 캡슐화
OSI 계층모델에서 사용자 데이터가 각 계층을 지나면서,
하위 계층은 상위 계층으로부터 온 정보를 데이터로 취급하며,
자신의 계층 특성을 담은 제어정보(주소,에러제어 등)를 헤더화시켜, 이를 붙이는(포장하는) 일련의 과정이다.

역캡슐화는 데이터를 받는 과정으로 데이터가 전송 매체를 통해 전송한 후 헤더가 벗겨지게 되는 것이다.

  • 1 Layer - Physical 계층

    • 물리 계층으로 네트워크의 하드웨어 전송 기술을 말함.
    • 물리적인 링크의 연결 유지, 해제 담당.
    • 비트(Bit, 0또는 1)의 통신단위로 통신.
    • 대표적인 장비는 케이블(LAN 케이블), 허브, 리피터(장거리 통신시 파워 증폭) 등 존재.
  • 2 Layer - Data Link 계층

    • Physical 계층에서 송수신되는 정보의 오류와 흐름을 관리하여 데이터의 전달을 수행.
    • 주 목적: 물리적인 장치를 식별하는데 사용할 수 있는 주소 지정 체계를 제공하는 것.
    • 투 포인트 간의 신뢰정 있는 전송 보장
    • 대표적인 장비로는 브리지(Bridge)및 스위치(switch)가 있음.
    • 1,2 계층을 TCP/IP 프로토콜 상의 Network Interface 계층으로 분류.
      • 이 계층에는 Ethernet, Wi-Fi, 물리적인 케이블 등이 포함됨.
  • 3 Layer - Network 계층

    • 데이터를 목적지까지 바르고 안전하게 전달(라우팅)하기 위한 목적을 가짐.
    • 여러 노드를 거칠 때 마다 최적을 경로를 찾아주는 역할 수행.
      • 수신자의 IP주소를 기반으로 해서 라우터라는 장비가 경로를 결정해서 제공.
    • 전송 단위는 packet
    • TCP/IP 프로토콜 상의 Internet 계층으로 분류
      • 이 계층에는 IP, ARP, ICMP 등의 프로토콜 포함.
  • 4 Layer - Transport 계층

    • 전송 계층으로 종단의 사용자 간 데이터 통신을 다루는 최상위 계층.
    • 데이터 전달의 유효성과 효율성을 보장받음.
    • 주 목적: 하드웨어가 인지할 수 있는 데이터 하위 계층으로 신뢰할 수 있는 데이터 전송.
    • 단말(Endpoint)간 전달 데이터의 오류를 제어 (스퀀스 넘버 기반)
    • TCP/IP 프로토콜 상의 Transport 계층으로 분류
      • 이 계층에는 TCP(오류 방지, 신뢰성), UDP(데이터 손실이 있더라도 빠르게 전송) 등의 프로토콜 포함.
  • 5 Layer - Session 계층

    • 종단의 사용자 간의 응용 프로세스 통신 관리하기 위한 방법 제공.
    • 데이터 통신을 위한 논리적인 연결을 말함.
    • 모든 통신 장치 간에 연결을 설정하고 관리 및 종료.
    • 송신자와 수신자 간의 통신을 위해 동기화 신호를 주고 받음.
    • 통신 방식(단순(예전 tv), 반이중(무전기), 전이중(전화))을 결정.
  • 6 Layer - Presentation 계층

    • 데이터의 형식상 차이에 대해 송/수신자간 이해할 수 있는 형태로 데이터를 표현하는 기능 담당.
    • 데이터의 인코딩, 디코딩, 암호화, 복호화 및 압축 등을 수행.
    • Application 계층으로 받은 데이터를 읽을 수 있는 형식으로 변환
    • 확장자의 개념이 여기서 사용됨
  • 7 Layer - Application 계층

    • 응용 프로세스와 직접 연계하여 실제 응용 프로그램을 사용하는 계층.
    • 5~7 계층을 TCP/IP 프로토콜 상 Application 계층으로 분류.
      • 이 계층에는 HTTP(웹 접근 프로토콜), SSH, FTP(파일 전송 프로토콜), DHCP 등이 포함.

IP와 서브넷 마스크

  • IP(Internet Protocal)
    : 인터넷 상의 네트워크 자원들을 구분하는 고유한 주소로,
    OSI Layer에서 3계층에 해당하며 IP주소는 IP 버전4 (IPv4)와 IP 버전6 (IPv6)으로 구분 짓는다.

    구분IPv4IPv6
    주소 길이32bit128bit
    표기 방법8비트씩 4개의 파트로 10진수 표현 (39.118.188.233)16비트씩 8개의 파트로 16진수 표현(2002:0221:ABCD:CDEF:0000:0000:FFFF:1234)
    주소 개수약 43억개약 43억 x 43억 x 43억 x 43억

    표에서 보여진대로 IPv4와 IPv6는 표기 방법, 가용 숫자에서 큰 차이를 보인다.
    예전부터 IPv4는 가용 숫자 문제 및 효율성 문제가 제기되고 있음에 따라
    IPv6가 해당 문제에 진보된 특성을 보이지만 여전히 IPv4를 주로 쓰고 있다고 한다.

    기본적으로 네트워크의 통신 용도에 따라
    퍼블릭 네트워크( 실제 인터넷 구간으로 통신하는 공공 네트워크 )와
    프라이빗 네크워크( 인터넷 구간이 아닌 내부적으로 통신하는 사설 네트워크 )로 구분 짓을 수 있고,
    이 네트워크들이 사용하는 IPv4주소 대역이 지정되어 있다.

    [Public Service, Private Network]

  • Public IP (공인 IP)
    인터넷 구간의 통신 대상을 식별하기 위해
    ISP(Internet Service Providor:인터넷 서비스 공급자)에서 제공하는 IP 주소

  • Private IP (사설 IP)
    일반 가정이나 회사 등의 독립된 네트워크에서 사용하는 내부 IP주소.
    관리자에 의해 할당되며 독립된 네트워크 상에서 유일한 주소 갖고, Private IP 주소를 통해 외부 인터넷 구간과 통신 불가능.

    Private IP주소는 3가지 대역으로 고정
    - Class A: 10.0.0.0 ~ 10.255.255.255
    - Class B: 172.16.0.0 ~ 172.31.255.255
    - Class c: 192.168.0.0 ~ 192.168.255.255

  • 서브넷
    부분적인 네트워크를 의미한다.
    모든 네트워크 망이 거대한 하나의 망으로 이루어진 형태는 아니다.
    네트워크망에서 서브넷을 통해 부분적인 네트워크망으로 나누어지고 서로 연결되어 있다.

    그럼, 나누어진 서브넷은 서로 어떻게 구분할까? => 서브넷 마스크 사용!

  • 서브넷 마스크

IP주소에 네트워크 ID와 호스트 ID를 구분하는 기준값이다.

  • 네트워크 ID: 서브넷을 식별하는 영역
  • 호스트 ID: 서브넷에서 대상을 식별하는 영역
  => 동일한 서브넷에 속한 IP 주소의 네트워크 ID의 값은 모두 동일!
  => 호스트 ID를 통해 개별 구분!
  

TCP, UDP, Port번호

TCP, UDP
OSI 7 Layer 중 4계층에 사용되는 대표적인 전송 프로토콜이다.
TCP, UDP의 차이 -> 신뢰성있는 전송 여부

구분TCPUDP
OSI 모델4계층 (전송 계층)4계층 (전송 계층)
연결연결 지향성비연결 지향성
신뢰성보장 O보장 X
순서데이터 순서 보장 O데이터 순서 보장 X
제어혼잡 제어, 흐름 제어 제공 O혼잡 제어, 흐름 제어 제공 X
속도상대적으로 느림상대적으로 빠름
서비스HTTP, SSH, FTP 등DNS, DHCP 등

Port번호
TCP, UDP의 특성에 따라 제공되는 응용 프러그램 서비스가 있고, 이런 서비스를 구분할 때 포트 번호를 이용한다.

범위에 따라 크게 3가지로 구분 짓음 (IANA 단체에서 지정)
- 잘 알려진 포트(Well-Known Port: 0~0123)
- 등록된 포트(Registered Port: 1024~49151)
- 동적 포트(Dynamic Port: 49152~65535)

DHCP (Dynamic Host Configuration Protocol)

개념
동적으로 IPv4 주소를 일정 기간 임대를 하는 프로토콜이다.

  • UDP 프로토콜을 사용하며, 포트 번호 67, 68을 사용하여 동작
  • 네트워크상 호스트가 IPv4 주소를 할당할 때 수동으로 지정 및 DHCP를 통해 자동으로 지정 가능

절차

중앙 집중형 서버/클라이언트 방식으로 동작한다.
즉, DHCP 서버가 존재하고 네트워크 호스트가 클라이언트 서버가 되어 서버에게 IP할당을 요청하는 구조이다.

  • DHCP Discover: DHCP 클라이언트에서 DHCP 서버를 찾기 위한 메시지
  • DHCP Offer: DHCP 서버에서 할당한 IP 주소와 임대 시간을 알림
  • DHCP Request: DHCP 클라이언트에서 DHCP 서버로 할당받은 IP를 요청
  • DHCP Ack: DHCP 서버에서 최종적으로 할당 IP를 승인하여 알림

DNS (Domain Name System)

도메인 네임을 제공하기 위한 기술.
도메인 네임과 IP주소와 매핑하여 제공하는 기술.

  • 도메인 네임: IP 주소의 복잡한 주소 체계를 해소하기 위해 문자 형태로 구성된 이름
    - google 서버에 대한 주소는 IP형태로 되어있겠지만, 우리는 google.com 이라는 문자 형태로 접근한다.

(DNS에 대한 상세 정보는 Route 53 부분에서 다시 다룰것!)

라우팅 (Routing)

개념

  • 네트워크 통신을 수행할 때 거쳐 가는 경로를 잡아 주는 OSI 7 Layer에서
    3계층인 Network 계층의 핵심적인 기능 수행.

  • 네트워크는 여러개의 서브넷으로 이루어져 있고, 목적지 IP로 향할 때 여러 노드를 거쳐서 통신.

  • 복잡하게 연결된 네트워크망에서 최적의 경로를 잡아 통신하는 것

라우터, 라우팅 테이블
라우터는 라우팅 테이블을 통해 경로 파악 및 목적지 대상으로 데이터 전달.

  • 라우터: 라우팅을 수행하는 장비

✅ VPC 리소스

서브넷 (Subnet)


개념
서브넷의 일반적인 개념은 네트워크 영역을 부분적으로 나눈 망으로 정의할 수 있다.
클라우드 환경의 VPC 에서도 서브넷을 통해 네트워크를 분리하여 나눌 수 있다.

  • 서브넷은 1개의 가용 영역에 종속되어야 함
  • AWS에서는 서브넷에 할당할 수 있는 IP 대역에서 미리 예약되어있는 IP주소가 있고, 그러한 주소들은 AWS 자원에게 할당 불가능.
  • 서브넷은 크게 퍼블릭 서브넷과 프라이빗 서브넷으로 나눌 수 있다.

퍼블릭 서브넷
공인 네트워크 개념으로 외부 인터넷 구간과 직접적으로 통신할 수 있는 공공 네트워크이다.

  • 퍼플릭 IP로 인터넷 게이트웨이를 통해 외부 인터넷 구간의 사용자와 통신 가능

프라이빗 서브넷
사설 네트워크 개념으로 외부 인터넷 구간과 직접적인 통신을 할 수 없는 페쇄적인 네트워크이다.

  • 프라이빗 IP만 가지고 있어서 자체적으로 외부 인터넷 구간의 사용자와 통신 불가

가상 라우터와 라우팅 테이블

VPC를 생성하면 자동으로 가상 라우터가 생성된다.
가상 라우터는 라우팅 테이블을 가지고 있어 목적지 네트워크로 라우팅하여 통신된다.

인터넷 게이트웨이

VPC와 인터넷 간의 논리적인 연결이다.
VPC에서 인터넷 구간으로 나가는 관문이라 생각하기!

  • 인터넷 게이트웨이는 VPC당 1개만 연결 가능

  • 인터넷 게이트웨이를 통해 외부 인터넷 구간으로 통신할 수 있는 대상은 퍼블릭 IP를 사용하는 퍼블릭 서브넷 내의 자원.

    • 퍼블릭 서브넷은 자신의 라우팅 테이블에 외부 인터넷 구간으로 나가는 타깃을 인터넷 게이트웨이로 지정해주어야 함.

(인터넷 게이트 웨이에 대한 상세 동작은 인터넷 연결을 학습하면서 다루기!)

NAT 게이트웨이

인터넷 게이트웨이처럼 외부 인터넷 구간과 연결하는 관문 역할을 하고 있다.

인터넷 게이트웨이와 차이점은 NAT라는 명칭으로 알아볼 수 있다.

  • NAT(Network Address Translation): 네트워크 주소, 즉 IP주소를 변환해 주는 기술.
  • 인터넷 구간(=공공 네트워크 구간) -> 퍼블릭 IP를 통해 통신 이루어짐.
    • 프라이빗 IP는 인터넷 구간으로 넘어울 수 없고,
      이 때 NAT 게이트웨이가 프라이빗 IP를 퍼블릿 IP로 변환하여 통신 도움.

추가로, NAT 게이트웨이는 한쪽 방향으로 동작한다!

프라이빗 서브넷 -> 외부 인터넷 통신 O
외부 인터넷 -> 프라이빗 서브넷 통신 X

보안 그룹, 네트워크 ACL

VPC는 인스턴스 레벨과 서브넷 레벨 상에서 대상을 필터링 할 수 있는 보안 기술을 사용할 수 있다.

  • 인스턴스 레벨에서의 보안 기술: 보안 그룹
  • 서브넷 레벨에서 보안 기술: 네트워크 ACL(Access Control List)

보안 그룹: 인스턴스 별로 지정하는 보인기술
네트워크 ACL: 서브넷 별로 지정하는 보안 기술로 구분 지어 볼 수 있음.


학습 자료

profile
Front-end developer 👩‍💻✍

0개의 댓글