호토모에 등대 프로젝트

코코아 (토론 | 기여)님의 2024년 1월 10일 (수) 13:01 판 (새 문서: == 개요 == 호토모에 등대 프로젝트는 호토모에가 꺼지지 않게 하자는 의미를 담아서 지어진 이름입니다. 최근 하드웨어 노후화로 인한 잦...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

1 개요

호토모에 등대 프로젝트는 호토모에가 꺼지지 않게 하자는 의미를 담아서 지어진 이름입니다.

최근 하드웨어 노후화로 인한 잦은 장애를 겪었기 때문에 이를 방지하고, 겸사겸사 많은 개선을 진행하고자 합니다.

2 무엇이 바뀌는가?

일단 사용자가 체감할 수 있는 변화는 다음과 같은 것이 있을 것이라고 예상합니다.

  • 다운타임(=서비스를 이용할 수 없는 시간)의 효과적인 억제
  • 미국 리전 추가를 통한 해외 사용자의 접속 환경 개선
  • 자동으로 배포되는 미스키 신버전 (미확정)

사용자가 체감할 수 없는, 기술적인 부분의 변화는 다음과 같은 것이 있을 것이라고 예상합니다.

  • 쿠버네티스 도입
  • DB 서버 이중화
  • Anycast 적용을 통한 seamless region change 구현

3 우려점

3.1 미스키는 과연 믿을만한가?

정확히는 "미스키 신버전이 자동으로 배포해도 될만큼 신뢰되는가?"의 문제입니다. 호토모에는 다른 인스턴스에 비해 꽤나 느린 업데이트 주기를 가지고 있는데요, 이는 제가 신버전이 나오자마자 올리면 항상 뒤통수를 맞았기 때문에... 경험에서 나오는 선택입니다.

이런 상황에서 미스키 신버전이 나왔을 때 자동으로 업데이트를 한다는건 꽤나 두려운 선택이 될 수 있습니다. 물론 나오자마자 하게 하진 않을테고, 아마 최소 5~10일간의 주시 기간을 가지고 다른 인스턴스들의 상황을 본 뒤 위험하다 싶으면 수동 배포로 전환하겠지만 배포 프로세스만 자동화 하고 자동으로 신버전을 인식해서 배포할 필요는 없지 않을까 하는 생각도 가지고 있습니다.

3.2 쿠버네티스 도입

디중 서버의 컨테이너를 관리해야 하고, Blue/Green 배포도 도입하고자 하는 상황에서 쿠버네티스 도입을 검토하고 있습니다만, 이 또한 제가 써보지 않은 도구로 구성에서 실수가 있을 수 있다는 것을 간과할 수 없습니다. 물론 이 쪽은 구성을 잘못하면 애초에 서비스가 동작하지 않을 가능성이 높기 때문에 일찍 바로잡을 수 있을 가능성이 높다고 생각합니다...만 그렇지 않을 가능성도 있다는 것은 우려는 있습니다.

3.3 DB 이중화 구성

Misskey는 DB로 PostgreSQL을 사용하고 있습니다. 문제는 제가 PostgreSQL 서버 운용 경험이 많지 않다는 것인데요, 이런 상황에서 이중화 구성까지 하는 것은 잘못된 구성으로 데이터 유실이 일어나는 가능성을 간과할 수 없습니다.

3.4 Anycast에 관해서

미국 리전의 추가는 Anycast를 이용하여 진행하고자 합니다. Anycast가 무엇이냐 하면... 적당히 짧게 말하면 "IP 주소를 여러 서버에 할당하는 것"이라고 할 수 있겠습니다. 일단 기본적으로 같은 IP 주소는 여러 곳에 할당 할 수 없다고 알고 계시겠지만 인터넷에서는 어느정도 가능합니다. 좀 복잡할 뿐이지... 이런 경우 통신사는 자신이 가지고 있는 여러 경로 중에서 가장 합리적이라고 "생각되는" 경로를 통해서 접근합니다.

근데 이 경로가 실제로 합리적인진 모릅니다. 이 "합리적"의 기준도 통신사마다 다릅니다. 그래서 만약에 호토모에 서버가 일본과 미국에 있을 때, 한국의 사용자가 접속하는데 미국으로 가버릴 수도 있습니다. 이런 경우엔 골치가 아프겠죠. 극단적으로는 미국의 어떤 통신사가 경로 선택을 잘못 해서 일본 서버로 갈 수도 있는거고요.

이런 경우엔 시행착오를 통해서 제가 직접 그 라우팅을 사용하지 말라고 정책을 배포해야 합니다. 이게 우려점인 이유는, 시행착오를 반드시 겪어야, 그리고 제가 쓰는 통신사가 아니라면 그 시행착오의 불편을 특정 사용자층이 겪어야지만 해결이 가능합니다. 물론 해결된 이후에 그게 영구적이라고 보기도 힘듭니다. 물론 그게 그렇게 자주 바뀌진 않겠지만요.

이것이 첫번째 우려점입니다. 하지만 시행착오를 겪는 것보다도 가치가 있다고 판단했습니다. 극단적으로 만약 일본에 있는 IDC에 불이 난다거나 하면 일반적인 구성에선 꼼짝없이 장기적인 장애로 이어질 수밖에 없습니다. 최악의 상황에선 데이터의 일부 또는 전체 유실도 각오해야겠죠. 하지만 이렇게 두개의 region에서 서버를 구성하면 한 쪽 서버가 완전히 박살나도 나머지 한 쪽으로 정상 동작이 가능합니다.

4 마치며

이번 프로젝트는 필연적으로 운영 비용의 증가가 발생합니다. 현재는 전기료 정도입니다만, 이제 전기료는 별도고 서버 임대료가 발생하게 됩니다. 원래 호토모에는 "전기료 정도는 그냥 내면 되지!" 해서 후원을 따로 받진 않았던 것인데, 이렇게 된다면 후원을 여는 것도 검토해봐야 할 것 같습니다.