오픈 소스가 지속되기 위한 노력 – Open Distro for Elasticsearch
AWS에서는 고객의 문제를 해결하는 데 집중해 왔습니다. 또한, 오랜 기간 동안 오픈 소스 기술에 대한 고객의 사용 및 의존도 역시 꾸준히 증가하고 있습니다. 바로 이것이 AWS가 오랫동안 오픈 소스 지원에 전념해온 이유이며, 최근 몇년간 AWS와 오픈 소스 프로젝트에 대한 지원 확대가 더욱 가속화되고 있습니다.
AWS가 오픈 소스 프로젝트를 기반으로 클라우드 서비스를 시작하면, 고객 지원을 위해 장기적인 노력을 기울이고 있습니다. 버그 수정, 보안, 확장성, 성능 및 기능 향상을 오픈 소스 커뮤니티에 제공합니다. 예를 들어, Amazon Elasticsearch Service를 지원하는 Apache Lucene에 크게 기여했습니다. Amazon EMR 팀은 수년간 Hadoop 생태계에 기여 해왔고, Amazon EKS 팀은 Kubernetes에 공헌하고 있습니다. 또한, 오픈 소스 커뮤니티 개발자 교육에 투자 하고, ApacheCon 및 KubeCon과 같은 오픈 소스 이벤트 및 컨퍼런스에 스폰서하며, 최근 Apache Software Foundation 플래티넘 후원을 시작했습니다. 이러한 마케팅 지원은 사용자 및 제공자의 수를 늘림으로써 커뮤니티를 지원하고 오픈 소스 프로젝트의 채택을 확대하고 있습니다.
오픈 소스 커뮤니티에 적극적으로 참여하고 이유는 많습니다. 첫째, 건강한 오픈 소스 커뮤니티를 지원하여, 프로젝트가 지속적으로 발전하고 유지할 수 있도록 하는 것이 중요합니다. 둘째, 내부적으로 포크 된 프로젝트 버전을 유지하면 추가적인 낭비 요소가 있으며, 기존 소스 레포지터리와 병합하는 동안 서비스 업데이트에 지연 될 수 있습니다. 셋째, 오픈 소스를 중심으로 아이디어를 만들면, 다른 아이디어를 모아 주류로 움직일 수 있습니다. 넷째, 기업 및 교육 기관의 오픈 소스 협력은 인공 지능과 같은 영역에서 가장 중요한 획기적인 부분을 만들어 냈습니다.
이러한 이점을 얻으려면, 사용자는 오픈 소스 프로젝트가 열려 있다는 신뢰를 할 수 있어야합니다. 오픈 소스 프로젝트의 관리자는 소스 코드를 모든 사람에게 공개하면서도, 중도에 규칙을 변경하지 않아야 할 책임이 있습니다. AWS와 고객, 그리고 일반 사용자가 의존하는 중요한 오픈 소스 프로젝트가 접근을 제한한다던지, 라이센스 조건을 변경하거나 오픈 소스와 상용 소프트웨어의 코드간 혼용을 시작할 때, 우리는 오픈 소스 프로젝트 및 커뮤니티를 유지하기 위한 투자를 진행합니다. 예를 들어, 최근 오라클은 고객이 신뢰하는 자바 버전 지원, 라이센스 조건 변경에 대한 고객의 우려가 커지고 있었으며, 실제로 고객은 우려할만한 이유가 있었습니다. 이에 아마존에서 다중 플랫폼을 지원하는 무료 OpenJDK 배포판인 Amazon Corretto를 제공함하였습니다. Amazon이 적어도 2023 년 6 월까지 무료로 Corretto 8에 보안 업데이트를 배포하고 2024 년 8 월까지 Corretto 11에 배포함으로서 고객에게 장기적 일관성과 확신을 제공하기 위해 투자했습니다. Corretto는 무료로 지원되는 배포판입니다. 이제 자바 커뮤니티는 우리가 OpenJDK를 지속적으로 지원하고 직접 기여하는 동안 도움을 받을 수 있습니다.
안타깝게도 최근 오픈 소스 프로젝트 관리자가 오픈 소스 커뮤니티와 오픈 소스로 수익을 창출하기 위해 만든 독점 코드 사이의 경계를 혼란스럽게하고있는 사례를 보고 있습니다. 오픈 소스 프로젝트의 관리자는 기본적으로 오픈 소스 코드 배포가 공개되고, 상용 소스 코드가 없음을 보장하여, 사용자가 자신의 프로젝트를 자유롭게 구축 할 수 있도록하는 할 책임이 있으며, 배포를 통해 어떤 회사도 유리하지 않다고 생각합니다. 이것은 오픈 소스 관리자가 자신의 프로젝트를 채택할 개발자의 신뢰를 얻기 위한 약속의 일부입니다. 오픈 소스 소프트웨어가 누구나 사용하고 기여할 수 있도록 열려 있으려면, 관리자(및 다른 사용자)도 상용 소프트웨어를 구축하여 수익을 창출 할 수 있어야합니다.
많은 성공적인 오픈 소스 프로젝트를 자세히 살펴보면, 자유로운 접근에 대한 지원으로 모두 이익을 얻었습니다. 실제로, 성공한 프로젝트들 조차 기존의 오픈 소스 소프트웨어를 기반으로 신속하게 조립하고 혁신 할 수있는 기능이 없으면, 성공하는 오픈 소스 프로젝트도 존재하지 않을 것입니다. 예를 들어, Elasticsearch에 대한 중요한 원동력은 Apache Lucene 프로젝트인데, 이는 Elasticsearch보다 11 년 앞선 Apache Software Foundation 프로젝트였습니다. Elasticsearch는 JSON 구문 분석을 위한 Jackson 프로젝트, 웹 컨테이너인 Netty 등과 같은 다양한 추가 오픈 소스 프로젝트를 활용합니다. 오픈 소스 소프트웨어는 개인과 기업이 혁신을 앞당기기 위해 다양한 사용자가 이에 소비자가 의존하고 있습니다. 만약 오픈 소스 관리자가 장기적인 활용 가능성에 대한 혼란을 야기 할 때, 영향은 지대하다 할 수 있습니다.
Elasticsearch는 그동안 로그 데이터 분석을 민주화하는 데 핵심적인 역할을 수행했습니다. 전세계 개발자, 보안 분석가 및 데브옵스 엔지니어의 일상적인 생산성 향상에 점점 더 중요한 역할을 하고 있습니다. 이는 Apache 2.0 라이센스로 빠르게 채택 될 수 있었으며, 소프트웨어 활용 역시 제한없이 가능했습니다. 유감스럽게도 2018 년 6 월부터 오픈 소스 코드 기반에 상용 코드가 혼재되어 있음을 알게 되었습니다. 아파치 2.0 라이센스 기반으로 다운로드가 여전히 가능하지만, 오픈 소스에 관심이 있는 고객들은 무엇을 의존 할 수 있는지에 관해서는 명확하지 않습니다. 예를 들어, 출시 문서나 기술 문서를 통해 어떤게 오픈 소스인지 아닌지 그 소유권은 무엇인지 명확하게 알 수 없습니다. 이 때문에, 엔터프라이즈 개발자는 실수로 상용 소스 코드에 대한 수정이나 개선을 적용 할 수 있습니다. 이는 추적 및 관리가 어려우며 라이센스 위반을 초래할 수 있으며, 이 때문에 (무료이던 상용이던) 사용 권리가 즉각 해지 될 수 있습니다. 개별 코드 커밋에는 오픈 소스 코드와 상용 코드가 모두 포함되어 있기 때문에, 오픈 소스를 통해서만 작업하고 참여하려는 개발자에게는 매우 어렵습니다. 또한 혁신의 초점이 오픈 소스 배포로 부터 상용 배포 위주로 바뀌고 있습니다. 즉, 대다수의 새로운 Elasticsearch 사용자는 현재 상용 소프트웨어를 실행하고 있다는 뜻입니다. 우리는 Elasticsearch의 관리자 인 Elastic과 함께 우려 사항을 논의하고, Elasticsearch에 대한 커뮤니티 주도, 비 상용 코드 혼합 버전 지원을 위해 상당한 자원을 공헌하겠다고 제안했습니다. 하지만, Elastic은 현재 상태로 계속 이어갈 것이라는 것을 분명히했습니다.
한편, 우리는 AWS 고객과 파트너로부터 이러한 변화에 대한 피드백을 얻었습니다. 오픈 소스 프로젝트의 수명 단축에 대한 불확실성이 커지고 있기 때문에, AWS 고객은 언제 어디에서나 소프트웨어를 자유롭게 실행하고 자발적으로 지원할 수 있기를 원합니다. 따라서, 우리는 Expedia Group 및 Netflix와 같은 파트너와 협력하여 “Open Distro for Elasticsearch”라는 새로운 오픈 소스 배포판을 만들 것을 결정했습니다.
Expedia 그룹의 클라우드 아키텍처 담당 부사장 인 Subbu Allamaraju는 “Expedia에서 오픈 소스 소프트웨어와 이를 통한 자유는 매우 중요합니다. 우리는 Elasticsearch 사용자를 위한 Open Distro for Elasticsearch 프로젝트 소식에 매우 흥분되며, 우리와 같은 Elasticsearch 오픈 소스 사용자가 사용할 수 있는 기능을 계속 추가할 것으로 생각됩니다. 이러한 노력이 오픈 소스 기술에 대한 우리의 지속적인 투자를 안심시키는 데 도움이됩니다. “라고 밝혔습니다.
Netflix의 플랫폼 엔지니어링 VP 인 Christian Kaiser는 “Netflix는 오픈 소스에 전념하고 있으며, 오픈 소스에 대한 주요 사용자이자 공헌자입니다. Open Distro for Elasticsearch는 우리가 Elasticsearch 배포에 자유롭게 기여할 수있게 해줄 것이며, 오픈 소스 및 커뮤니티 중심으로 유지 될 것이라고 확신 할 수 있습니다.”
Java와 OpenJDK의 경우와 마찬가지로, 우리는 Elasticsearch를 분기(Fork)하는 것이 아닙니다. 우리의 목적은 오픈 소스 소프트웨어의 추가 기능을 향상함으로서, Apache 2.0 라이센스 Elasticsearch 업스트림 프로젝트에 기여하는 것입니다. 첫 번째 출시 기능에는 전송 중 암호화, 사용자 인증, 세부 감사, 세분화 된 역할 기반 액세스 제어, 이벤트 모니터링 및 경고, 심도있는 성능 분석 및 SQL 지원을 비롯하여 개방된 많은 새로운 기능을 포함하고 있습니다.
Open Distro for Elasticsearch의 새로운 고급 기능은 모두 Apache 2.0 라이센스입니다. 첫 번째 출시 버전에서 우리의 목표는 보안, 이벤트 모니터링 및 경고, SQL 지원과 같은 오픈 소스 Elasticsearch에서 누락된 많은 중요한 기능을 해결하는 것입니다. 우리는 이들 기능들이 (엔터프라이즈) 개발자들에게 흥미롭고 가치 있다고 생각하며, 다운로드해서 활용하는 것 뿐만 아니라 공동 작업 및 궁극적으로 커뮤니티에 기여하도록 권장 할 것입니다. 이러한 기능 중 다수는 이미 Amazon Elasticsearch Service에 포함하기 위해 작업해온 기능입니다. Elasticsearch용 개방형 배포판을 통해 사용자는 온 프레미스 데이터센터, 자신의 PC 또는 클라우드에서도 제한 없이 원하는 기능을 만들어 배포할 수 있습니다.
Open Distro for Elasticsearch의 최종 목표는 개발자에게 Apache 2.0 라이선스 기반의 Elasticsearch 업스트림 프로젝트를 기반으로 오픈 소스 부가 가치 기능에 기여할 수있는 자유를 제공하는 것입니다. 우리는 오픈 소스 기반 Elasticsearch에 패치를 제공하여 모두에게 혜택을 제공합니다. Open Distro for Elasticsearch는 업계 전반의 개발자와 기여자가 이러한 중요한 기술에 투자 할 것을 환영합니다. 앞으로 항상 오픈 소스로 유지되고 라이선스가 허락됩니다. 오픈 소스는 여러 사용자와 회사가 이를 업무에 투입 할 수 있으면서도, 모든 사람이 개선에 기여할 수 있다는 것입니다. Open Distro for Elasticsearch 개방형 배포판은 오픈 소스에 대한 필요한 투자를하는 AWS의 관점과 일치하며, 모든 사람들이 우리의 기여로 도움이 될 수 있기를 바랍니다.
Open Distro for Elasticsearch를 지금 다운로드하여 사용해 볼 수 있고, 직접 기여할 수 있습니다. 초기 출시 버전에서 사용할 수 있는 보안 기능에는 전송 중 암호화, Active Directory, LDAP 및 OpenID 인증 기능, 역할 기반 및 세부 액세스 제어 및 감사 로깅이 있습니다. 다른 핵심 기능으로는 데이터 변경, REST 및 JDBC 지원을 포함한 SQL 지원 및 고급 성능 분석기를 알려주는 Elasticsearch 쿼리 언어의 완전한 유연성을 열어주는 통합 이벤트 모니터링 및 경고 기능이 있습니다.
Open Distro for Elasticsearch에 대한 자세한 내용을 다운로드하려면 https://opendistro.github.io/for-elasticsearch/방문 하십시오 . 좀더 자세한 내용은 Jeff Barr의 New – Open Distro for Elasticsearch를 참조하십시오 .
– Adrian Cockcroft, AWS 클라우드 전략 담당 부사장
이 글은 AWS Open Source Blog 의 Keeping Open Source Open – Open Distro for Elasticsearch 한국어 번역입니다.
photo credit: taken by Adrian Cockcroft at Petra, March 10, 2019