▲GN⁺ 2023-12-14 | parent | ★ favorite | on: 무중단 Postgres 업그레이드(knock.app)Hacker News 의견 대용량 테이블을 복사하는 것보다 더 나은 방법이 존재함. 복제 슬롯 생성, 스냅샷 취득, 새 인스턴스로 스냅샷 복원, LSN 진행, 복제 시작으로 논리적 복제본을 만들 수 있음. Instacart의 기사가 이 과정을 설명하고 있음. 기사에 작은 오류가 있을 수 있지만, TB 크기 인스턴스를 업그레이드하는 데 여러 번 성공적으로 사용함. 여기서 제시된 접근법은 흥미롭고 잘 문서화되어 있지만, "현대 고객은 100% 가용성을 기대한다"는 문장에 동의하지 않음. 고객이나 공급자로서의 경험에 따르면, 가용성보다 일관성이 훨씬 중요함. 벤더가 다운타임을 공지할 때 데이터를 신중하게 다루고 있다는 신호로 받아들여 안도감을 느낌. AWS가 이제 블루-그린 배포를 지원함. 대부분의 문제를 자동화하는 도구를 작성함. 도구는 GitHub에서 공유되며, 피드백이나 아이디어를 통해 확장할 수 있음. hava.io에서 AWS RDS PostgreSQL 11.13에서 15.5로 마이그레이션 중임. pglogical을 사용한 단방향 복제 방식을 선택함. 이 방식은 빠르지 않지만, 점진적으로 데이터베이스를 새 인스턴스로 복제하는 데 몇 일이 걸릴 수 있음. 스토리지 유형과 크기를 변경하는 더 많은 자유를 제공함. 어떠한 다운타임도 Knock 서비스에는 받아들일 수 없다는 주장에 의문을 표함. 복잡한 시스템은 사고와 다운타임이 발생함. 사전에 공지된 15분 다운타임은 대부분의 SaaS 비즈니스에 문제가 되지 않음. 엔지니어링 시간을 제품 개발이나 개발 팀의 속도 향상에 투자하는 것이 사용자에게 더 만족을 줄 수 있음. 데이터베이스 마이그레이션에서 "적은 다운타임"과 "제로 다운타임" 마이그레이션을 만드는 데 드는 작업량 차이가 큼. 백업에서 복제를 초기화할 수 없다는 것에 놀람. 기존 안정적인 DB 내용을 새 서버로 스트리밍하는 번거로움을 줄일 수 있었을 것임. "제로 다운타임"이라고 하지만, 실제로는 새 서버로 전환하는 몇 초간의 다운타임이 있음. 일관성 유지 방법에 대한 세부 사항이 누락됨. 롤백 옵션에 대한 언급이 없으며, 대규모 데이터에 대한 일회성 이전 작업을 수행할 때는 항상 이전 단계로 되돌릴 계획이 필요함. 데이터베이스 자격증명만 입력하면 제로 다운타임으로 Postgres 업데이트를 수행하는 올인원 도구에 관심이 있는지 물음. 시퀀스 사용에 대한 것이 흥미로움. 시퀀스 대신 주로 순차적 UUID나 HiLo 알고리즘을 사용함. 분산 시스템에서 발생하는 문제는 적절한 sleep(1000)으로 해결할 수 있음을 농담으로 표현함. Postgres는 DBA에게 친숙하지 않은 시스템이지만, 예전보다는 나아짐.
Hacker News 의견
대용량 테이블을 복사하는 것보다 더 나은 방법이 존재함.
여기서 제시된 접근법은 흥미롭고 잘 문서화되어 있지만, "현대 고객은 100% 가용성을 기대한다"는 문장에 동의하지 않음.
AWS가 이제 블루-그린 배포를 지원함.
대부분의 문제를 자동화하는 도구를 작성함.
hava.io에서 AWS RDS PostgreSQL 11.13에서 15.5로 마이그레이션 중임.
어떠한 다운타임도 Knock 서비스에는 받아들일 수 없다는 주장에 의문을 표함.
백업에서 복제를 초기화할 수 없다는 것에 놀람.
데이터베이스 자격증명만 입력하면 제로 다운타임으로 Postgres 업데이트를 수행하는 올인원 도구에 관심이 있는지 물음.
시퀀스 사용에 대한 것이 흥미로움.
분산 시스템에서 발생하는 문제는 적절한 sleep(1000)으로 해결할 수 있음을 농담으로 표현함.