{"id":"IL-0396","org":"Google Cloud","date":"2017-01-30","docs":[],"title":{"en":"New or live-migrated GCE instances, VPN tunnels and network load balancers were unreachable on public IPs for over 2h","ko":"새로 만들거나 라이브 마이그레이션한 GCE 인스턴스, Cloud VPN 터널, 네트워크 로드 밸런서가 2시간 8분 동안 공인 IP 주소로 연결되지 않았다"},"domain":["gcp","networking"],"impact":{"scope":"GCE instances, Cloud VPN tunnels and GCE network load balancers created or live migrated between 10:36 and 12:42 PDT were unreachable on public IPs and could not send outbound traffic; existing resources were unaffected","users":"unknown","region":"all GCE regions; europe-west1 was the last to clear"},"review":{"written_by":"session","reviewed_at":null,"reviewed_by":null},"lessons":null,"related":[],"sources":[{"url":"https://status.cloud.google.com/incident/compute/17003","kind":"official-status","archived":"https://web.archive.org/web/20261103100033/https://status.cloud.google.com/incident/compute/17003"}],"summary":{"en":"All inbound traffic to GCE instances, load balancers and VPN tunnels enters through shared layer 2 load balancers. Changes to the IP addresses of these resources are configured on those load balancers, tested automatically in a canary deployment and then propagated globally. On 30 January 2017 a large set of updates to a rarely used load balancing configuration hit an inefficient code path, and the canary timed out. Every later change of public addressing queued behind those changes, which could not get past the testing phase, so no new or live-migrated resource got working public addressing for 2 hours 8 minutes.\n\nGoogle engineers restarted the jobs that program changes into the network load balancers. After the restart the problem changes were processed as a batch, which did not reach the inefficient code path, and queued updates went through again. The fix was applied zone by zone between 11:36 and 12:42.","ko":"GCE 인스턴스, 로드 밸런서, VPN 터널로 들어오는 네트워크 트래픽은 모두 여러 자원이 함께 쓰는 layer 2 load balancer 를 지난다. 이 로드 밸런서에 자원의 IP 주소 변경을 넣으면, 먼저 canary 배포로 자동 시험하고 그다음 전 세계로 퍼뜨린다. 2017년 1월 30일 드물게 쓰는 로드 밸런싱 구성에 대량의 변경이 들어갔고, 이 변경이 비효율적인 코드 경로를 드러내 canary 가 타임아웃됐다. 그 뒤로 들어온 모든 공인 주소 변경은 시험 단계를 넘지 못한 이 변경이 끝나기를 기다리며 쌓였다. 그래서 그동안 만들거나 라이브 마이그레이션한 GCE 인스턴스, Cloud VPN 터널, GCE 네트워크 로드 밸런서는 공인 IP 주소로 닿을 수 없었고, 밖으로 나가는 트래픽과 로드 밸런싱 헬스 체크도 실패했다.\n\n엔지니어는 네트워크 로드 밸런서에 변경을 반영하는 작업을 재시작했다. 재시작 뒤 문제의 변경은 한 묶음으로 처리되면서 비효율적인 코드 경로를 타지 않았고, 변경이 다시 처리되면서 트래픽이 정상으로 돌아왔다. 이 조치는 11:36 부터 12:42 까지 존마다 차례로 적용됐다. 2월 8일에 올린 보고서 본문은 영향 시간을 10:36 부터 12:42 PDT 까지 2시간 8분으로 적었다. 반면 상태 페이지 맨 위의 사고 정보에는 사고가 10:54 에 시작해 12:50 에 끝났다고 적혀 있었다."},"trigger":{"en":"A large set of updates was applied to a rarely used load balancing configuration on the shared layer 2 load balancers.","ko":"드물게 쓰는 로드 밸런싱 구성에 대량의 변경이 들어갔다. 이 변경이 비효율적인 코드 경로를 타면서 canary 배포가 타임아웃됐다."},"severity":"unknown","symptoms":["network-unreachable","readiness-probe-failures"],"timeline":{"detected_after":null,"resolved_after":"2h 8m"},"date_kind":"incident","detection":null,"components":["cloud-load-balancer","network-control-plane"],"root_cause":"software-bug","remediation":[{"text":{"en":"Restarted the jobs that program changes into the network load balancers, so the stuck changes were processed as a batch","ko":"네트워크 로드 밸런서에 변경을 반영하는 작업을 재시작했다. 재시작 뒤 문제의 변경이 한 묶음으로 처리되면서 비효율적인 코드 경로를 타지 않았고, 변경이 다시 처리됐다."}},{"text":{"en":"Applied the fix zone by zone between 11:36 and 12:42","ko":"이 조치를 11:36 부터 12:42 까지 존마다 차례로 적용했다."}}],"action_items":[{"text":{"en":"Increase the canary timeout so updates that hit the inefficient code path only slow network changes instead of stopping them","ko":"canary 타임아웃을 늘려, 비효율적인 코드 경로를 타는 변경이 네트워크 변경을 완전히 멈추지 않고 늦추기만 하게 한다."}},{"text":{"en":"Improve the inefficient code path","ko":"비효율적인 코드 경로를 개선한다."}},{"text":{"en":"Write new tests that check behaviour on a wider range of configurations","ko":"더 넓은 범위의 구성에서 동작을 확인하는 테스트를 새로 쓴다."}},{"text":{"en":"Accelerate replacing global propagation of address configuration with decentralized routing","ko":"주소 구성을 전 세계로 퍼뜨리는 방식을 분산 라우팅으로 바꾸는 작업을 앞당겨, 이 계층의 문제가 전 세계에 영향을 주지 않게 한다."}},{"text":{"en":"Add metrics and alerting that identify this kind of issue sooner","ko":"이런 문제를 더 빨리 알아보고 더 빨리 해결할 수 있도록 지표와 알림을 더 만든다."}}],"contributing":["blast-radius-too-wide","test-coverage-gap"],"recurrence_of":null,"symptoms_text":{"en":"On 30 January 2017, Google Compute Engine instances, Cloud VPN tunnels and GCE network load balancers that were created or live migrated between 10:36 and 12:42 PDT could not be reached on their public IP addresses. Resources created earlier, and instances that were not live migrated, kept working.\n\nThe affected instances also could not send outbound traffic, and load balancing health checks against them did not succeed. Google's status page first described the problem at 11:13 as newly created VMs having no network connectivity, also affecting VMs undergoing live migration, and at 12:40 added that newly created VPNs were affected as well.\n\nRecovery went zone by zone. At 12:07 most GCE regions were reported mitigated, at 12:40 all regions except europe-west1, which was still clearing. Connectivity for new GCE instances was fully back at 12:45 and for VPNs at 12:50.","ko":"2017년 1월 30일 새로 만든 GCE 인스턴스에 네트워크 연결이 되지 않았다. 라이브 마이그레이션 중인 인스턴스, 새로 만든 Cloud VPN 터널과 GCE 네트워크 로드 밸런서도 공인 IP 주소로 닿을 수 없었다. 이미 만들어져 있고 라이브 마이그레이션을 겪지 않은 인스턴스, 로드 밸런서, VPN 터널은 영향이 없었다.\n\n영향을 받은 인스턴스는 밖으로 나가는 트래픽도 보내지 못했고, 로드 밸런싱 헬스 체크도 통과하지 못했다.\n\n상태 페이지는 11:13 에 조사 중이라고 처음 알렸다. 11:40 에는 문제가 10:54 에 시작됐고 완화 작업 중이라고 알렸다. 12:07 에는 대부분의 GCE 리전에서 완화됐다고 했다. 12:40 에는 europe-west1 을 뺀 모든 리전에서 완화됐지만 새 VPN 은 아직 영향을 받는다고 했다. 마지막 공지는 새 인스턴스는 12:45 에, VPN 은 12:50 에 완전히 완화됐다고 했다."},"updated_at":"2026-11-14T12:34:04.724339Z","url":"https://benchlet.com/incidentlib/app/cases/IL-0396","org_slug":"google-cloud"}