지역 복제를 사용한 Git Sync

지역 복제를 사용한 Git Sync (Git Sync with regional replication)

여러 지역에 걸쳐 여러 Grafana 인스턴스를 배포해요. 같은 Git 위치와 동기화해 어디서나 일관된 대시보드를 보장해요.

출처: 문서

본문

여러 지역에 걸쳐 여러 Grafana 인스턴스를 배포해요. 같은 Git 위치와 동기화해 어디서나 일관된 대시보드를 보장해요.

이 용도로 사용해요 (Use it for)

  • 지리적 분포: 서로 다른 지역의 사용자 근처에 Grafana를 배포해요.
  • 지연 시간 감소: 사용자가 자신의 위치에서 빠른 대시보드 접근이 필요해요.
  • 데이터 주권: 특정 지역에 대시보드 데이터를 유지해요.
  • 고가용성: 지역에 걸친 대시보드 가용성이 필요해요.
  • 일관된 경험: 지역과 무관하게 모든 사용자가 같은 대시보드를 봐요.

아키텍처 (Architecture)

┌─────────────────────────────────────────────────────┐
│           GitHub Repository                         │
│   Repository: your-org/grafana-manifests          │
│   Branch: main                                      │
│                                                     │
│   grafana-manifests/                              │
│   └── shared/                                      │
│       ├── dashboard-global.json                    │
│       ├── dashboard-metrics.json                   │
│       └── dashboard-logs.json                      │
└─────────────────────────────────────────────────────┘
              ↕                           ↕
       Git Sync (shared/)         Git Sync (shared/)
              ↕                           ↕
┌────────────────────┐          ┌────────────────────┐
│  US Region         │          │  EU Region         │
│  Grafana           │          │  Grafana           │
│                    │          │                    │
│  Repository:       │          │  Repository:       │
│  - path: shared/   │          │  - path: shared/   │
└────────────────────┘          └────────────────────┘

저장소 구조 (Repository structure)

Git에서:

your-org/grafana-manifests
└── shared/
    ├── dashboard-global.json
    ├── dashboard-metrics.json
    └── dashboard-logs.json

Grafana Dashboards 보기에서 (모든 지역):

Dashboards
└── 📁 grafana-manifests/
    ├── Global Dashboard
    ├── Metrics Dashboard
    └── Logs Dashboard
  • 모든 지역 인스턴스(US, EU 등)는 동일한 폴더 구조를 보여줘요
  • 모든 지역에서 같은 폴더 이름 "grafana-manifests"
  • shared/ 경로에서 동기화된 같은 대시보드가 모든 곳에 나타나요
  • 모든 지역의 사용자는 같은 제목의 정확히 같은 대시보드를 봐요

구성 매개변수 (Configuration parameters)

모든 지역:

  • Repository: your-org/grafana-manifests
  • Branch: main
  • Path: shared/

작동 방식 (How it works)

  1. 모든 지역 인스턴스가 shared/에서 대시보드를 가져와요.
  2. 어느 지역의 변경이라도 Git에 커밋돼요.
  3. 다른 지역은 다음 동기화(또는 webhook을 통해서)에서 업데이트를 가져와요.
  4. 변경 사항은 동기화 간격에 따라 지역 간에 전파돼요.

고려 사항 (Considerations)

  • 쓰기 충돌: 서로 다른 지역의 사용자가 같은 대시보드를 동시에 수정하면 Git이 last-write-wins를 사용해요.
  • 주 지역: 대시보드 변경을 만드는 주요 위치로 한 지역을 지정하는 것을 고려해요.
  • 전파 시간: 변경 사항은 구성된 동기화 간격 내에 모든 지역으로 전파되거나, webhook이 구성되어 있다면 즉시 전파돼요.
  • 네트워크 안정성: 모든 지역이 Git 저장소에 안정적으로 연결되는지 확인해요.

더 알아보기 (Learn more)