오늘의 인기 글
최근 글
최근 댓글
Today
Total
05-10 00:03
관리 메뉴

우노

[Terraform] Cloud Run에서 VPC Connector를 사용하여 Cloud SQL 접근 본문

DevOps/Terraform

[Terraform] Cloud Run에서 VPC Connector를 사용하여 Cloud SQL 접근

운호(Noah) 2023. 8. 2. 15:30

들어가기 앞서,

  • Cloud Run은 기본적으로 인터넷을 통해 외부로 트래픽을 노출시킵니다.
  • 반면, Cloud SQL은 기본적으로 VPC 네트워크에 의해 보호되는 내부 IP 주소를 가지고 있으며, 인터넷에서 직접 액세스가 불가능합니다.
    • 물론, Public IP 주소를 할당하는 경우에는 인터넷을 통해 액세스가 가능해질 수도 있습니다.
  • 따라서, Cloud Run 애플리케이션이 내부 IP 주소를 사용하여 Cloud SQL과 통신할 수 있도록 하기 위해선 VPC Connector를 사용하여 Cloud Run과 VPC 네트워크를 연결해야합니다.
    • VPC Connector는 Google Cloud 내의 리소스들이 VPC 네트워크에 접근할 수 있도록 해주는 컴포넌트입니다.

Terraform Cloud Run 설정 예제 코드

resource "google_cloud_run_service" "gcr_service" {
  name     = 
  provider = 
  location = 

  template {
    spec {
      containers {
        image = 
        resources {
          limits = {
            cpu    = 
            memory = 
          }
        }
      }
      service_account_name = 
    }

    metadata {
      annotations = {
        # Use the VPC Connector
        "run.googleapis.com/vpc-access-connector" = google_vpc_access_connector.connector.name
        # Egress traffic to Cloud SQL
        "run.googleapis.com/vpc-access-egress" = "private-ranges-only"
      }
    }
  }
  autogenerate_revision_name = 
}
  • run.googleapis.com/vpc-access-egress는 두 가지 설정이 가능합니다.
    • "run.googleapis.com/vpc-access-egress" = "private-ranges-only"
      • Cloud Run 서비스의 VPC egress 트래픽을 사설 IP 주소 범위에 대해서만 허용하는 것을 의미합니다.
      • Cloud Run 서비스에서 생성되는 네트워크 트래픽은 인터넷으로의 직접 액세스가 차단되고, VPC 내부의 다른 서비스와 통신할 수 있도록 제한됩니다.
      • 이 설정은 Cloud Run 서비스와 VPC 내부의 다른 서비스 간에 안전한 통신을 유지하고자 할 때 사용될 수 있습니다.
      • 외부와의 통신이 필요하지 않은 경우에 유용합니다.
    • "run.googleapis.com/vpc-access-egress" = "all-traffic"
      • Cloud Run 서비스의 VPC egress 트래픽을 모든 트래픽에 대해 허용하는 것을 의미합니다.
      • Cloud Run 서비스에서 생성되는 모든 네트워크 트래픽은 인터넷으로 허용됩니다.
      • 이 설정은 인터넷에 연결되어 외부 서비스와 통신해야 하는 경우에 유용합니다.
      • 즉, Cloud Run 서비스가 인터넷에 직접 액세스하여 요청을 보낼 수 있습니다.

참고

Comments