대외활동/UMC 5th

Ch02. AWS (VPC & Internet Gateway & EC2)

oxdjww 2023. 9. 27. 01:41
728x90
반응형

Ch02. AWS (VPC & Internet Gateway & EC2)

Overview

AWS의 VPC를 이해한다.
서버가 어떻게 구축되는지 이해한다.

AWS Region

AWS에서 수많은 컴퓨팅 서비스를 하려면 대규모의 서버용 컴퓨터를 필요로 한다.
이 때, 많은 컴퓨터를 한 곳에 몰아두면 2가지의 불편한 점이 생긴다.

  1. 자연 재해가 발생 할 경우 모든 서비스가 마비가 된다.
  2. 모든 자원이 북미에 있다면, 지구 반대편의 아시아 지역은 멀어서 서비스가 느리다.

이에, AWS는 컴퓨팅 리소스를 전세계에 고루 분배해두었고, 이를 지역(Region)으로 구분한다.

  • 가용영역 : 리전을 한번 더 분산하여 배치한 것

AWS VPC

사전지식


203.230.7.0/24

  • 아래 아이피 주소에서 찾아낼 수 있는 것은?

    네트워크 주소 : 203.230.7.0

    할당 가능한 호스트 갯수 : 256개 - 2

  • 위의 아이피 대역은 아래와 같이 두 영역으로 나눌 수 있다.

203.230.7.0/25, 203.230.7.128/25


이 때, 네트워크 주소가 다르기에 다른 LAN으로 인식된다.
따라서, 라우터 / L3 스위치가 게이트웨이 역할을 해주어야 통신이 가능하다.

VPC란?


VPC는 Virtual Private Cloud로, 가상의 사설 네트워크이다.
그러므로 당연히 사설 IP 주소를 가진다.

리전 하나 당 최대 5개의 VPC가 가능하며, 각 리전에는 default VPC 가 하나씩 존재한다.
VPC는 기본적으로 사설 리소스이기 때문에 사설 IPv4주소만 할당 가능하다. (서브넷 포함)

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/24

각 리전마다 존재하는 VPC들은 IP 대역이 겹치면 안 된다.

VPC의 실제 사용


VPC는 실제 사용 시 VPC 자체에서도 서브넷을 나누어 사용하게 된다.

예시로 10.0.0.0/16 라는 영역을 할당받은 VPC에서
10.0.1.0/24
10.0.2.0/24
10.0.3.0/24
으로 서브넷을 나누어 사용할 수 있다는 말이다.
(단, 이렇게 VPC를 서브넷으로 나누면, 여기서 다시 나누지는 못 한다.)

  • 유의할 점
    실제 네트워크와는 다르게, VPC의 IP 대역에서는 2개가 아니라 5개의 IP 주소가 예약되어 있다.
    1. 첫 주소 : 서브넷의 네트워크 대역
    2. 두번째 : VPC 라우터에 할당
    3. 세번째 : Amazon이 제공하는 DNS에 할당
    4. 미래를 위해 예약
    5. 브로드 캐스트 주소
    • 2번째 항목을 통해, VPC 내부에 라우터가 존재하고, VPC 내부 서브넷끼리 통신이 가능하다는 사실을 알 수 있다.

VPC와 외부 통신


VPC는 위에서 설명했듯이, 사설 아이피 대역이다.
기본적으로 사설 아이피 대역은 공용 아이피 대역과 통신이 불가능하다.

하지만 AWS VPC는 아래와 같은 개념을 도입했기에 가능하다.

Public Subnet과 Private Subnet


Public Subnet은 VPC 서브넷 중 외부와 통신이 원활하게 되는 서브넷 대역이고,
Private Subnet은 외부와 통신이 되지 않는 서브넷 대역이다.

Public Subnet


AWS의 Internet Gateway를 통해 서브넷을 퍼블릭 서브넷이 되게 할 수 있다.
서브넷이 외부와 통신을 할 때, Internet Gateway를 거치면 외부와 통신이 가능해진다.

즉, 퍼블릭 서브넷으로 만들고 싶은 서브넷의 통신 흐름이 Internet Gateway를 통해 밖으로 나갈 수 있도록
라우팅 테이블을 설정해주어야 한다.

  • 예제

    표(라우팅 테이블)를 다음과 같이 해석할 수 있다.



    Destination 으로 나갈 떄, Target 을 거쳐서 나가면 된다.
    (Local은 내부 VPC 라우터에서 알아서 처리할 것이라는 의미이다.)



Private Subnet


Public Subnet과 달리, 특별한 설정을 해주지 않는다.
그러기에 그저 외부와 단절된 사설 IP로 이루어진 서브넷이라고 볼 수 있다.

사설 IP의 역할

  1. 부족한 IP 주소 문제를 완화
    NAT라는 기술을 통해, 공용 IP 주소를 네트워크 디바이스에 할당하지 않고도, 많은 디바이스들이 네트워크 서비스를 이용할 수 있다.

    자세히 설명하면, 와이파이 공유기는 공용 IP 주소를 할당 받는다. 그리고 이 공유기에 연결한 네트워크 디바이스들은 사설 IP를 받게 된다.
    공유기에 연결되어 있는 디바이스들은 외부에 통신할 때 공유기를 통해 나가며, 이 때 사용되는 기술이 포트포워딩이다.


    포트 포워딩(==포트 매핑)이란..
    서로 다른 IP 주소에서 통신할 때, 한 [IP주소1:포트번호1][IP주소2:포트번호2]가 매핑되어, 통신을 할 수 있게 연결하는 개념



  2. 보안성
    NAT table을 통해 내부 IP 주소를 숨기고, 공용 IP 주소를 이용해 통신을 하므로 보안상 좋다.
    내부 IP 주소를 숨길 수 있기에 외부에서 함부로 접근할 수 없다는 말이다.


    또, topology상 IDS 및 IPS를 위치시키기에도 적절하여 malicous packet을 탐지/차단 할 수 있다.


Private Subnet을 이용한 리소스 보호

서비스를 배포할 때, 고객의 정보가 저장되는 데이터베이스가 있는 상황을 가정하자.
이를 안전하게 보관하기 위해 private subnet에 배치할 것이다.

이 때, 데이터베이스의 리소스를 사용하는 서버(예를 들면 백엔드 서버)를 같은 VPC에 배치하면 원활히 통신할 수 있다.
또, 외부와 통신해야 할 일이 있을 때는, 패킷이 private subnet 내부에서 public subnet을 통해 외부로 나가게 된다.
그 절차는 다음과 같다

미숙한 그림 실력 양해 부탁 드립니다.. ㅎㅎ


Private Subnet 내의 서비스(노드) 원격 접속

데이터베이스나, EC2 instance에 외부에서 접속할 때는 어떡할까?
-> Private Subnet 내부 노드에는 직접적으로 접근할 수 없기에, SSH 터널링이라는 기술을 이용하여 접근한다.

e.g. Datagrip에서 private subnet 내의 database에 접근할 때 이용된다.


감사합니다.

728x90
반응형