DevOps
  • Introduction
  • Setting
    • Terminal
      • Tmux
    • WSL+Ubuntu
    • [NeoVIM]
      • install & 활용방법
      • error 처리
      • LazyVIM
        • install & 활용방법
    • ssh
    • mysql
    • package관리
  • Fundamental(basic)
    • Network
      • https
  • [GitOps]
    • [SCM]
      • [Github]
        • center-managed
      • bitbucket
      • AWS-codeCommit
  • roadmap
    • devops
    • kubernetes
    • AWS
    • MLOPS
  • Cloud
    • [AWS]
      • aws sso script
      • tagging 자동화
      • 동일cidr에서 VPC 연결
      • 무중단서비스를 위한 고려사항
    • [GCP]
      • [GCP] GCP의 VPC
      • [GCP] GCP의 ALB
      • [GCP] OIDC와 OAUTH를 활용한 github action
      • [GCP] Composer 설명
      • [GCP] gmail-api
      • [GCP] DataLake
      • [GCP] Cloud 관리형 계정&role
      • [[GCP] private환경
        • DNS 설정으로 google api 및 colab-notebook 사용 하기
        • intelligence 설정으로 google api 및 colab-notebook 사용 하기
  • [kubernetes]
    • [cloud 기반]
      • csr
  • InfraAsCode
    • terraform
  • 코드로 그리는 다이어그램
    • CodeAsDiagram
      • example
    • Mermaid
    • PDFtoImage
  • AutoMation
  • [ETC]
    • Magic_Trackpad Window설치
Powered by GitBook
On this page
  • 해결책
  • 테스트
  • 정리
  • 방화벽 등록
  • colab jupyter notebook 생성 테스트
  • 마무리
  1. Cloud
  2. [GCP]
  3. [[GCP] private환경

DNS 설정으로 google api 및 colab-notebook 사용 하기

Previous[[GCP] private환경Nextintelligence 설정으로 google api 및 colab-notebook 사용 하기

Last updated 6 months ago

private 환경의 방화벽 정책은 기본적으로 egress 0.0.0.0/0 으로 외부로 나가는 트래픽이 제한 되어 있을 것이다.

이 경우 public 한 외부 도메인을 호출을 하기 위해서는

api 에 대한 ip 대역을 해줘야 하거나 fqdn 으로 도메인 기반 방화벽으로 예외 처리를 해야 한다.

  1. 일단 egress를 전부 다 막고(egress 0.0.0.0/0 거부 ) 노트북 런타임을 생성 해봤다.

User network error detected for the NotebookRuntime '481923'.
Please verify that the VPC allows outbound traffic to notebook domains [*aiplatform.googleapis.com,
*.aiplatform-notebook.cloud.google.com] and try again. 

에러 메세지가 발생하며 생성이 되지 않는다.

colab을 호출하는 URL은 도메인 기반으로 되어 있다 따라서 *.aiplatform.googleapis.com 도메인만 방화벽에 등록을 해주면 되긴 하는데 아쉽게도 GCP의 방화벽은 fqdn 규칙만 허용 하고(astrik) 도메인을 지원하지 않는다.

해결책

colab-notebook / google-api

위의 공식 문서를 보면 DNS 작업을 진행 해야 한다고 나와 있다. 이것을 조금 더 풀이해보자면 아래와 같은 그림으로 표현 할 수 있을 것이다.

테스트

DNS 작업을 진행 하면 아래 ping test와 같은 결과가 나온다.

  • DNS 작업 이전 ping test

kimutae5@kth-pri-1:~$ ping 1.aiplatform-notebook.cloud.google.com
PING www3.l.google.com (142.250.206.238) 56(84) bytes of data.
  • DNS 작업 이후 ping test

kimutae5@kth-pri-1:~$ ping 1.aiplatform-notebook.cloud.google.com
PING private.aiplatform-notebook.cloud.google.com (199.36.153.6) 56(84) bytes of data.

정리

핵심은 다음과 같다. DNS 작업전에는 142.250.206.238 처럼 다양한 IP대역으로 호출을 하여 방화벽 등록 IP를 특정 짓기 어려웠다면

작업 이후에는 아래의 3개 endpoint(URL)의 IP를

*.aiplatform.googleapis.com
*.aiplatform-notebook.googleusercontent.com
*.aiplatform-notebook.cloud.google.com

아래의 4개의 IP로만 제한 하는 것이다.

199.36.153.4
199.36.153.5
199.36.153.6
199.36.153.7

이제 IP가 특정 되었으니 해당 IP를 방화벽에 등록 하면 된다.

방화벽 등록

colab jupyter notebook 생성 테스트

[참고]a - z 까지 문자를 순차로 대입하는 스크립트

for x in $(echo {a..z}) ;do ping $x.aiplatform-notebook.cloud.google.com -c 1 |grep PING   ; done ;

마무리

이 글은 멀티도메인(*astrik도메인) 등록이 안되는 방화벽의 문제를 DNS로 해소 하는 방법이다. 기초 지식으로 방화벽과 dns는 OSI7 layer에서 어디에 위치 하였는지 아는 것이 중요하며 방화벽과 DNS의 작동 방식 설정방법(cname , a record )등에 대한 사전 지식이 요구 된다.

alt text
alt text
alt text