[DeveloperIO Korea] AWS VPC로 가상 네트워크 구축하기

AWS VPC의 기초 개념과 동시에 네트워크를 구축하는 방법에 대해 발표한다.
2021.07.01

안녕하세요. 2021년 6월 30일에 DeveloperIO Korea 3회가 개최되었습니다. 저도 참가하게 되어 "AWS VPC로 가상 네트워크 구축하기" 라는 주제로 발표를 했습니다. 이번 블로그에서는 제가 발표한 내용에 대해 정리하여 소개하려고 합니다.

발표 개요

발표 제목: AWS VPC로 가상 네트워크 구축하기
발표자: 임채정
개요: AWS VPC의 기초 개념과 동시에 네트워크를 구축하는 방법에 대해 발표한다.
일시: 2021년 6월 30일

아젠다

  1. VPC란
  2. 서브넷이란
  3. NAT 게이트웨이
  4. VPC Peering
  5. 마무리 (DeveloperIO Korea 참가소감)

1. VPC

VPC란

  • Virtual Private Cloud의 줄임말
  • 클라우드를 퍼블릭과 프라이빗 영역으로 논리적으로 분리할 수 있게 해주는 서비스
  • 어떤 리소스라도 논리적으로 분리된 영역에 격리할 수 있으며, 네트워크에 대한 완전한 통제권을 가질 수 있다.
  • 기업의 클라우드 데이터 센터의 구현 체계
  • VPN, Direct Connect 등과 같은 서비스와 결합하면 기존 데이터 센터를 클라우드로 확장 가능

VPC 구축

먼저 AWS콘솔 페이지에서 VPC탭에 들어가 [VPC생성] 버튼을 클릭해 생성 페이지로 이동합니다

생성 페이지에서 VPC의 이름을 입력해주고 그 다음 사이더 범위를 입력하고 생성합니다.

VPC가 성공적으로 생성된 페이지를 확인할 수 있습니다.

그럼 현재 구성도를 이런 형태가 됩니다.

2. 서브넷

서브넷이란

  • subnetwork의 줄임말
  • IP 네트워크의 논리적인 하위 부분
  • 서브넷을 통해 하나의 네트워크를 여러 개로 나눌 수 있다
  • 아마존 VPC를 이용하면 퍼블릭, 프라이빗 서브넷 등 다양한 서브넷을 생성 가능
  • 워크로드의 유형에 따라 격리가 필요한 경우 서브넷을 생성하여 사용할 수 있다

  • 퍼블릭 서브넷

    • 인터넷을 통해 연결할 수 있는 리소스를 위한 서브넷
  • 프라이빗 서브넷
    • 인터넷을 연결하지 않고 보안 유지를 위한 배타적인 연결을 위한 서브넷

프라이빗 서브넷 구축

서브넷 탭에서 [서브넷 생성]을 누르고 생성 페이지로 이동해서 서브넷을 생성할 VPC의 ID를 선택합니다.

그 밑의 설정에서 이름을 입력하고 가용영역을 선택합니다. 그리고 아까 VPC에서 설정했던 것처럼 사이더를 설정해줍니다.

생성을 하면 성공적으로 서브넷이 생성된 것을 확인할 수 있습니다.

VPC안에 프라이빗 서브넷은 구축된 구성도입니다.

퍼블릭 서브넷 구축

퍼블릭 서브넷은 방금 만든 프라이빗 서브넷에 인터넷 게이트웨이를 연결해주면 됩니다. 먼저 퍼블릭 서브넷을 위한 프라이빗 서브넷을 하나 더 생성해줍니다.

새로운 인터넷 게이트웨어를 하나 만듭니다. 여기서 인터넷 게이트웨이란 VPC에서 인터넷 연결을 위해 사용하는 요소입니다.

인터넷 게이트웨이는 이름을 적고 생성버튼을 누르면 간단하게 생성이 됩니다.

이렇게 생성된 게이트웨이를 확인하고 만든 vpc에 연결합니다.

그 후에 라우팅 테이블에 인터넷 게이트웨이를 추가해 줍니다.

VPC안에 퍼블릭 서브넷까지 구축된 구성도입니다.

실제로 퍼블릭 서브넷이 완성되었는지 확인해보기 위해 EC2인스턴스를 구축하고 인터넷에 ping을 했습니다. 결과는 보이는 것처럼 실제로 잘 접속되었습니다.

3. NAT 게이트웨이

NAT 게이트웨이란

  • 낫 게이트웨이는 기본적으로 인터넷 접속이 불가능한 프라이빗 서브넥에 있는 서버 인스턴스를 인터넷에 연결할 수 있기 하는 서비스
  • 실제 개발 환경에서 용도에 따라 일부는 퍼블릭 속성으로 일부는 프라이빗 속성으로 서브넷을 생성됨. 이때 프라이빗 서브넷에 인스턴스를 생성하는 경우 인터넷을 통해서는 해당 인스턴스에 접근할 수 없게 됨. 즉, 외부와 완전하게 격리된다는 의미
  • 프라이빗 서브넷에 인스턴스를 생성하는 경우 외부와 완전하게 격리되는데 외부와 통신을 하고 싶다면 NAT으로 가능

NAT 게이트웨이 구축

NAT 게이트웨이를 사용해서 프라이빗 서브넷에 있는 인스턴스와 인터넷을 통신하도록 해보겠습니다. 그러기 위해서 프라이빗 서브넷에 인스턴스 하나를 생성해둡니다.

낫 게이트웨이를 생성합니다. 생성할 때는 낫 게이트웨이를 생성할 서브넷을 선택해야 하는데 낫 게이트웨이는 퍼블릭 서브넷에서 통신을 도와주기 때문에 퍼블릭 서브넷을 선택합니다. 그 후 탄력적 IP를 할당받고 생성을 완료합니다.

생성한 낫 게이트웨이를 프라이빗 서브넷의 라우팅 테이블에 추가합니다.

낫 게이트웨이를 사용해서 프라이빗 서브넷에 있는 인스턴스와 인터넷이 통신할 수 있게 되었습니다.

실제로 확인을 해보면 인터넷에 ping을 했을 때 성공적으로 통신이 되는 것을 확인할 수 있습니다.

4. VPC Peering

VPC Peering란

  • Peering은 하나의 VPC를 또 다른 VPC에 연결하고 서로의 프라이빗 주소를 통해 트래픽을 교환하기 위한 방법
  • 여러 가지 목적을 위해 다수의 VPC을 생성해야 하는 경우 서버간의 소통이 필요하거나 리소스의 공유가 필요하다면 사용
    • ex) 예를 들어 부서별 또는 프로젝트별로 서로 다른 VPC를 생성해야 하는 경우
  • Peering 기능이 실행되면 양쪽의 VPC에서 실행되는 인스턴스는 서로 소통 가능

VPC Peering 구축

실제로 VPC 피어링 기능을 사용해 보겠습니다. 앞에서 만들었던 VPC에 추가로 새로운 VPC를 만들어 퍼블릿 서브넷과 EC2를 구축했습니다.

VPC페이지에서 피어링 연결 탭을 클릭하고 피어링 연결을 생성합니다.

피어링 연결을 생성할 때는 요청자 VPC와 수락자 VPC를 선택해야 하는데 이 때 연결할 두 개의 VPC를 각각 선택하면 됩니다.

피어링이 생성되면 요청을 수락합니다.

각각의 라우팅 테이블에 피어링을 추가해줍니다. 그리고 퍼블릭 서브넷에 들어있는 EC2의 보안 그룹에 인바운드 규칙을 추가합니다.

이걸로 피어링을 통해 두 개의 VPC가 연결이 되었습니다.

실제로 확인을 위해 서로의 서버에 ping을 해보면 성공적으로 통신되는 걸 확인할 수 있습니다.

5. 마무리 (DeveloperIO Korea 참가소감)

처음에 DeveloperIO Korea를 한다고 했을 때는 일반인을 대상으로 하는 발표가 처음이었기 때문에 조금 불안했습니다. 하지만 회의를 진행하고 준비해나가는 걸 보면서 스스로 만드는 발표회라는 것에 자부심을 느낄 수 있던 것같습니다. 결과적으로 제 발표가 완벽하지는 않았지만 부족한 점을 어떻게 고쳐나가야 되는지 알 수 있는 정말 좋은 경험이었습니다.