[AWS] 06장. 가상 네트워크 서비스 Amazon VPC - 그림으로 이해하는 AWS

정은아·2024년 11월 25일
1
post-thumbnail

06장. 가상 네트워크 서비스 Amazon VPC


💡 Amazon VPC란 AWS 계정 전용 가상 네트워크이다.
ㅤ 네트워크와 서브넷 범위, 라우팅 테이블, 네트워크 게이트웨이 등을 설정할 수 있다.

🎨 6.1 VPC: AWS에 생성하는 가상 네트워크

📌 6.1.1 Amazon VPC란

  • 웹 서버나 데이터베이스 서버와 같은 서버들은 네트워크에 연결되어 있어야 한다.
  • 한 장소에 모아서 네트워크를 연결하는 것도 가능하지만 그렇게 되면 서버로서의 의미가 없다.
  • 이러한 네트워크를 구축하기 위해 사용하는 것이 Amazon Virtual Private Cloud(Amazon VPC)이다.
  • 아마존 VPC는 AWS계정 전용 가상 네트워크 서비스로, AWS에서 제공하는 리소스만 설치할 수 있다.
  • 특히 EC2나 RDS의 경우 VPC를 선택하지 않으면 서버를 생성할 수 없기 때문에 리소스를 사용하기 위해서 반드시 필요한 서비스다.

📌 6.1.3 VPC의 기능

  • VPC는 네트워크 게이트웨이 등과 같은 가상 네트워킹 환경을 설정할 수 있다.
  • 가상 환경이기 때문에 물리적인 네트워크와 다른 점도 있지만, 기본적인 개념은 같다.
  • 또한, IPv4와 IPv6 둘 다 사용할 수 있다.

📌 6.1.4 VPC 네트워크의 특징과 라우팅 테이블

  • VPC 네트워크는 클라우드이기 때문에 일반 네트워 조금 다르다.
  • 가장 큰 차이점은 라우터이다.
  • VPC는 물리적인 라우터가 아닌 소프트웨어가 라우터 역할을 하며 라우팅을 수행한다.
  • 라우팅은 설정된 라우팅 테이블에 따라 동작하는데, 라우팅 테이블 하나에 서브넷 여러 개를 설정할 수 있다.
  • 물리적인 서버의 경우 LAN 케이블과 와이파이로 라우터와 연결하겠지만, 클라우드는 라우팅 테이블로 연결한다.
  • 일반적인 서버넷 사이의 통신을 라우터로 이루어지지만, VPC의 경우 라우터 없이 직접 통신할 수 있다.
  • 또한, VPC 하나의 인터넷 게이트웨이 한 개만 설정할 수 있다.
  • 라우터와 인터넷 게이트 외에는 명시적인 IP 주소가 부여되지 않는다.

😃 VPC 네트워크의 특징

  • 소프트웨어가 라우팅한다. 라우터는 IP 주소를 갖지 않는다.
  • 라우팅 테이블 한 개에 서브는 여러 개를 설정할 수 있다. 줄바꿈할 수 있고, IP
  • 주소를 갖지 않는다. 서브넷 사이의 통신을 라우터 없이 직접 통신할 수 있다.

🎨 6.2 VPC의 사용 절차: 가상 네트워크를 사용하자

📌 6.2.1 VPC 설정을 위해 꼭 필요한 사항

  • VPC는 네트워크이다.
  • 따라서 서버가 어떤 환경에 설치되어 있는지 그리고 인터넷에 연결해야 하는지에 대한 설정이 필요하다.
  • 특히 중요한 것은 인터넷 연결 여부와 오토 스케일링이다.
    • 인터넷에 연결해야 한다면 인터넷 게이트웨이를 설정해야 한다.
    • 오토 스케일링을 설정해야 한다면 서버가 자동으로 늘어나기 때문에 IP 주소를 많이 확보해 두어야 한다.
  • 또한, 보안 그룹과 네트워크 ACL을 설정하려면 인스턴스 용도에 맞는 포트를 설정하는 것도 고려해야 한다.

🎨 6.3 기본 VPC: AWS가 제공하는 기본 VPC

📌 6.3.1 기본 VPC란

  • AWS는 리전별로 기본 VPC를 제공한다.
  • 기본 VPC는 특별한 설정 없이 바로 사용할 수 있다.
  • 특별한 요건이 없다면 기본 VPC를 사용하는 편이 좋다.

📌 6.3.2 기본 VPC의 구성

  • 기본 VPC는 서브넷과 인터넷 게이트웨이가 기본적으로 구성되어 있다.
  • EC2, RDS를 생성할 때도 기본 VPC를 선택할 수 있다.

🎨 6.4 서브넷과 DHCP: 사용할 범위 선택

📌 6.4.1 서브넷이란

  • 서브넷이란 커다란 네트워크를 작게 나눈 네트워크를 말한다.
  • AWS의 경우에는 어떤 가용 영역에 서브넷을 둘지 설정한다.
    • 즉, 서브넷은 물리적인 장소를 특정한다.
  • 또한, VPC는 사용자가 사용할 수 있는 네트워크 범위를 생성하고 그 아래 용도에 따라서 서브넷(작은 네트워크)를 생성한다.
  • 일반적인 네트워크의 경우 서브넷끼리 통신하려면 라우팅이 필요하지만, VPC의 경우에는 라우팅 없이도 통신할 수 있다.

📌 6.4.2 네트워크의 범위와 CIDR 표기

  • 네트워크와 서브넷의 범위를 나누는 데 사용되는 표기법을 CIDR(Classless Inter-Domain Routing)라고 한다.
  • 프리픽스 표기라고도 하는데 /24, /20처럼 /(슬래시) 뒤에 네트워크 길이를 숫자로 적어서 표기한다.
  • CIDR는 IP 주소의 수를 나타낸다.

  • 네트워크 범위는 범위 안에서 가장 첫 번째 IP 주소와 CIDR 순으로 표기한다.
  • 172.31.0.0/16이라면 /16은 65,536개라는 의미이므로 172.31.0.0부터 172.31.255.25까지가 네트워크 범위이다.

📌 6.4.3 네트워크 클래스

  • 네트워크는 규모에 따라서 A, B, C 세 클래스가 있다.
    • A 클래스는 13만~1,677만 개 정도의 IP 주소를 가진, 범위가 넓은 네트워크다.
    • B 클래스는 중간 규모이며 대략 512~6만 5천개를 가지고 있다.
    • C 클래스는 소규모로 1~255개 범위이다.
  • 스스로 CIDR를 설정할 때 /16이나 /20의 크기를 기준으로 하면 설정하기 쉽다.

💎 A 클래스에 대해서

  • AWS의 경우 부모가 되는 네트워크를 A 클래스로 설정할 수 있지만, 서브넷으로 사용할 수 있는 범위는 /16(B클래스 최대치)이하이다.
  • 따라서 A 클래스를 서브넷으로 설정할 수 없다.

📌 6.4.4 IP 주소 할당과 DHCP

  • 일반적인 네트워크의 경우 IP 주소를 할당할 수 있는 것은 EC2 인스턴스와 RDS 인스턴스(데이터베이스)등이다.
  • 하지만 AWS VPC는 EC2 인스턴스나 RDS 인스턴스 외에도 라우터나 인터넷 게이트웨이에 IP 주소로도 앞서 설명한 예약 주소를 사용할 수 있다.
  • 네트워크 및 서버넷에 사용되는 IP 주소의 범위는 관리자가 설정할 수 있고, DHCP(Dynamic Host Configuration Protocol)에서 각 호스트(인스턴스)에 IP 주소를 자동으로 할당한다.
  • VPC에는 DHCP서버가 동작하고 있어 인스턴스가 추가되면 해당 서브넷 범위에 IP 주소 중에 하나가 할당된다.
  • VPC가 일반적으로 사용하는 IP 주소는 사설 IP 주소이다.

💎 예약 IP 주소

  • 첫 번째부터 네 번째까지 IP 주소 네 개와 마지막 IP 주소는 AWS의 예약된 IP주소이기 때문에 사용할 수 없다.
  • 따라서 사용할 수 있는 IP 주소가 256개라면 다섯 개를 뺀 251개가 실제로 사용할 수 있는 IP 주소가 된다.

🎨 6.5 라우팅과 NAT

💡 네트워크 간 데이터를 주고 받으려면 라우팅이나 NAT방식을 사용해야 한다.

📌 6.5.1 네트워크와 라우팅

  • 네트워크랑 PC 여러 대가 서로 통신할 수 있도록 연결되어 있는 상태를 말한다.
  • 회사처럼 PC가 여러 대 있는 환경에서 PC를 1:1로 연결하려면 선이 굉장히 많아질 것이며 현실적으로 구축할 수도 없다.
  • 그래서 데이터를 라우터로 보내고, 라우터가 목저기로 보내는 방식이 필요한데, 이를 라우팅이라고 한다.

📌 6.5.2 IP 주소와 게이트웨이

  • IP 주소는 클라이언트 PC나 서버뿐만 아니라 라우터 등 네트워크 안의 모든 호스트에 설정되어있다.
  • 라우터는 네트워크의 관문에 위치해 있기 때문에 관문이라는 의미로 게이트웨이라고도 한다.
  • 게이트웨이 중에 '자신 이외의 접속되어 있는 모든 것(대부분의 경우 인터넷과의 연결점)'을 기본 게이트웨이라고 한다.

📌 6.5.3 IP 마스커레이드

  • LAN에서 인터넷으로 데이터를 전송할 때 LAN 내부의 출입구가 되는 것이 게이트웨이이다.
  • 게이트웨이는 기기의 역할을 말하며 실제 기기는 라우터이다.
    • LAN에서 전송되는 데이터를 인터넷으로 보낸다.
    • 인터넷에서 들어오는 데이터를 목적지 PC로 전송한다.
  • 요즘 LAN 내부의 PC에는 전부 사설 IP 주소를 할당하는게 일반적이다.
  • 하지만 공인 IP 주소가 없다면 식별할 수 없기 때문에 게이트웨이가 사설 IP 주소를 공인 IP 주소로 변환하고 가정, 회사 내에서는 공인 IP 주소 하나를 공동으로 사용한다.
  • 주소 변환을 담당하는 것이 IP 마스커레이드(masquerade) NAPT(Network Address Port Translation))이다.

📌 6.5.4 NAT

  • IP 마스커레이드는 공인 IP 하나만 설정할 수 있기 때문에 서버가 여러 대라면 공인 IP 주소를 여러 개 설정할 수 있는 NAT(Network Address Translation)를 사용해야한다.
    • IP 마스커레이드 = 1:M
    • NAT = M:N 이라는 점에서 다르다.
  • 또한, IP 마스커레이드는 Port를 변화할 수 있지만, NAT는 불가능하다.

🎨 6.6 보안 그룹과 네트워크 ACL: 보안 설정

💡 AWS는 보안 그룹과 네트워크 ACL 두 종류의 가상 방화벽을 제공한다.
ㅤ 두 가지는 사용하는 범위가 다르며, 규칙의 적용 순서도 다르다.

📌 6.7.1 보안 그룹과 네트워크 ACL

  • PC 가상 방화벽으로 보안 그룹과 네트워크 ACL이 있다.
  • 방화벽이란 네트워크 통신을 제어하는 방식을 말한다.
  • 보안 그룹과 네트워크 ACL은 인바운드 트래픽(데이터가 유입되는 것)과 아웃바운드 트래픽(데이터가 유출되는 것)을 제어한다.
  • 반드시 양쪽 모두 설정해야 하며 명시적으로 설정하지 않으면 기본 설정이 적용된다.
  • 두 서비스는 설정 수준과 허가 범위가 다르다.
  • 네트워크 ACL은 서브넷 단위로 설정하기 때문에 개별 인스턴스에 설정할 필요가 없다는 점이 두 서비스의 가장 큰 차이이다.
  • 네트워크 ACL 하나에 넷 여러 개를 설정할 수 있지만, 서브넷 하나의 네트워크 ACL을 여러 개 설정할 수는 없다.

📌 6.7.2 인바운드 및 아웃바운드 설정과 잘 알려진 포트

💡 Port란 '통신의 입구'를 말한다.

  • 트래픽은 인바운드 아웃바운드 각각에 대해 포트 단위로 허가 여부를 설정한다.
  • 포트는 25, 80 등과 같이 포트 번호로 지정한다.
  • 실제로는 서비스 별로 잘 알려진 포트(well-known-ports)가 정해져 있어 특별한 경우가 아닌 이상 해당 포트를 사용한다.
  • 보안 그룹은 인바운드를 허가하지 않으면 아웃바운드를 허가하고, 네트워크 ACL은 양쪽 모드를 허가하는 것이 각 기본 설정이다.
  • 그 후 보안 그룹은 필요한 포트만 허가하는 것이 일반적이다.
포트번호서비스내용
25SMTP메일 송신
110POP3메일 수신
143IMAP4메일 수신
80HTTP웹 송수신
443HTTPS웹 송수신
22SSHSSH 통신
1433SQL Server데이터베이스 통신
1521Oracle Database데이터베이스 통신
3306MySQL데이터베이스 통신
5432PostgreSQL데이터베이스 통신
5439Redshift데이터 웨어하우스 통신
20 및 21FTP파일 전송 통신(AWS는 사용하는 경우가 드물다)
53DNS도메인 관리 통신(AWS는 사용하는 경우가 드물다)
3389RDP원격 데스크톱 통신
32768 ~ 65535AWS의 경우 아웃바운드 지원

💎 데몬이란

  • PC(서버)의 전원이 켜져 있는 동안 계속해서 동작하고 있는 소프트웨어를 말한다.
  • 이와 같이 상조하는 소프트웨어를 유닉스 OS에서는 데몬(daemon)이라고 하고, 윈도우에서는 서비스라고 한다.

🎨 6.8 VPC 엔드포인트

💡 AWS에는 VPC를 지원하는 서비스와 지원하지 않는 서비스가 있다.
ㅤ 이러한 서비스들을 연동하려면 서로 접속할 수 있어야하고,
ㅤ 이 때 연결점이 되는 것이 VPC 엔드포인트이다.

📌 6.8.1 VPC 엔드포인트란

  • VPC 엔드포인트란 VPC 내부에서 VPC 외부로 접속하기 위한 연결점을 제공하는 서비스다.
  • 인터넷 게이트웨이를 통하지 않고, S3와 같은 VPC 외부에 있는 서비스와 VPC를 직접 연결해주는 것인 엔드포인트 서비스다.
  • VPC의 출입구로 엔드포인트를 설정하면 S3와 직접 연결할 수 있다.
  • 종류는 인터페이스 엔드포인트, 게이트웨이 엔드포인트로 2가지이다.

📌 6.8.2 인터페이스 엔드포인트와 게이트웨이 엔드포인트

  • VPC 엔드포인트는 가상 서비스다.
  • 확장성과 고가용성을 지원하며, 네트워크 트래픽에 대해 자동으로 스케일링 되기 때문에 네트워크 트래픽에 대해 고민할 필요 없다.

💎 인터페이스 엔드포인트

  • 인터페이스 엔드포인트는 네트워크 인터페이스(ENI, Elastic Network Interface)로 구축하는 유형이다.
  • 인터페이스 엔드포인트는 사설 IP 주소를 가진 ENI가 존재하며 각 서비스와 연결하는 출입구 역할을 한다.

💎 게이트웨이 엔드포인트

  • 게이트웨이 엔드포인트는 라우팅 테이블에 설정된 내요을 라우팅하는 유형이다.
  • 게이트웨이 엔드포인트는 서비스 리전 단위로 라우팅 테이블을 설정하는 방식이다.
  • 한 번 설정하면 해당 리전의 모든 서비스에 사용할 수 있다.
  • S3와 DynamoDB는 이러한 형식을 취하고 있다.

🎨 6.9 VPC 연결

💡 VPC와 다른 네트워크를 연결하는 방법은 몇 가지 있다.

  • VPC 피어링(peering)이나 전송 게이트웨이(transit gateway)가 대표적이다.
  • 그 외에 VPN 연결이나 AWS Direct Connect를 사용하는 경우도 있다.

📌 6.9.1 VPC 연결

  • VPC는 다른 VPC나 네트워크와 연결할 수 있다.
  • VPC끼리 연결하려면 VPC 피어링이라는 기능을 활성화해야한다.
  • VPC는 물리적인 네트워크 혹은 다른 클라우드에도 접속할 수 있다.

📌 6.9.2 전용선과 가상 사설망

  • 네트워크와 네트워크를 연결해 커다란 네트워크를 구축하는 것을 WAN(Wide Area Network)라고 한다.
  • WAN을 구축하는 방법으로 전용선으로 연결하는 경우와 가상 사설망으로 연결하는 경우가 있고, AWS와 다른 네트워크를 연결하는 경우도 있다.
  • VPN 중에 인터넷을 사용해 구축하는 경우를 인터넷 VPN이라고 한다.
  • 인터넷 VPN을 지원하는 라우터만 설치하면 이용할 수 있다.

💎 전용선

  • KT와 같은 통신 사업자가 직접 연결할 수 있는 회선인 전용선을 임대하여 구축한다.
  • 비싸지만 안전하고 신뢰성이 높다.

💎 가상 사설망

  • 보유하고 있는 회선뿐만 아니라 공용 회선을 사용하여 거점끼리 통신을 암호화하여 연결한다.
  • 비용은 싸지만 신뢰성이 낮다.
  • 암호화 기술이 해석되지 않는 이상 데이터가 유출될 걱정은 없다.


#Women-in-Spring
#2024-11-완독-그림으로-이해하는-aws-구조와-기술

profile
꾸준함의 가치를 믿는 개발자

0개의 댓글