본문으로 건너뛰기
hannctl
PDF

case-studies summoners-war-arena-multicloud DESIGN.md

서머너즈워: 천공의 아레나 멀티클라우드와 방화벽 재설계 설계 및 구현

GCP와 Tencent Cloud에 걸친 서버 600대·DB 70개 환경의 방화벽 정책을 전수 재설계하고, 무점검 원칙으로 운영한 대규모 게임 인프라입니다.

GCPTencent Cloud서버 600대 · DB 70개 (두 클라우드 합계)웹게임DB관리
남은 규칙을 서버 역할 기준으로 다시 묶어 검토와 변경이 쉬운 구조로 만듭니다.
로드밸런서패치 중패치 중무점검: 서버를 하나씩 교체해 서비스가 멈추지 않습니다
전체를 패치해도 서비스는 멈추지 않습니다.

규칙 맵으로 만드는 방화벽 (관련 공개 저장소 pf-02)

이 코드가 하는 일: 규칙 맵(var.rules)의 항목마다 GCP 방화벽 규칙을 하나씩 만들고, 맵의 키를 규칙 이름으로 씁니다. 방향이 INGRESS면 대역을 출발지로, EGRESS면 목적지로 넣고, use_service_accounts 값에 따라 대상과 출발지를 네트워크 태그로 지정할지 서비스 계정으로 지정할지 고릅니다. 규칙 하나하나를 리소스 블록으로 쓰지 않고 맵 항목으로 선언하므로, 역할별로 묶은 정책을 그대로 데이터로 관리할 수 있습니다.

resource "google_compute_firewall" "rules" {
  for_each = var.rules

  network                 = each.value.network
  name                    = each.key
  direction               = each.value.direction
  source_ranges           = each.value.direction == "INGRESS" ? each.value.ranges : null
  destination_ranges      = each.value.direction == "EGRESS" ? each.value.ranges : null
  source_tags             = each.value.use_service_accounts || each.value.direction == "EGRESS" ? null : each.value.sources
  source_service_accounts = each.value.use_service_accounts && each.value.direction == "INGRESS" ? each.value.sources : null
  target_tags             = each.value.use_service_accounts ? null : each.value.targets
  target_service_accounts = each.value.use_service_accounts ? each.value.targets : null
  priority                = each.value.priority
© 2026 Kim JunHyun · Built with Astro · 이 사이트의 인프라도 코드로 관리합니다

↑↓ 이동 · Enter 열기 · Esc 닫기

테마 고르기

사원증을 누르면 그 테마로, 보던 내용과 같은 곳으로 이동합니다. 끌면 흔들리기만 합니다.

처음 화면으로 →