EXPLORINEER
ko

Hatena

PHP 8.5.12 긴급 릴리스에 대한 pixiv의 대응

보안처음 오른 때 점수 723


pixiv가 PHP의 긴급 보안 업데이트(PHP 8.5.12)가 나오자, 약 30분 만에 서비스 점검 모드를 풀고 새 버전을 배포한 과정을 정리한 글입니다.

무슨 일이 있었나

PHP에서 심각한 보안 구멍(PHP2Shell이라고 불리는 취약점)이 발견되어, 긴급 보안 업데이트가 예고되었습니다. pixiv는 영향을 받을 수 있는 서비스를 미리 점검 모드로 바꾸고, 업데이트가 나오자마자 패치를 적용했습니다. 이 글은 업데이트 공개 후 약 30분 동안 무엇을 했는지 설명합니다.

핵심 숫자와 사실

  • 보안 업데이트 공개: 22시 41분 (원래 예정은 23시)
  • 이미지 전체 빌드 시간: 약 6분 (22시 42분~22시 56분)
  • 점검 모드 해제: 23시 16분
  • CI 노드 CPU: AMD EPYC 2 (64코어 / 128스레드)
  • 하루 릴리스 횟수: 약 30회

미리 준비해 둔 것

pixiv는 공식 PHP 이미지를 Docker Hub에서 받아 씁니다. 하지만 공식 이미지가 언제 나올지 모르고, 많은 사람이 동시에 내려받으면 서버가 붐빌 수 있었습니다. 그래서 공식 이미지를 기다리지 않고, PHP 소스 코드에서 직접 이미지를 만들 수 있도록 미리 준비했습니다. 또 여러 도메인의 점검 모드를 한 번에 푸는 스크립트도 만들어 두었습니다.

왜 중요한가

보안 구멍이 알려지면 공격이 빨라질 수 있어서, 패치를 얼마나 빨리 적용하느냐가 중요합니다. pixiv는 미리 준비하고, 빌드를 빠르게 하고, 배포 과정을 자동화해서 약 30분 만에 서비스를 다시 열 수 있었습니다. 이 글은 대형 서비스가 긴급 업데이트에 어떻게 대응하는지 보여주는 사례입니다.

앞으로 볼 점

  • 이번 작업에서 잘 안 된 점(점검 모드가 적용되지 않은 곳, 백과사전 빌드 지연, PECL 불안정)을 어떻게 고치는지
  • Kubernetes 환경으로 완전히 옮긴 뒤 배포 방식이 어떻게 안정화되는지

용어 풀이

PHP
웹 서버에서 많이 쓰는 프로그래밍 언어입니다.
Docker
프로그램과 실행 환경을 '컨테이너 이미지'로 묶어 어디서든 같은 방식으로 실행하게 해 주는 도구입니다.
Kubernetes
여러 서버에 컨테이너를 나눠 올리고 자동으로 관리해 주는 시스템입니다.
Docker Hub
Docker 이미지를 올리고 내려받는 공개 저장소입니다.

출처: Hatena에서 원문 보기 ↗

이 글은 원문을 바탕으로 AI가 쉬운 말로 다시 쓴 해설입니다. 사실관계는 원문을 확인하세요.