VPC / Firewall(DMZ)

JBoB·2023년 2월 27일
0

🐧VPC란?

VPC는 사용자가 정의하는 IP 주소 범위 선택, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 구성 등 가상 네트워킹 환경이라고 한다.
실제 네트워크와 동일한 방식으로 작동되며 글로벌 광역 네트워크로 연결된 글로벌 리소스이다.

🐤 VPC 특징

  • 연결된 라우터와 방화벽 규칙을 포함한 전역 리소스이다.
  • 방화벽 규칙은 인스턴스에서 송수신 되는 트래픽을 제어할 수 있다.
  • 내부 IP 주소가 있는 인스턴스는 Google API 및 서비스와 통신 가능
  • VPC 공유를 이용하면 VPC 네트워크를 공용 Host project에 유지할 수 있음
  • VPC 피어링으로 VPC 네트워크를 다른 project or organization 의 다른 VPC 네트워크에 연결 가능

VPC Perring(VPC 피어링) : 서로 다른 VPC간 통신이 가능도록 연결하는 것

🐤VPC 피어링 설정

  1. SQL → 개요 → 수정을 눌러주세요.

  1. 아래로 내려와 연결을 눌러보면 공개 IP에만 체크가 되어있습니다.

  1. 공개 IP(누구든지 다 접속할 수 있기에)의 체크를 풀고, 비공개 IP에 체크를 합니다.

    네트워크를 눌러 default를 선택합니다.

    밑에 나오는 연결 설정을 눌러줍니다.

네트워크를 default로 설정하게 되면, default VPC 내부로 만들어둔 DB 인스턴스가 들어오게 됩니다.

  1. 오른쪽에 생긴 설정창에서 API 사용 설정을 클릭합니다.

  1. IP 범위 할당자동으로 할당된 IP 범위 사용을 선택하고 계속을 누릅니다.

  1. 연결 만들기를 누릅니다.

  1. 잠시 기다리면, default로 네트워크 연결이 잘 되었습니다.

    저장을 누릅니다.

VPC를 적용한 DB 접속하기

  1. SQL → 개요에서 비공개 IP 주소를 복사합니다.

  1. 인스턴스 쉘의 .env.prod 파일에서 접속 정보를 아래와 같이 수정해 주세요.

  • .env 파일이므로 변화가 되어도 git에는 push가 되진 않지만, VS code .env.prod 파일도 수정시켜 주세요!

  1. 실행중인 도커 컨테이너를 종료합니다.

    $ docker-compose -f docker-compose.prod.yaml stop
  1. 다시 해당 파일을 빌드 후, up 합니다.

    $ docker-compose -f docker-compose.prod.yaml build
    $ docker-compose -f docker-compose.prod.yaml up -d
  1. logs 명령어를 통해 보시면 DB 연결도 잘 이루어져있는지 확인해 보세요.
$ docker-compose -f docker-compose.prod.yaml logs

  • 도커에는 연결된 DB가 없지만, DB 연결이 된 것을 확인할 수 있습니다 우리가 만든 cloud SQL에 DB가 접속 된 것입니다. 하지만, 비공개 IP 주소로 연결되었다보니 백엔드와 DB가 서로 다른 VPC 내부에 존재하고 있기에 DBeaver를 통해 연결을 확인해 보면 연결이 되지 않는것을 확인할 수 있습니다

🐧Firewall(DMZ)

DMZ(Demilitarized Zone) : 내외부 네트워크 구간 사이에 위치한 중간지점으로 침입차단시스템등으로 접근 제한을 수행하지만 외부 네트워크에서 직접 접근이 가능한 영역

⇒ 외부에서 악의적인 의도를 가진 사람들이 DMZ 구간에 접속하지 못하게 한다.

⇒ DMZ 구간에는 대표적으로 웹서버, 메일서버가 존재한다.

⇒ 중간에 Firewall(방화벽)를 설치하여 외부에서 DMZ는 접근을 제한할 수 있다.

내부 네트워크 구간

: 일정 조직내에서 인터넷이 아닌 내부 네트워크를 통해 PC끼리 자원을 공유하게 하거나 그룹웨어 등을 사용할 수 있게 하는 근거리 통신망

외부 네트워크 구간

: 이와 반대로 일정 조직을 넘어 정보를 교환 할 수 있는, 인터넷을 통한 네트워크

profile
간절하고 치열하게 살자

0개의 댓글