MongoDB와 Elasticsearch에 SSPL이라는 라이선스와 상용 라이선스가 함께 도입되어, 이 오픈소스 프로그램을 이용한 클라우드 사업자들에게는 영향이 발생하게 되었습니다. MongoDB는 AGPL에서 SSPL과 상용 라이선스로, Elasticsearch/Kibana는 Apache 2.0에서 SSPL과 Elastic 2.0으로 변경되었습니다.
AGPL은 GPL 라이선스의 계열로서 원격으로 접근하여 상호작용할 수 있는 서비스
에 대한 라이선스로서 네트워크 서비스와 전체 기능의 소스코드를 공개해야 하는 의무
가 있습니다.
수정 버전의 경우 네트워크를 통해 원격으로 대화하는 모든 사용자들에게 해당 소스를 받을 수 있는 기회를 제공해야 함
AGPL도 상당히 복잡한 라이선스이나, 여기서는 자세히 다루진 않겠습니다. 로컬에서 자신만을 위해 수정없이 사용하는 경우에는 소스코드 공개 의무가 없으나, 수정하거나 네트웍 서비스로 제공하거나 남에게 제공하는 경우에는 소스코드나 바이너리를 공개해야 하는 의무가 있습니다. 조건이 하나라도 달라지면, 열 가지가 넘는 서브 라이선스 중 일치하는 것을 찾아서 의무사항을 지켜야 합니다. 너무 복잡하기 때문에 AGPL이 적용된 소프트웨어는 상용으로 사용하지 않는 게 바람직합니다.
SSPL은 AGPL과 소스코드에 대해 동일한 자유도를 제공하고 있으나 딱 두 가지 섹션 13과 14에서 차이점을 가집니다. 섹션 14는 라이선스 내용의 업데이트와 버전 표기에 대한 내용이라서 넘어가도 괜찮습니다.
섹션 13에서 "서비스로(as a service) 제공하기"에 대해 명시적으로 관련 소스코드 공개 의무
조건을 걸었습니다. 서비스로 제공하려면 소스코드를 공개하든가 그게 싫으면 (이 라이선스에서는 포함되지 않으니) 별도의 상용 라이선스를 따라야 합니다.
13. Offering the Program as a Service.
"13. 프로그램을 서비스로(as a service) 제공하기
If you make the functionality of the Program or a modified version available to third parties as a service, you must make the Service Source Code available via network download to everyone at no charge, under the terms of this License. Making the functionality of the Program or modified version available to third parties as a service includes, without limitation, enabling third parties to interact with the functionality of the Program or modified version remotely through a computer network, offering a service the value of which entirely or primarily derives from the value of the Program or modified version, or offering a service that accomplishes for users the primary purpose of the Program or modified version.
"프로그램이나 변경된 버전"의 기능을 제3자에게 서비스로서(as a service) 사용가능하게 해준다면, 라이선스 조건에 따라 "서비스 소스 코드"를 비용없이 모든 사람에게 네트웍 다운로드를 통해 사용가능하게 해야 한다. 프로그램이나 변경된 버전을 제3자에게 서비스로서 사용가능하게 해준다는 것은 다음을 포함한다.
a) 제한없이 제3자가 프로그램이나 변경된 버전과 컴퓨터 네트워크를 통해 원격으로 상호작용하는 것을 가능하게 하기
또는
b) 프로그램이나 변경된 버전의 가치로부터 전적으로 또는 주로 유래한 가치를 어떤 서비스에 제공하기
또는
c) 프로그램이나 변경된 버전의 주요 목적을 사용자들을 위해 수행하는 어떤 서비스를 제공하기
“Service Source Code” means the Corresponding Source for the Program or the modified version, and the Corresponding Source for all programs that you use to make the Program or modified version available as a service, including, without limitation, management software, user interfaces, application program interfaces, automation software, monitoring software, backup software, storage software and hosting software, all such that a user could run an instance of the service using the Service Source Code you make available.
"서비스 소스 코드"는 프로그램이나 변경된 버전에 대응하는 소스, 그리고 프로그램이나 변경된 버전을 서비스로 사용가능하게 해주기 위해 당신이 사용하는 모든 프로그램에 "대응하는 소스"(제한없이 다음을 포함하여)를 의미한다.
관리 소프트웨어, 사용자 인터페이스, 응용 프로그램 인터페이스, 자동화 소프트웨어, 모니터링 소프트웨어, 백업 소프트웨어, 스토리지 소프트웨어와 호스팅 소프트웨어, 당신이 사용가능하게 해준 "서비스 소스 코드"를 어떤 사용자가 사용해서 그 서비스의 인스턴스를 실행하는 그런 모든 것
예를 들면, MongoDB를 서비스로 제공하려면 MongoDB 소스코드(또는 변경된 버전의 소스코드)와 그걸 서비스로 만들기 위해 사용한 모든 소프트웨어의 소스코드를 공개해야 한다는 의미입니다.
SSPL FAQ를 살펴보니 다행히 자회사에 as a service로 제공하는 것에 대해서는 문제삼지 않고
있습니다.
Does section 13 of the SSPL apply if I’m offering MongoDB as a service for internal-only use?
내가 MongoDB를 내부 전용으로 서비스로 제공한다면 SSPL의 13번 섹션이 적용되나요?
No. We do not consider providing MongoDB as a service internally or to subsidiary companies to be making it available to a third party.
아니오. 우리는 MongoDB를 서비스로 내부적으로 또는 자회사들에게 제3자에게 제공하는 것을 제3자에게 사용가능하게 해주는 것이라고 여기지 않습니다.
MongoDB는 2018년 10월 16일에 SSPL을 도입했기 때문에 그 이전까지의 버전은 AGPL이고 그 이후부터는 SSPL을 따릅니다. SSPL을 따르지 않으려면 MongoDB의 상용 라이선스를 따르면 됩니다. AGPL도 소스코드 공개 의무가 강력한 라이선스이므로 MongoDB는 어떤 버전이든 자신만을 위해, 수정없이, 로컬에서만, 바이너리를 그대로 사용하는 게 바람직합니다.
AGPL | SSPL |
---|---|
4.4.x | |
4.2.x | |
~4.0.3 | 4.0.4~ |
~3.6.8 | 3.6.9~ |
~3.4.17 | 3.4.18~ |
~3.2.21 | 3.2.22~ |
~3.0.x |
저는 고객이 내부적으로 사용할 수 있도록 Elasticsearch와 Kibana를 설치하는 계약자입니다.
-> 이것은 소프트웨어를 관리형 서비스로 제공하지 않는 경우이므로 ELv2 하에서 허용됩니다.저는 고객을 위해 Elasticsearch와 Kibana를 실행하는 관리형 서비스 제공자(Managed Service Provider, MSP)입니다.
-> 귀하의 고객이 Elasticsearch와 Kibana에 액세스하지 않는 경우, 이것은 ELv2 하에서 허용됩니다.
고객이 귀하의 서비스의 일부로 Elasticsearch와 Kibana의 기능 중 상당 부분에 액세스할 수 있는 경우, 이는 허용되지 않을 수 있습니다.위 해석은 법적 분쟁에서 법적 효력을 가지는 증거로 사용될 수 없습니다.