본문 바로가기

[Cloud]/[GCP]

[GCP] Cloud Monitoring 로 VM 인스턴스 로그 수집하기 - 5.NAT을 통한 Static-IP 요금 절약

728x90

[ NAT? ]

 Cloud NAT을 사용하면 외부 IP 주소가 없는 Google Cloud 가상 머신(VM) 인스턴스가 외부 인터넷망으로 아웃바운드 패킷을 보내고, 다시 NAT을 거쳐 설정된 인바운드 응답 패킷을 받는다. 사용시 이점은 다음과 같다.

  • 보안
    수동 NAT IP 주소 할당을 사용하여 Cloud NAT 게이트웨이를 구성할 경우 공통 외부 소스 IP 주소 집합을 대상과 확실하게 공유할 수 있다. 예를 들어 대상 서비스는 알려진 외부 IP 주소로부터 들어오는 연결만 허용할 수 있다. 이그레스 방화벽 규칙에 따라 외부 IP 주소가 없는 VM이 인터넷에서 대상에 액세스할 수 있다.
  • 지원 여부
    Cloud NAT는 분산형 소프트웨어 정의 관리형 서비스이다. 프로젝트의 VM 또는 단일 물리적 게이트웨이 기기에 의존하지 않는다. 지정한 구성 매개변수를 저장하는 NAT의 제어 영역을 제공하는 Cloud Router에서 NAT 게이트웨이를 구성한다.
  • 확장성
    사용되는 NAT IP 주소 수를 자동으로 확장하도록 Cloud NAT를 구성할 수 있으며 자동 확장이 사용 설정된 VM을 포함하여 관리형 인스턴스 그룹에 속하는 VM을 지원한다.
  • 성능
    Cloud NAT는 VM별 네트워크 대역폭을 줄이지 않는다!
  • + 가격^^

cloud.google.com/nat/docs/overview

 

Cloud NAT 개요  |  Google Cloud

Cloud NAT(네트워크 주소 변환)를 사용하면 외부 IP 주소가 없는 Google Cloud 가상 머신(VM) 인스턴스 및 비공개 Google Kubernetes Engine(GKE) 클러스터가 인터넷으로 아웃바운드 패킷을 보내고 해당하는 설정

cloud.google.com

 

[ NAT 적용 ]

NAT적용순서는 캡쳐와 함께 기록으로 남겨놓았다. 자세한 순서는 Document에서 언제든지 확인 가능하다.

cloud.google.com/nat/docs/gce-example

 

Compute Engine 설정 예시  |  Cloud NAT  |  Google Cloud

이 페이지에서는 Compute Engine으로 샘플 Cloud NAT 설정을 구성하는 방법을 보여줍니다. Cloud NAT를 설정하기 전에 Cloud NAT 개요를 읽어보세요. 기본 요건 Cloud NAT를 설정하기 전에 다음을 수행해야 합

cloud.google.com

1. VPC 네트워크 및 서브넷 생성 

2. 외부 IP 주소 없이 VM 인스턴스를 만들기(외부IP는 할당하지 않은 상태)

3. SSH 연결을 허용하는 방화벽 규칙 만들기 

4. 테스트 인스턴스에 대한 IAP SSH권한 만들기 -> Identity-Aware Proxy를 먼저 enable하고 진행한다.
                                                             -> 난 프로젝트 오너에게 커맨드를 전달했다.

5. Cloud Router로 NAT구성 만들기

6. curl로 찍어봤을때 리턴된 결과 -> 외부와 통신 성공!

또한 NAT의 IP를 static-ip로 변경하고, vm-instance안에서 curl로 IP를 확인해 보면 동일한 것을 알 수 있다.

다만 생각해 봐야 할 점은, NAT를 사용할 경우에 내부에서 외부망으로의 패킷에 대한 아웃바운드는 통신이 가능하며, 이 아웃바운드에 대한 인바운드는 제공하지만(DNAT) 그 외의 인바운드는 받지 않는다는 점을 주의하자.

728x90