본문 바로가기

Minding's Programming/AWS

[AWS] VPC

728x90
반응형

 

VPC

VPC(Virtual Private Cloud)는 사용자가 정의한 가상 네트워크로, AWS에서는 Amazon VPC라는 이름의 서비스로 제공되고 있다. 클라우드 망에서 가상의 네트워크망을 구축하는 것이다.

 

이를 통해 데이터 엔지니어는 안전한 네트워크 망에서 중요한 데이터가 오갈 수 있도록 설정할 수 있고, 내부 네트워크 디자인 경로를 디자인할 수 있어 데이터를 처리하는 과정을 모두 내부화할 수 있다. DB에 접근을 제어할 수 있을 뿐 아니라 공유할 때에도 VPC 연결 설정을 이용할 수 있다.

 

VPC의 기능

  • 서브넷: VPC의 IP 주소 범위이다. 서브넷은 단일 가용 영역에 상주해야 하고, 서브넷 추가 후에 VPC에 AWS 리소스를 배포할 수 있다.
  • IP 주소 지정: VPC와 서브넷에 IPv4 주소와 IPv6 주소를 할당할 수 있다.
  • 라우팅: 라우팅 테이블을 사용해 서브넷 또는 게이트웨이의 네트워크 트래픽이 전달되는 위치를 결정한다.
  • 게이트웨이: 게이트웨이는 VPC를 다른 네트워크에 연결하는 역할이다. (ex. 인터넷 게이트웨이를 사용해 VPC를 인터넷에 연결)
  • 엔드포인트: VPC 엔드포인트를 사용해 인터넷 게이트웨이 또는 NAT 장치를 사용하지 않고 AWS 서비스에 비공개로 연결함
  • 피어링 연결: VPC 피어링 연결을 사용해 두 VPC의 리소스 간 트래픽을 라우팅한다.
  • 트래픽 미러링: 네트워크 인터페이스에서 네트워크 트래픽을 복사하고 심층 패킷 검사를 위해 보안 및 모니터링 어플라이언스로 전송한다.
  • Transit Gateway: 중앙 허브 역할을 하는 전송 게이트웨이를 사용하여 VPC, VPN 연결 및 AWS Direct Connect 연결 간에 트래픽을 라우팅한다.
  •  VPC 흐름로그: 흐름 로그는 VPC의 네트워크 인터페이스로 들어오고 나가는 IP 트래픽에 대한 정보를 캡처한다.
  • VPN 연결: AWS Virtual Private Network(AWS VPN)을 사용하여 온프레미스 네트워크에 VPC를 연결한다.

CIDR

CIDR은 클래스 없는 도메인 간 라우팅 기법이다. 네트워크를 설계하고 IP 주소 범위를 정의하는데 중요한 역할을 한다.

IP는 기본적으로 2진수 및 8비트로 나타낸다. 예를들어 174는 10101110으로 나타내는 것처럼 말이다.

 

일반적으로 IP주소는 network 영역과 host 영역으로 나뉘는데, 이는 아래와 같은 기준으로 나뉜다.

 

IP주소 '/' 뒤에 어떤 숫자가 오느냐에 따라 host 영역의 범위가 결정된다. 예를 들어 24가 오면 앞의 24자리가 network 영역이라는 뜻이기 때문에 마지막 8자리가 host 영역이 된다. host 영역은 사용자가 직접 할당할 수 있는 IP 대역이다. 많은 대역을 사용하고 싶다면 network 영역을 줄여 더 많은 IP 대역을 할당할 수 있다.

 

VPC 생성

생성 단계

1. IP 주소 범위 선택

2. 가용 영역(AZ) 서브넷 설정

3. 인터넷으로 향하는 경로(route) 만들기

4. VPC 로(부터)의 트래픽 설정

VPC에서 172.31.0.0/16으로 IP 범위를 설정하고, 2개의 서브넷을 만든 모습이다. 각 서브넷의 host영역을 결정하는 '/' 뒤의 숫자는 VPC의 IP 범위를 설정하는 숫자보다 작을 수 없다.

 

VPC 생성 시 전체적인 구성

위 다이어그램은 AWS VPC 내에서 퍼블릭 서브넷과 프라이빗 서브넷을 구분해 네트워크 리소스를 배치한 전형적인 아키텍처를 보여주고 있다. 인터넷 게이트웨이, NAT 게이트웨이, 로드 밸런서, Bastion 호스트를 통해 외부와의 통신을 관리한다. 중요한 데이터와 시스템은 프라이빗 서브넷에 배치해 보안을 강화했다.

 

더보기

1. VPC CIDR

  • VPC의 CIDR 블록은 10.0.0.0/16으로 설정되어 있습니다. 이는 이 VPC에서 사용할 수 있는 전체 IP 주소 범위를 나타냅니다. 이 범위 내에서 퍼블릭 서브넷과 프라이빗 서브넷이 나뉘어 있습니다.

2. 서브넷(Subnet)

  • 퍼블릭 서브넷 (Public Subnet): 10.0.1.0/24, 10.0.2.0/24 범위로 설정된 서브넷입니다. 퍼블릭 서브넷은 외부 인터넷과 직접 통신이 가능하며, 보통 인터넷 게이트웨이를 통해 외부와 연결됩니다. 여기에는 NAT 게이트웨이Bastion Host가 배치되어 있습니다.
  • 프라이빗 서브넷 (Private Subnet): 10.0.3.0/24, 10.0.4.0/24 등으로 설정된 서브넷입니다. 프라이빗 서브넷은 외부 인터넷과 직접 통신할 수 없으며, 외부와의 통신은 NAT 게이트웨이를 통해 이루어집니다. 이 서브넷에는 EC2 인스턴스들이 배치되어 있습니다.

3. NAT 게이트웨이

  • NAT 게이트웨이는 퍼블릭 서브넷에 위치하고 있으며, 프라이빗 서브넷에 있는 리소스들이 외부 인터넷으로 나가는 트래픽을 처리할 수 있게 해줍니다. 이때 외부에서 프라이빗 서브넷의 리소스로는 직접 접근할 수 없습니다.

4. 인터넷 게이트웨이 (Internet Gateway)

  • 인터넷 게이트웨이는 VPC가 인터넷과 통신할 수 있도록 해주는 구성 요소입니다. 퍼블릭 서브넷에 배치된 리소스들이 외부 인터넷과 통신할 수 있게 연결해 줍니다.

5. 로드 밸런서 (ELB-ALB)

  • ELB(Elastic Load Balancer) 또는 **ALB(Application Load Balancer)**는 여러 EC2 인스턴스에 트래픽을 분산시키는 역할을 합니다. 이 로드 밸런서는 퍼블릭 서브넷에 위치하며, 인터넷에서 들어오는 트래픽을 받아서 적절한 EC2 인스턴스로 라우팅합니다.

6. EC2 인스턴스

  • 프라이빗 서브넷에 배치된 EC2 인스턴스들은 외부 인터넷과 직접 통신하지 않으며, 외부에서 들어오는 요청은 로드 밸런서를 통해 전달받습니다.
  • Bastion Host: 퍼블릭 서브넷에 위치한 이 인스턴스는 외부에서 SSH 또는 RDP를 통해 접속할 수 있으며, 이를 통해 프라이빗 서브넷에 있는 인스턴스에 간접적으로 접근할 수 있습니다.

7. S3 버킷 및 CloudFront

  • S3 버킷은 AWS의 객체 스토리지 서비스로, 외부 개발자나 사용자가 저장된 데이터를 접근할 수 있습니다. CloudFront는 AWS의 콘텐츠 전송 네트워크(CDN)로, S3 버킷의 콘텐츠를 전 세계 사용자에게 빠르고 효율적으로 전달하는 역할을 합니다.

8. 가용 영역 (Availability Zone)

  • 다이어그램에서 보여지는 두 개의 가용 영역(AZ 2a, AZ 2c)은 AWS 리전 내에서 서로 다른 물리적 데이터 센터입니다. 각각의 가용 영역 내에 퍼블릭 및 프라이빗 서브넷이 존재하며, 가용성을 높이기 위해 리소스가 여러 가용 영역에 걸쳐 분산되어 있습니다.

 

AWS에서 VPC 생성

VPC 서비스에 진입해 이름과 CIDR을 지정해주면 기본적인 VPC를 생성할 수 있다. 만약 생성할 리소스에서 'VPC 등'을 선택한다면,

이와 같이 미리보기 창이 나타나며 가용 영역부터 서브넷과 라우팅 테이블 등을 한 번에 설정할 수 있다. 이 글에서는 'VPC만'을 선택해 진행해보려고 한다. (실제로 프로젝트를 진행할 때는 위 방법을 사용할 예정)

 

VPC를 설정했고, 이제 서브넷을 만들어주어야 한다.

 

이런 식으로 vpc를 선택해 서브넷을 추가할 수 있다.

 

 

728x90

'Minding's Programming > AWS' 카테고리의 다른 글

[AWS] S3  (0) 2024.10.25
[AWS] IAM  (0) 2024.10.25
[AWS] ELB (Elastic Load Balancing)  (1) 2024.10.24
[AWS] CloudFront  (1) 2024.10.24
[AWS] Certification Manager  (1) 2024.10.24