Linux 패키지를 사용한 Redis 복제 및 장애 조치
Linux 패키지를 사용하여 Redis Sentinel 기반의 기본-복제본 토폴로지를 구성하는 방법을 설명합니다. Redis 복제, Sentinel 설정, GitLab 애플리케이션 구성, 다중 Redis 클러스터, Valkey 사용, TLS 보안 등을 다룹니다.
이 문서는 Linux 패키지를 대상으로 합니다. 번들되지 않은 자체 Redis를 사용하려면 자체 인스턴스를 제공하는 Redis 복제 및 장애 조치 를 참고합니다. Redis 용어에서 primary 는 master 라고 부릅니다. 이 문서에서는 master 가 필요한 설정을 제외하고 master 대신 primary 를 사용합니다. 확장 가능한 환경에서 Redis 를 사용하는 것은 장애 조치 절차를 감시하고 자동으로 시작하는 Redis Sentinel 서비스와 함께 기본 x 복제본 토폴로지를 사용하면 가능합니다. Redis는 Sentinel과 함께 사용할 때 인증이 필요합니다. 자세한 내용은 Redis 보안 설명서를 참고합니다. Redis 서비스를 보호하려면 Redis 비밀번호와 엄격한 방화벽 규칙을 함께 사용하는 것을 권장합니다. 토폴로지와 아키텍처를 완전히 이해하려면 GitLab으로 Redis를 구성하기 전에 Redis Sentinel 설명서를 먼저 읽어보는 것을 권장합니다. Redis와 Redis Sentinel을 복제 토폴로지로 설정하는 세부 내용에 들어가기 전에, 구성 요소들이 어떻게 연결되는지 더 잘 이해하기 위해 이 문서를 전체적으로 한 번 읽어보는 것을 권장합니다. 물리적인 머신이든, 별도의 물리적 머신에서 실행되는 VM이든 최소 3 개의 독립된 머신이 필요합니다. 모든 기본 및 복제본 Redis 인스턴스는 서로 다른 머신에서 실행되어야 합니다. 머신을 이 특정 방식으로 프로비저닝하지 못하면, 공유 환경의 문제가 전체 설정을 중단시킬 수 있습니다. 기본 또는 복제본 Redis 인스턴스와 함께 Sentinel을 실행해도 됩니다. 다만 같은 머신에 Sentinel을 두 개 이상 두면 안 됩니다. 또한 기반 네트워크 토폴로지도 고려해야 합니다. Redis/Sentinel과 GitLab 인스턴스 사이에 이중화된 연결을 확보해야 합니다. 그렇지 않으면 네트워크가 단일 장애 지점이 될 수 있습니다. 확장된 환경에서 Redis를 실행하려면 몇 가지가 필요합니다: 여러 개의 Redis 인스턴스 기본 x 복제본 토폴로지로 Redis 실행 여러 개의 Sentinel 인스턴스 모든 Sentinel 및 Redis 인스턴스에 대한 애플리케이션 지원과 가시성 Redis Sentinel은 HA 환경에서 가장 중요한 작업을 처리하며, 다운타임을 최소화하거나 없애면서 서버를 온라인 상태로 유지하도록 돕습니다. Redis Sentinel은 다음을 수행합니다: 기본 및 복제본 인스턴스를 모니터링하여 사용 가능한지 확인합니다 기본 이 실패하면 복제본 을 기본 으로 승격시킵니다 실패했던 기본 이 다시 온라인 상태가 되면 기본 을 복제본 으로 강등시킵니다(데이터 파티셔닝 방지) 애플리케이션이 항상 현재 기본 서버에 연결하도록 조회할 수 있습니다 기본 이 응답하지 않으면, 타임아웃을 처리하고 재연결하는 것은 애플리케이션(우리의 경우 GitLab)의 책임입니다(새로운 기본 을 찾기 위해 Sentinel 에 조회합니다). Sentinel을 올바르게 설정하는 방법을 더 잘