ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [GCP] Cloud NAT
    개발 끄적 2022. 8. 22. 00:22

    # 개요

    클라우드 개발자라면 Kubernetes를 쓸 일이 많습니다. 저의 경우 Cloud Composer(Airflow)을 사용하는데 Composer는 Google Kubernetes Engine(GKE)과 자동으로 연동이 됩니다. 

     

    개발을 하다보면 외부 서버와 통신할 일이 생깁니다. 저희 프로젝트는 사내 다른 서비스에서 제공하는 API를 사용하게 되는데, 문제는 보안 문제로 사전에 등록된 IP에만 방화벽을 열어줍니다. 이럴 경우 GKE의 VM들에 각각 IP를 부여하는 방식은 곤란합니다. Autoscale로 VM은 가변적인데 매번 맞춰서 설정해줄 수 없기 때문입니다. 

     

    이런 상황에서 외부로 나가는 IP를 고정하기 위해 Cloud NAT을 사용합니다. 

     

    # 비용

    비용 폭탄을 방지하기위해 가격이 어떻게 책정되는지 가볍게 살펴보고 가겠습니다. 

     

    작성일 기준으로 공식 문서에 나온 비용은 다음과 같습니다. (① + ②)

     

    ① 시간당 가격 

    할당된 VM 인스턴스 32개 이하 ▶ 시간당 $0.0014 × 인스턴스 수

    할당된 VM 인스턴스 32개 초과 ▶ 시간당 $0.044

     

    ② 트래픽 비용 (Ingress + Egress)

    GB당 $0.045  (VM 인스턴스 수 무관)

     

    하나의 GKE 클러스터에 10개의 VM이 있다고 가정했을 때

    24시간, 1달 기준 약 10달러 정도 나옵니다. 

     

    저희 프로젝트는 트래픽이 적어서 비용 폭탄 가능성은 없어보입니다. 

     

    # 설정하기

    Cloud NAT 설정은 아래와 같은 순서로 진행합니다. 

     

    ① 외부 IP주소 할당받기

    ② Cloud 라우터 만들기

    ③ 앞에서 만든 IP주소와 라우터로 Cloud NAT 만들기

    ④ GKE 클러스터에 Cloud NAT 연동하기

     

    하나씩 살펴보겠습니다. 

    (사내 보안 정책으로 스크린샷이 없습니다.)

     

    외부 IP주소 할당받기

    [VPC 네트워크] - [외부 IP 주소]에 들어가면 만들 수 있습니다. 

     

    특별히 어려운 내용은 없으니 내용을 잘 채우면 됩니다. 

     

    Cloud 라우터 만들기

    [하이브리드 연결] - [Cloud 라우터]에서 만들 수 있습니다. 

     

    지식이 짧으니 이름/설명/리전만 잘 설정해줍니다. 

     

    ③ 앞에서 만든 IP주소와 라우터로 Cloud NAT 만들기

    [네트워크 서비스] - [Cloud NAT]에서 만들 수 있습니다. 

     

    앞에서 만든 라우터를 잡아줍니다. 

     

    NAT IP 주소를 수동으로 하여 앞에서 만든 외부 IP 주소를 잡아줍니다. 

     

    다른 옵션들은 역시 지식이 짧으니 적당히 설정합니다. 

     

    [VPC 네트워크] - [외부 IP 주소]로 돌아가서 사용 중이 되었는지 확인합시다. 

     

    ④ GKE 클러스터에 Cloud NAT 연동하기

     

    댓글

Designed by Tistory.