레디스와 엘라스틱의 오락가락 오픈소스 행보
오픈소스 생태계를 떠났던 레디스가 최근 오픈소스 라이선스를 다시 도입했다. 커뮤니티에 기여하지 않고 돈을 버는 호스팅 사업자, 특히 아마존웹서비스(AWS)의 무임승차를 막겠다며 오픈소스 라이선스를 아예 폐기했지만, AWS 주도로 오픈소스 커뮤니티가 떠나자 다시 원래 자리로 돌아온 것이다. 지난해 엘라스틱서치와 오픈서치의 사례와 똑같은 상황을 지켜보는 오픈소스 커뮤니티의 심경은 복잡하다.
지난 1일 레디스는 ‘레디스8(Redis 8)’ 버전을 출시하면서, AGPLv3 라이선스를 새로 추가한다고 밝혔다.
레디스는 작년 3월 소프트웨어 라이선스를 기존의 BSD3 라이선스에서 ‘레디스 소스 사용 가능 라이선스(RSALv2)’와 ‘서버사이드퍼블릭라이선스(SSPLv1)’의 이중 라이선스로 변경했다. RSAL과 SSPL 모두 오픈소스로 인정받지 못한 라이선스다.
SSPL은 AWS, 구글클라우드 같은 클라우드 사업자의 소프트웨어 호스팅 서비스를 제한하는 라이선스다. 만약 레디스를 제공하는 클라우드 서비스를 제공하려면 별도의 대가를 지불하는 상용 라이선스를 체결해야 한다.
AGPLv3 라이선스는 GNU GPL의 변형으로 서버에서 실행되는 소프트웨어의 코드도 외부에 공개하도록 강제한다. AGPL은 오픈소스이니셔티브(OSI)에서 오픈소스로 승인한 라이선스다. 그라파나, 엘라스틱 등의 프로젝트도 AGPL을 채택했다.
레디스의 지난해 라이선스 변경은 오픈소스 커뮤니티의 큰 반발을 샀다. 회사의 일방적 라이선스 변경을 비난한 한 세력이 레디스 코드를 분기해 ‘발키(Valkey)’란 포크 프로젝트를 출범시켰다.
갈등이 얼마나 컸던지 레디스 회사 측은 커뮤니티의 상표권 사용에 시비를 걸기도 했다. 커뮤니티와 회사 간 갈등을 중재하기 위해 레디스 창시자 살바토레 산필리포가 일선 후퇴를 번복하고 레디스 회사에 재입사했다.
레디스는 AGPL 도입으로 오픈소스로 복귀했지만, 제3자의 호스팅 사업을 막겠다는 의지까지 버리지는 않았다. AGPL은 웹서비스로 제공되는 경우에도 소스코드를 공개하도록 의무화하고 있고, 이는 결국 클라우드 사업자에게 레디스 상용 라이선스 계약을 체결하도록 강제한다. 살바토레 산필리포가 AGPL 도입에 상당한 영향을 끼친 것으로 보인다.
로완 트롤로프 레디스 최고경영자(CEO)는 “라이선스 변경 후, 2024년 11월 살바토레 산필리포(antirez)가 레디스의 개발자 에반젤리스트로 복귀하기로 결정했고, 앞으로 큰 도움이 될 중요한 변화를 가져왔다”며 “살바토레, 벤자민 르노 CTO 및 핵심 개발자의 지침에 따라 레디스를 개선하기 위한 결정을 내렸다”고 밝혔다.
레디스 회사 측은 소기의 목적을 달성했다고 스스로 평가했다. AWS와 구글이 자체 포크 프로젝트로 가면서 레디스 프로젝트의 무임승차를 하지 않게 됐다는 것이다. 1차 목표를 달성했으니 부작용인 커뮤니티와 갈등의 골을 메우기 위해 오픈소스로 복귀했다는 입장이다.

엘라스틱서치 데자뷔
레디스의 이같은 행보는 작년 9월 엘라스틱의 행보와 거의 일치한다.
작년 9월 엘라스틱의 설립자이자 최고기술책임자(CTO)인 셰이 바논은 AGPL을 엘라스틱서치와 키바나에 추가한다고 발표했다. 엘라스틱이 아파치2.0 라이선스를 제거한 지 3년 반의 오픈소스 복귀였다.
엘라스틱은 2015년부터 AWS와 소송전까지 벌이며 첨예하게 대립했다. AWS의 엘라스틱서치 무임승차를 비난하면서 ‘엘라스틱 라이선스’란 상용 라이선스를 도입하면서 AWS를 무단 상용 서비스로 몰았고, 2021년 SSPL을 도입하고 아파치2.0 라이선스를 폐기했다.
이에 AWS는 엘라스틱서치 코드를 분기해 아파치2.0 라이선스 기반의 ‘오픈서치(OpenSearch)’를 출범시켰다.
셰이 바논은 작년 9월 블로그에서 오픈소스로 복귀를 자축하면서 “3년전 AWS와 관련 문제가 있었고, AWS가 시장에 혼란을 야기하고 있었다”며 “고통스러웠지만 결국 성공했고, 3년이 지난 지금 AWS는 자사 포크에 완전히 투자했고 시장의 혼란은 대부분 해소됐으며 AWS와 파트너십은 어느때보다 강력해졌다”고 밝혔다.
레디스와 엘라스틱의 선택, 배경은 모두 AWS
레디스와 엘라스틱이 오픈소스를 폐기한 이유도, 오픈소스로 복귀한 이유도 AWS다.
AWS는 레디스와 엘라스틱서치란 오픈소스 프로젝트를 자사 서버에 호스팅하고, 외부에 상용 서비스로 판매했다. 레디스와 엘라스틱이란 법인은 AWS 같은 대형 클라우드 사업자가 오픈소스로 번 수익을 커뮤니티에 적절한 수준으로 환원하지 않는다고 여겼다. 또한 두 회사 모두 오픈소스 프로젝트를 기반으로 하는 유료 엔터프라이즈 버전 사업을 진행중이었기에 AWS와 클라우드 사업자에게 이익을 뺏긴다고 생각했다.
AWS가 시장에 혼란을 준다는 각 회사의 주장은 사실로 인정할 만하다. 동일한 코드이고, 관리 주체만 다른 호스팅 서비스가 시장에 공급됐고, 사용자는 각 서비스의 상세한 차이를 거의 인식하지 않았다. AWS가 레디스와 엘라스틱의 이익을 빼앗아가면, 자연스레 레디스와 엘라스틱의 오픈소스 프로젝트 투자 여력이 줄어드는 것도 맞았다.
그러나 AWS가 오픈소스 프로젝트에 무임승차한다는 주장은 사실과 달랐다. AWS는 상당한 개발인력을 레디스와 엘라스틱서치 및 키바나 프로젝트에 투입하고 있었다. 엘라스틱과 레디스의 오픈소스 폐기 후 빠르게 포크 프로젝트가 만들어질 수 있었던 건 이미 오픈소스 프로젝트에 참여해오던 AWS 소속 개발자 덕분이었다.
AWS는 엘라스틱과 갈등의 원인이 오픈소스 프로젝트 주도권이라고 주장했다. 2018년 오픈서치의 전신인 ‘오픈 디스트로 포 엘라스틱서치’ 출시를 주도했던 AWS 클라우드아키텍처 전략 부사장 아드리아노 코크로프트는 2021년 해커뉴스와 인터뷰에서 “AWS는 오픈소스 프로젝트에 보안 기능을 추가하고 싶었고, 엘라스틱은 보안 기능을 엔터프라이즈 기능으로 유지하고 싶어 했기 때문에 당시 AWS의 모든 접근 방식을 거부했다”고 지적했다.
또 “당시 엘라스틱은 자신들이 프로젝트를 통제하고 있다고 생각하며, AWS가 오픈소스 배포판에 큰 기여를 해 자신들의 차별화를 약화시키는 것을 원하지 않았다”며 “또한 코드 베이스에 라이선스를 섞어 AWS가 사용하기 어렵게 의도적으로 만들었다”고 덧붙였다.
AWS는 오픈소스 프로젝트 인력 투입과 코드 기여가 커뮤니티로 환원이라고 생각했지만, 레디스와 엘라스틱 법인은 그다지 동의하지 않았다. 자신들이 프로젝트 거버넌스를 주도하고 있었기 때문에 AWS의 프로젝트 참여가 작게 여겨졌을 수 있다.
그러나 AWS가 엘라스틱서치 프로젝트에서 이탈하면서, 엘라스틱서치의 프로젝트의 핵심 개발인력이 떨어져 나갔다.
엘라스틱서치와 유사한 상황인 레디스도 그와 유사한 부침을 겪었을 것으로 예상된다.

무엇이 옳고 그른가, 그 너머의 갈등
엘라스틱서치와 레디스의 오픈소스로 복귀는 여러 측면의 논쟁을 담고 있다.
우선 플랫폼과 콘텐츠 개발자의 갑을 대립 구도다. AWS, 구글, 마이크로소프트 등 전세계에서 손꼽히는 대형 기업이 인프라 플랫폼을 장학한 가운데, 작은 오픈소스 소프트웨어 기업은 약자의 위치에 설 수밖에 없다.
빅테크 기업은 막강한 자본력을 앞세워 개발자 커뮤니티에 막대한 영향력을 행사한다. 각종 커뮤니티의 주요 스폰서 역할을 자임하며 개발인력도 지원한다. 때론 오픈소스 프로젝트에 직접 참여해 헤게모니를 아예 틀어쥐는 경우도 있다.
유연한 오픈소스 라이선스를 채택했던 프로젝트 스튜어드십 기업은 빅테크의 압도적 힘에 수익 창출에 어려움을 느끼고 탈출구를 모색하게 된다. 몽고DB가 SSPL을 처음 도입한 후, 여러 오픈소스 기업이 같은 경로를 택했다.
또 다른 논쟁은 오픈소스 프로젝트 주도 기업의 선택을 이중적 행태로 볼 것이냐다.
오픈소스 프로젝트를 주도하던 회사가 라이선스를 폐쇄형으로 바꾸면 커뮤니티는 배반감을 느끼며 반발한다. 사업에 초점을 맞출 거면 애초에 왜 오픈소스 라이선스를 택했냐는 것이다. 오픈소스로 풀어서 사용자를 끌어모으고 전세계 참여 개발자의 자발적 기여를 활용한 뒤 돈 벌 때에 문을 잠궈 사용자를 그물 안에 가두냐는 비판이다.
또 하나의 논쟁 거리는 프로젝트의 변형판을 만드는 것이다. 엘라스틱서치의 포크버전인 오픈서치와 레디스의 포크버전인 발키처럼 커뮤니티의 대응을 어떻게 볼 것인가에서 이견이 대립한다.
오픈소스 프로젝트에서 포크는 자유를 상징한다. 오픈소스 프로젝트는 어느 누구에게도 권리를 몰아주지 않으며, 상황에 따라 변형을 택하는 건 얼마든지 상정 가능한 선택이란 얘기다.
그러나 한 커뮤니티가 특정 이슈를 두고 극렬히 대립해서 둘로 쪼개지던 과거의 사례와, 엘라스틱서치와 레디스의 사례는 양상이 다르다. 커뮤니티가 분화된다기보다 언제든지 자본을 투입할 수 있는 특정 대기업이 또 하나의 포크를 만들고, 생태계의 한 덩어리를 크게 떼어가는 형태기 때문이다. 도덕적으로 보면 대기업이나 오픈소스 주도 기업이나 상업적 목적이란 점에서 모두 비판을 면하기 어렵다.
종합해보면 대형 클라우드 기업이든 작은 오픈소스 전문기업이든 선과 악으로 명확히 구분할 수 없다. 자본주의 경제 세계 속에서 성장과 생존이란 목표를 향해 움직이는 행보에서 그들의 정당성과 명분에 100% 공감하기 힘든 이유다.
문제는 오픈소스 생태계의 지속성이다. 오픈소스 프로젝트는 이제 세계 모든 IT 환경의 필수 요소로 자리잡았다. 사용자 입장에서 보면, 레디스나 엘라스틱서치처럼 매우 광범위하게 채택된 소프트웨어는 계속 발전해야 하고, 누군가 유지관리해줘야 한다.
빅테크 기업이 오픈소스 커뮤니티의 과실만 취하고 상업적 이익을 독점한다면, 커뮤니티와 그 주도 개발자의 경제적 생존을 위협할 수 있다. 대기업이 핵심 개발자를 고용할 수도 있지만, 모든 커뮤니티 속 개발자를 무한정 고용할 수도 없는 일이다. 그렇다고 오픈소스 커뮤니티가 대기업의 자본과 거리를 둘 수도 없는 노릇이다. 홈페이지, 이메일, 코드저장소 등을 유지하는 것만 해도 돈이 필요하다.
무엇보다 코드 품질 유지가 문제다. 코드 유지관리를 커뮤니티 개발자의 비영리적 기여에만 기대는 건 너무 위험하다. 공유지의 비극처럼 사용자만 많은 오픈소스 프로젝트는 사멸하기 쉽다. AWS, 구글, 마이크로소프트 등이 엘라스틱이나 레디스 법인이 사라진 뒤 해당 오픈소스를 인수해버리는 게 과연 좋은 결과라 할 수 있을까.
오픈소스 소프트웨어 생태계는 오늘날 거대한 소용돌이 한가운데 들어가 있다. 역사상 가장 많은 참여자를 갖게 됐지만 삐끗하면 생태계 균형이 무너져버릴 수 있다. 사용자와 개발자의 균형을 유지하자면 양자의 타협이 필요한 시점이다.
애초에 빅테크 기업이 개발인력과 코드 기여에 그치지 않고 실질적 자본을 커뮤니티에 기부하고, 프로젝트 주도 기업은 빅테크와 적절한 협력 관계를 설정했다면 어땠을까.
엘라스틱 클라우드 같은 개발사 자체 호스팅 서비스도 AWS, 애저, GCP 등의 인프라를 활용하는 건 같다. 엘라스틱클라우드 매출은 작년 30% 성장했다. 구독 고객수도 2021년 1만5000명에서 작년 2만1200명으로 50% 가까이 늘었다.
오픈서치와 엘라스틱서치가 별도의 발전 경로를 가게 되면서 사용자 입장에서 어느 하나 만족스러운가 생각하면 아쉽다. 오픈서치는 엘라스틱서치보다 보안에서 더 앞선다는 평가를 받지만, 여러 기능면에서 엘라스틱서치만의 장점이 있다.
지난 6일 오픈서치 3.0이 출시됐다. GPU 가속 벡터 인덱싱, 모델컨텍스트프로토콜(MCP) 지원, 핵심 자바 코드 현대화 등을 포함했다. AWS의 주도로 이뤄진 엘라스틱서치의 대안으로서 오픈서치는 초기에 성공을 확신할 수 없었지만 이제 어느정도 자리를 잡았다. 그러나 엘라스틱서치만큼의 완성도를 가졌다고 속단하기 어렵다.
그나마 다행스러운 건 AWS, 마이크로소프트 두 회사 만큼은 전보다 오픈소스 생태계 기여 방식을 더 전향적으로 바꾸고 있다는 점이다. AWS와 엘라스틱은 어느정도 화해하는 선에서 물러났고, 마이크로소프트는 SSPL을 채택한 소프트웨어 프로젝트에 정식 라이선스를 체결하고 있다.
글. 바이라인네트워크
<김우용 기자>yong2@byline.network