(UMC) 2. AWS (VPC & Internet Gateway & EC2)

jimmy·2024년 4월 18일

UMC 6기

목록 보기
2/11

선행지식

서브넷

서브넷의 등장 배경

클래스를 나누어 IP를 할당하는 IPv4 주소 체계는 상당한 양의 호스트 낭비가 생길 수 있기 때문에 이러한 비효율성을 해결하기 위해 네트워크 장치들의 수에 따라 효율적으로 사용할 수 있는 서브넷이 등장함

서브넷과 서브넷 마스크

서브넷 : IP 주소에서 네트워크 영역을 부분적으로 나눈 부분 네트워크
서브넷 마스크 : IP 주소 체계의 Network ID와 Host ID를 분리하는 역할을 한다. (=서브넷을 만들 때 사용되는 것)
서브넷팅 : 서브넷 마스크를 이용하면 원본 네트워크를 여러 개의 네트워크로 분리할 수 있는데, 이러한 과정을 말하며 이는 IP 주소 낭비를 방지하기 위함이다.

할당 가능한 네트워크 수 = 서브넷 마스크 bit 개수를 n개 늘렸다고 하면, 2^n개의 네트워크를 할당 가능하다. = 서브넷의 개수

라우팅

라우팅이란?

데이터의 목적지가 어디인지 확인하여 빠르고 정확한 길을 찾아 전달해 주는 것

라우팅을 하기 위해서 필요한 것

  • 출발지와 목적지의 네트워크 정보
  • 목적지로 가는 모든 경로
  • 최적 경로
  • 지속적인 네트워크 상태 확인

정적 라우팅 vs 동적 라우팅

정적 라우팅

장점
관리자에 의한 라우팅 정보만을 참조해서 라우터 자체에 부담이 없어 속도가 빠르고 안정적이고, 메모리 소모가 적다, 네트워크의 대역폭을 절약할 수 있으며 외부에 자신의 정보를 알리지 않아 보안에 강하다.
단점
네트워크에 대한 각 경로를 일일이 수동으로 추가해주어야하므로 번거롭다.
정해진 경로에 장애가 발생한 경우 네트워크 전체에 장애가 발생할 수 있다.

동적 라우팅

장점
라우터가 서로 라우팅 정보를 주고받아 자동으로 라우팅 테이블을 작성하기 때문에 관리자는 초기 설정만 해주면 되어 간단하다.
네트워크 규모가 커져도 자동으로 라우팅 테이블을 갱신한다.
단점
다른 라우터들과 계속 통신하기 때문에 많은 대역폭을 소비한다.

라우트,라우터,라우팅 차이

라우트(Route) : 서로 다른 네트워크 간 데이터를 전송하고 전송한 데이터를 받는 경로를 말한다.

라우터(Router) : 인터넷 공유기를 떠올리자, 라우터는 한개의 인터넷 회신을 여러개의 네트워트가 사용할 수 있도록 쪼개주는, 중계 역할을 해주는 장치다.

라우팅(Routing) : 데이터의 목적지가 어디인지 확인하여 빠르고 정확한 길을 찾아 전달해 주는 것

IP

IP의 종류

IP주소는 IPv4, IPv6 2가지 종류가 있다.

IPv4

IPv4는 32bit로 이루어진 주소이다. 우리가 보통 사용하는 IP는 이 IPv4이고, 전 세계적으로 인터넷 사용자 수가 급증하면서 IPv4 주소 고갈의 위기에 처해있다. 이를 해결하기 위해 등장한 주소가 바로 IPv6!

IPv6

32bit의 IPv4의 주소체계를 128bit 크기로 확장한 주소가 IPv6이다. IPv6의 주소공간은 거의 무한대로 쓸 수 있다. 하지만 기존의 주소체계를 변경하는데 비용이 많이 들어서 완전히 상용화가 되지 않았다.

여기서 의문이 생긴다.

🙋‍♀️IPv4가 고갈 위기라고 하는데 왜? 어떻게? 문제 없이 현재까지도
잘 사용하고 있나요?

정답은 기존의 주소체계에서 일종의 수학적인 트릭을 고안해서 사용하기 때문인데, 그 트릭 중 하나가 바로 사설 IP 개념이다.

고정 IP / 사설 IP / 공인 IP / 유동 IP

고정 IP

변하지 않고 컴퓨터에 고정적으로 부여된 IP로 한번 부여되면 반납 하기 전까지는 다른 장비에 부여할 수 없다. 보안성이 우수하기 때문에 보안이 필요한 업체나 기관에서 사용한다.

유동 IP

일정한 주기 또는 인터넷에 접속하는 매 순간마다 사용하고 있지 않은 IP 주소를 임시로 발급해 주는 IP

공인 IP

전 세계적으로 ICANN이라는 기관이 국가별로 사용할 IP 대역을 관리하고, 우리나라에서는 한국인터넷진흥원이 국내 IP 주소를 관리한다. 이것을 ISP(kt,skt와 같은 통신업체)가 부여받고 이 회사에 가입을 통해서 IP를 제공받아 사용하는데 이 IP를 공인 IP라고 한다.

사설 IP

공유기까지는 공인 IP 할당을 하고, 공유기에 연결되어 있는 가정이나 회사의 각 네트워크 기기에는 사설 IP를 할당한다.
즉, 사설 IP는 어떤 네트워크 안에서만 내부적으로 사용되는 고유한 주소를 말한다.
사설망 : 공유기에 연결되어 있는 네트워크 기기들에 사설 IP를 할당하여 그룹으로 묶는 방법

NAT

사설망과 외부 통신 방법을 말한다.
이를 통해서 인터넷 주소 변역을 할 수 있는데,

사설 -> 외부

사설IP를 받아와 유일한 공인 IP로 변환하고 외부 인터넷으로 이 공인 IP 주소정보를 보낸다.
이때 외부 입장에서는 어떤 사설 IP에서 보냈는지 알지 못한다.

외부 -> 사설

사설 -> 외부 상황에서 외부가 어떤 사설 IP에서 보냈는지 알지 못하지만 문제는 없다.
그 이유는, 답변을 하게되면, 라우터에 다시 인터넷 정보가 올 때 라우터에서는 이전에 요청한 정보들을 다 기억하기 때문에 그 사설 IP주소에게 답변을 전달해 줄 수가 있다.

CIDR

CIDR 개념

192.168.10.70/26 와 같이 표기한 것

CIDR블럭 = 서브넷

서브네팅 : 서브넷 마스크를 호스트ID 방향(오른쪽)으로 움직이는 것 - 호스트 수는 감소, 네트워크 수는 증가
슈퍼네팅 : 서브넷 마스크를 네트워크ID 방향(왼쪽)으로 움직이는 것 - 호스트 수는 증가, 네트워크 수는 감소

AWS CIDR

AWS는 서브네팅과 다른 차이점이 있는데,
원래라면 IP주소범위에서 2개만 제외하고 나머지가 사용할 수 있는 IP 주소겠지만,
AWS에서는 따로 자체 클라우드에서 설정해서 사용하고 있는 주소가 3개가 더 있기 때문에 총 5개를 제외하고 사용할 수 있다.

AWS에서 리전과 가용영역

리전

AWS는 글로벌 클라우드 서비스로 AWS에서 제공되는 클라우드 컴퓨팅 리소스들은 전 세계 각 국에서 호스팅 된다.

이때, 이 호스팅 되는 위치를 지리적 관점으로 영역을 구분하는 것이다.

🙋 한 지역에 모든 서버를 놓으면 안되는가?

서비스는 다양한 나라에서 이용하는데, 한 지역에만 서버를 놓게 되면, 해당 지역과 거리가 먼 곳에서 서버를 이용하려고 할 때 속도가 느려질 것이다. 또한, 자연재해가 발생했을 때 전체 서버가 마비될 위험이 있기 때문이다.

가용영역

1개 이상의 물리적인 데이터 센터를 묶어놓은 논리적인 데이터 센터이며, 쉽게 설명하면, 리전을 한번 더 분산해서 배치한 것을 말한다.

리전은 최소 2개 이상의 가용 영역으로 구성되며, 각 가용 영역은 최소 1개 이상의 데이터 센터로 구성된다. 개별 데이터 센터에는 일반적으로 50,000 ~ 80,000 대의 물리적 서버가 있다.

리전 내의 각 가용영역들은 전용 선으로 연결되어 있기 때문에 빠르게 데이터를 주고 받을 수 있다. 그러므로 빠르게 데이터를 백업하고 데이터를 이전할 수 있다.

VPC

VPC는 가상의 네트워크 영역이므로 사설 아이피 주소를 가진다.
VPC는 실제 사용 시 VPC 자체에서도 서브넷을 나눠서 사용하게 된다. 이 서브넷을 원하는 가용영역에 배치하여 사용한다.

vpc의 서브넷 아이피 대역에서는 실제 네트워크와 달리, 5개의 아이피 주소를 호스트에 할당 할 수 없다. 여기에는 VPC 라우터에 할당에 사용하는 아이피 주소가 있는데 vpc 내부적으로 라우터가 있고, 그러므로 VPC 내부 서브넷끼리 통신이 된다는 점을 알 수 있다.

VPC와 외부 통신

사설 아이피 대역은 공용 아이피 대역과 통신이 불가능한데 어떻게 AWS 인프라를 구축하여 통신이 되는걸까?
Public Subnet, Private Subnet 을 알고가자

Public Subnet

VPC 서브넷 중 외부와 통신이 원활하게 되는 서브넷 대역

🙋‍♀️ 어떻게 Public Subnet을 만들어?

AWS의 Internet Gateway를 통해서 만들 수 있다.
서브넷이 외부와 통신 할 때, Internet Gateway를 거치게 하면 외부와 통신이 가능하게 된다.

Private Subnet

외부와 통신이 되지 않는 서브넷 대역

🙋‍♀️ Private Subnet은 그럼 무슨 의미가 있을까?

일단, 사설 아이피 대역의 역할은 부족한 IP 주소 문제를 완화하고, 높은 보안성을 가진다는 특징이 있다.

부족한 IP 수조 문제 완화

공용 아이피 주소는 공유기에만 할당이 되고, 공유기에 연결된 디바이스들은 사설 아이피 대역을 받게 된다. 따라서 외부 인터넷이 공유기로 먼저 데이터를 보내고, 공유기는 포트를 통해서 각 디바이스들을 구분하여 데이터를 보내주게 된다.

📌포트포워딩
하나의 공용 아이피 주소를 가진 공유기가 자신의 포트를 통해
올바른 사설 아이피 주소를 가진 디바이스에게 데이터를 주는 것

높은 보안성

외부 네트워크의 디바이스는 공유기 뒤에 사설 아이피를 가지고 있는데,

이 디바이스로 직접 데이터를 절대로 전송할 수 없고, 무조건 공유기를 거쳐야 한다.

이 때, 공유기가 이상한 데이터는 버려준다면, 이는 보안성 측면에서 좋다고 할 수 있다.

🙋‍♀️그렇다면 이러한 특징을 가진 Private Subnet을 언제 사용하는 것인가?

릴리스 서버의 경우에 실제 고객의 데이터가 저장되는 데이터베이스를 보호해야하므로 이 데이터베이스를 Private Subnet에 배치하는 것이 필요하다.

🙋‍♀️데이터베이스에 원격으로 접속하고 싶다면?

Private Subnet의 자원에 접속이 되도록 도와주는 (같은 VPC에 존재하는) Public Subnet의 호스트인 배스천 호스트의 도움을 받으면 된다.

핵심 키워드

NAT 프로토콜

사설망과 외부 통신 방법으로, 인터넷 주소 변역 기능이다.

  • 사설 -> 외부

사설IP를 받아와 유일한 공인 IP로 변환하고 외부 인터넷으로 이 공인 IP 주소정보를 보낸다.
이때 외부 입장에서는 어떤 사설 IP에서 보냈는지 알지 못한다.

  • 외부 -> 사설

사설 -> 외부 상황에서 외부가 어떤 사설 IP에서 보냈는지 알지 못하지만 문제는 없다.
그 이유는, 답변을 하게되면, 라우터에 다시 인터넷 정보가 올 때 라우터에서는 이전에 요청한 정보들을 다 기억하기 때문에 그 사설 IP주소에게 답변을 전달해 줄 수가 있다.

포트번호

해당 IP주소가 가리키는 PC에 접속할 수 있는 통로이다.

포트는 0~65535번까지 있는데, 하나의 PC로 연결을 할떄, 포트번호에 따라 6만 가지 이상으로 구분할 수 있다.

0~1023번 포트는 잘 알려진 포트로 이미 사용되고 있거나, 상징성이 있기 때문에, 해당 프로세스가 아닌 경우에는 다른 포트 번호를 사용하게는게 일반적이다.

이미 사용중인 포트는 중복해서 사용될 수 없으므로 포트 번호를 지정할 때 해당 포트가 사용중인지 확인이 필요하다.

보안그룹

개념

AWS에서 가장 기본이 되는 네트워크 보안 기술이다. 이를 사용하여 EC2 인스턴스로 들어오거나(inbound) 나가는(outbound) 트래픽들을 직접 설정하여 제어할 수 있다.

보안 그룹 규칙

보안 그룹을 생성할 떄는 필요한 규칙들을 추가해주어야 하는데, 이러한 규칙들은 다음 옵션들로 트래픽을 제어할 수 있다.

  • 포트
  • 인증된 IP 범위
  • Inbound Network
  • Outbound Network

IAM

개념

Identity And Access Management의 약자로 사용자의 AWS 리소스에 대한 엑세스를 안전하게 제어하는 데 도움이 되는 서비스이다.

IAM을 사용하면 AWS 사용자 및 그룹을 생성 및 관리하고 권한을 사용하여 AWS 리소스에 대한 엑세스 권한을 부여하거나 거부할 수 있다.

🙋 리소스란?
AWS에서는 컴퓨팅, 스토리지, 네트워크 등을 의미함

🙋 엑세스란?
리소스를 조작 및 제어 CRUD

작동방식

보안주체 → 요청 → 인증 → 인가 → 작업 또는 연산 → 리소스
순서대로 작동한다.

IAM Role

신뢰하는 개체에 권한을 부여하는 안전한 방법
Role은 하나 이상의 정책(policy)를 기반으로 구성됨

IAM Policy

IAM에서 자격 증명에 대한 권한 설정 시 사용
Role 설정 시 원하는 권한을 정책으로 연결해서 사용

6가지 정책 타입

  • 자격 증명 기반
    • AWS 관리형 정책
    • AWS 고객 관리형 정책
    • AWS 인라인 정책
  • 리소스 정책 기반
    • 리소스에 연결하는 정책
  • 권한 경계 기반 정책
  • 조직 SCP 기반 정책
  • 엑세스 제어 리스트
  • 세션 정책

로드 밸런서

개념

클라이언트와 서버 그룹 사이에 위치해 서버에 가해지는 트래픽을 여러 대의 서버에 고르게 분배하여 특정 서버의 부하를 덜어준다.

로드 밸런서는 스케일 아웃 방식이다.

🙋 스케일 업과 스케일 아웃?

등장배경

서버가 하나인데 많은 트래픽이 몰릴 경우 부하를 감당하지 못하고, 서버가 다운되어 서비스가 작동을 멈출 수 있다. 이런 문제를 해결하기 위해서 스케일 업과 스케일 아웃 방식으로 해결하고자 함

스케일 업

기존 서버의 성능을 향상시키는 방법으로 CPU나 메모리를 업그레이드하는 것과 같은 작업을 포함한다.

스케일 아웃

트래픽이나 작업을 여러 대의 컴퓨터나 서버에 분산시켜 처리하는 방법이다.

스케일 아웃을 하게 되면 서버가 여러 대가 되기 때문에 각 서버에 걸리는 부하를 고르게 나누기 위해서 로드밸런싱이 필수적으로 동반되어야 함

장점

  • 비용 절감
  • 무중단 서비스 제공

주요 기능

  • NAT
  • 터널링 : 인터넷상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 해줌
  • DSR : 로드 밸런서 사용 시 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 스위치의 IP 주소가 아닌 클라이언트의 IP 주소로 전달해서 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념

로드 밸런싱 알고리즘

  • 라운드 로빈
  • 가중 라운드 로빈
  • 최소 연결 방식
  • IP 해시 방식

auto scaling

개념

서버의 과부하, 장애 등과 같이 서비스 불능 상황 발생시 자동으로 서버를 복제하여 서버 대수를 늘려주는 작업을 해주는 AWS 서비스

Scale Out을 자동화하기 위해 나온 서비스라고 보면 된다.

애플리케이션을 모니터링하고 용량을 자동으로 조정하는 역할을 하며, 최대한 비용으로 안정적이고 예측 가능한 성능을 유지한다.

오토 스케일링의 목표

  • 정확한 수의 EC2 인스턴스를 보유하도록 보장
  • 다양한 스케일링 정책 사용 가능
  • 가용영역에 인스턴스가 골고루 분산될 수 있도록 인스턴스를 분배

⭐ AWS 오토스케일링 서비스는 EC2뿐만아니라 여러 AWS 서비스와 유기적으로 연동하여 사용할 수 있다.


참고

profile
백문이 불여일기

0개의 댓글