Environment(개발환경)/Infra(인프라)

[AWS] 강의노트 - (3) Amazon VPC 개념

ttaeng_99 2023. 6. 13. 05:18
반응형

AWS 강의 커리큘럼을 통해, 기본적인 사용법 학습과 경험을 취득하고자 수강을 시작했다!

애초에 코딩하면서 수기노트를 한 적도 까마득하며, 글씨 쓰는것도 귀찮아하는 나이기에 포스팅으로나마 주요내용을 정리하며 강의를 들으려한다!

- 강의 : CloudNet@와 함께하는 AWS 네트워킹 입문 (인프런 링크)

 

CloudNet@와 함께하는 AWS 네트워킹 입문 - 인프런 | 강의

AWS 클라우드 입문자를 대상으로, AWS 클라우드 네트워크 기초 지식을 따라하며 배우는 실습 기반의 입문 강의입니다., - 강의 소개 | 인프런

www.inflearn.com

* CloudNet@ 측에서 강의영상 및 자료 저작권이 있어, 최대한 내용이해를 도울 수 있는 사진으로 대체해보려고 합니다 😁😁


☁️ 기본 네트워킹 개념

네트워킹은 IT 자원 간 상호연결을 통해 데이터를 교환하고 자원을 공유할 수 있는 통신환경을 말한다.

이 통신에는 통신규약(Protocol) 을 기반으로 교류된다.

 

- OSI 7계층 모델

네트워킹의 복잡한 과정을 7개 계층으로 분류하는 모델. 국제 표준화 기구(ISO) 에서 개발했다.

계층은 독립적이지만, 상하관계를 이루기 때문에 하위계층이 정상동작해야 다음 상위계층으로 전개된다.

 

  1. 물리(Physical) 계층: 네트워크 하드웨어 전송 기술들을 정의. 물리적인 매체의 연결과 유지(전기적인 신호)
  2. 데이터링크(Datalink) 계층: 물리계층의 하드웨어 신호를 소프트웨어 신호(데이터 프레임) 로 전달
  3. 네트워크(Network) 계층: 데이터를 목적지 네트워크(IP주소)까지 전달. 최적의 경로로 패킷 형태로 전달(라우팅).
  4. 전송(Transport) 계층: 세그먼트 형태로 데이터 전송. TCP, UDP 등 프로토콜 적용(유효성, 효율성 확보)
  5. 세션(Session) 계층: 종단 간의 응용 프로세스 통신 관리 목적. 상호 논리적인 연결을 수행
  6. 표현(Presentation) 계층: 데이터를 이해 가능한 형태로 변환
  7. 응용(Application) 계층: 애플리케이션과 연동한 실제 서비스(HTTP 웹서비스, FTP 파일전송, SSH 보안 네트워크 원격 접속 등)

OSI 7계층을 범용적인 통신방식인 TCP/IP 4계층 모델로도 재구분하기도 한다. 이는 전에 정리한 포스팅을 참고 바란다! (참고링크)

 

[Web] OSI 7계층 vs TCP/IP 4계층

오늘 면접을 본 회사에서, 가장 기본적인 개념을 물어보았다. 웹페이지의 도메인을 엔터했을 때, 이것이 브라우저까지 보여지는 일련의 과정. 나는 브라우저 렌더링 절차에 관해서만 설명하였

abangpa1ace.tistory.com

 

 

- OSI 네트워크 계층(Network Layer, 3계층)

 

1. IP(Internet Protocol) 주소

 

네트워킹 환경에서 IT자원을 식별하기 위한 3계층의 고유 주소. IPv4(32bit), IPv6(128bit) 2가지 버전으로 구분.

 

IPv4는 2진수 32자리를 4개영역(각 8자리) 로 구분해서 정의된다. 이는 온점(.)으로 구분되며, 이 영역을 옥텟이라 한다.

이 옥텟들의 표기가 용이하도록, 10진수로 변환한 방식이 우리가 보편적으로 사용하는 IP패턴인 것이다.

 

할당방식(주체가 관리자인지, 서버인지) 에 따라 고정 IP주소, 유동 IP주소,

통신용도(인터넷 구간인지, 독립 네트워크인지) 에 따라 Public IP주소(ISP 제공), Private IP주소 로 각각 구분할 수 있다.

 

 

2. Subnet(서브넷)과 서브넷 마스크

 

네트워크는 주체와 목적에 따라 부분 네트워크(Subnet, 서브넷)로 나뉘며, 이 서브넷들이 연계되어 네트워크 환경을 구성한다.

 

서브넷 마스크를 통해 식별하며, IP주소와 동일한 구조를 가지되, 1이 먼저 나열되고 그 다음에 0이 나열된다.

2진수의 1은 네트워크 ID영역(같은 네트워크인지), 0은 호스트 ID영역(서브넷 내 자원식별)이 되며, /24 처럼 네트워크 ID Bit수를 적어주기도 한다.

즉, 32Bit의 어디까지를 네트워크ID, 그 이후는 호스트ID 로 구분할지에 대한 기준으로, 이를 통해 자원의 효율적 관리가 가능하다.

이러한 표현법을 IP CIDR(Classless Inter Domain Routing) 으로 명명한다.

* 서브네팅 관련 더 많은 정보는 해당 링크를 참고했다. (https://code-lab1.tistory.com/34)

 

[네트워크] 서브넷, 서브넷마스크, 서브넷팅이란? | 서브넷팅 예제

서브넷의 등장 배경 흔히 사용되는 IPv4 주소 체계는 클래스를 나누어 IP를 할당한다. 하지만 이 방식은 매우 비효율적이다. 예를 들어 어떤 기관에 A 클래스를 할당한다고 하면 16,777,214개의 호스

code-lab1.tistory.com

 

 

3. 라우팅과 라우터

 

최적의 목적지 경로를 선택하는 작업을 라우팅(Routing), 이를 수행하는 장비를 라우터(Router) 라고 한다.

라우팅 테이블에 경로를 기록하고, 이 경로를 통해 패킷(2계층으로부터의 데이터 유형) 을 전달한다.

 

 

- OSI 전송 계층(Transport Layer, 4계층)

1. TCP와 UDP

전송 계층의 대표적인 프로토콜들로, 데이터 전송의 역할을 담당

TCP(Transmission Control Protocol)

  • 연결성 프로토콜로(1:1), 통신 전 3-way Handshake 라는 연결작업이 선행 (해제는 4-way Handshaking)
  • 신뢰성 높음 (데이터 전송 후 응답 확인하여 정상전달 파악)
  • 속도 느림 (연결절차 필요)
  • 서비스
    • HTTP(Hyper Text Transfer Protocol) : 웹서비스에서 하이퍼 텍스트 정보를 통신하는 프로토콜. TCP 포트번호 80 사용
    • SSH(Secure Shell) : 네트워크로 원격장비에 접속하는 프로토콜. 보안키를 통해 보안채널 구성하며, TCP 포트번호 22 사용

 

UDP(User Datagram Protocol)

  • 비연결성 프로토콜(1:다)
  • 신뢰성 낮음 (데이터 전송결과 확인 없이 지속적으로 전달, 유실 가능성)
  • 속도 빠름
  • 서비스
    • DHCP(Dynamic Host Configuration Protocol) : 동적 IP주소 임대 프로토콜. UDP 포트번호 67, 68 사용
    • DNS(Domain Name System) : 복잡한 IP주소를, 가독성 좋은 도메인 주소로 제공하는 프로토콜. UDP 포트번호 53 사용

☁️ Amazon VPC

VPC(Virtual Private Cloud)는 AWS에서 제공하는 독립된 가상 프라이빗 클라우드 네트워크로, 사용자만의 클라우드 네트워크 구성

  1. IP CIDR : 10.0.0.0/16, 프라이빗
  2. Subnet : 각 서브넷을 통해 부분 네트워크로 분리하여 구성. 내부에 인스턴스와 같은 IT자원 배치 가능
  3. 가상 라우터 : 목적지까지 통신
  4. 인터넷 게이트웨이 : 인터넷 구간과 직접적인 연결 가능
  5. NAT 게이트웨이 : IP 주소를 변환할 수 있는 VPC요소 (선택적)
  6. 보안 그룹 : IT자원의 보안을 위해 그룹핑이 가능하며, 네트워크 ACL로 필요한 트래픽만 접근 가능

 

* Amazon VPC 유형

  • 기본 VPC(Default VPC) : 생성주체가 AWS(정해진 자원 미리 생성). 리전 당 1개
  • 사용자 VPC(Custom VPC) : 생성주체가 사용자(수동으로 자원 생성). 리전 당 최대 5개

 

 

 

☁️ Amazon VPC 구성요소

1. VPC Subnet(서브넷)

VPC에서도 서브넷을 통해 네트워크를 분리 가능. 서브넷 IP CIDR은 VPC IP CIDR에 속해 있어야하며, 서브넷은 1개의 가용영역에 종속.

 

VPC 서브넷은 퍼블릭 서브넷과 프라이빗 서브넷으로 분류된다.

  • Public Subnet : 외부 인터넷 구간과 직접적으로 통신할 수 있는 공공 네트워크
  • Private Subnet : 외부 인터넷 구간과 직접적으로 통신할 수 없는 폐쇄적 네트워크

퍼블릭 서브넷은, 외부 인터넷 구간 통신을 위해 IT자원을 가상 라우터(라우팅 테이블)에 따라 인터넷 게이트웨이를 통해 외부로 통신한다.

반면 프라이빗 서브넷은, IT자원을 가상 라우터에서 외부 통신을 수행하지 않는다.

 

 

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

VPC를 생성하면 가상 라우터가 생성되고, 라우팅 테이블에 의해 라우팅을 수행.

최초엔 로컬 경로로만 구성된 기본 라우팅 테이블을 보유한다.

 

또한, 서브넷별로 통신구간이 다를 수 있기에 기본 외에 별도의 라우팅 테이블을 생성할 수 있으며, 이들은 각각의 서브넷에 개별연결(Attach) 되어있다.

 

 

3. 인터넷 게이트웨이

VPC에서 인터넷 구간으로 통신하기 위한 관문. VPC 내부의 가상 라우터, 그리고 외부의 인터넷 구간과의 통신을 위한 통로이다.

  1. 퍼블릭 서브넷인터넷 게이트웨이를 타깃으로 하는 라우팅 테이블을 추가
  2. 서브넷의 IT자원(패킷) 을 가상 라우터로 전달
  3. 가상 라우터는 라우팅 테이블을 확인하여, 인터넷 게이트웨이로 패킷을 전달
  4. 인터넷 게이트웨이를 통해 인터넷 구간으로 패킷 통신

 

프라이빗 서브넷은 인터넷 구간과 직접적인 통신을 하지 않는다. (Private IP로 구성되어있음)

퍼블릭 서브넷의 NAT 게이트웨이로 우회해서, Public IP로 변경한 후 통신을 한다.

그래서, 라우팅 테이블도 NAT 게이트웨이를 타깃으로 추가해주게 된다.

 

* NAT 게이트웨이

 

VPC에서 IP주소를 변환하기 위한 관문으로, NAT(Network Address Translation) 게이트웨이를 통신한다.

Private IP주소를 Public IP주소로 변환할 때 사용되며, 통상 퍼블릭 서브넷에 설정된다.

ex) 공유기는 단말기들에 Private IP를 할당하나, 인터넷 구간과 통신할 땐 NAT를 통해 Public IP로 변환해서 통신한다. (IPv4 주소부족 이슈해결)

 

 

4. 보안그룹과 네트워트 ACL(Access Control List)

트래픽 접근제어를 위한 구성요소. VPC내 서브넷 및 IT자원을 보호하는 가상 방화벽 기능을 수행한다.

보안그룹은 인스턴스, 네트워크 ACL은 서브넷 전단에 배치되어, 트래픽이 들어올 때 접근제어를 수행한다.

 


📎 참고

- [Subnet, Subnetting] code-lab1 님의 블로그 : https://code-lab1.tistory.com/34

- [TCP & UDP] cocoon1787 님의 블로그 :  https://cocoon1787.tistory.com/757

반응형