見出し画像

ソフトウェアと愛 - あるいはOSSとAWSの確執

AWSが長い間、最高のオープンソースプロジェクトを取り込み、常にそれらのコミュニティに還元することなく再利用し、再ブランド化することで非難されてきたことも周知の事実だ。

AWS gives open source the middle finger

OSSというのは、不思議なソフトウェアだ。世界中で何百万人もの人が一円にもならないのに開発に協力し、コミッタと呼ばれるエンジニアキャリアをOSSに賭ける人々が現れ、多くのユーザがユーザ会を組織し、時には大規模なイベントを開く。MicrosoftGoogleといった大企業もOSS支援を表明している。GoogleにいたってはandroidとKubernetesという重要なOSSを世に送り出した企業でもあり、その貢献は計り知れない。

そんな中、OSSに対して敵対的、とまでは言わないにしても非常に冷淡な態度を取る企業がある。それがAWSである。本稿では、OSSとAWSとの間にある緊張関係を取り上げる。

なお最初に、筆者の立場について一言申し添えておく。筆者はこれまでクラウドベンダーに所属したことはないし、OSSの活動に携わったこともない。SIerで働いているのでOSSと無関係ではないが(データベースを専門にしていたのでPostgreSQLとMySQLとは縁が深い)、基本的には傍観者、第三者である。なるべくポジショントークにならないよう公平を期して慎重に書いたつもりだが、それでも入り込んでくるのがバイアスというやつである。筆者の試みが成功しているかどうかは読者の判断に委ねたい。


誰がためにOSSはある

今月、AWSがインメモリデータベースRedisをフォークした「Valkey」を採用すると発表した。これはRedis7.0以前と互換性を持つサービスだ。Redisは先月デュアルライセンスに変更され、同社の許可なくマネージドサービスを提供することができなくなった。AWSを名指しこそしなかったが、Redisの売り上げの大半が「最大手のクラウドベンダ」を通じてのものであることを問題視しての行動だった。

AWSのフリーライドを問題視してデュアルライセンスにすることで防衛をはかろうとした企業は、Redisにとどまらない。MongoDBやKafkaElasticsearchとKibanaもやはり商用サービスでの利用を制限するライセンスを導入している。ElasticのCEO Shay Banon氏が投稿したブログのポストでは、AWSを名指しで批判して危機感をあらわにしている。

So why the change? AWS and Amazon Elasticsearch Service. They have been doing things that we think are just NOT OK since 2015 and it has only gotten worse. If we don’t stand up to them now, as a successful company and leader in the market, who will?

なぜ変更するか、その理由はAWSとAmazon Elasticsearch Serviceです。彼らは2015年以来、私たちがどう考えても“NOT OK”、つまり“OKではない”、“ルール違反だ”と感じる行為を行っており、かつ悪質化の一途を辿っています。企業として成功し、この市場の牽引役を担う私たちが今立ち上がらなければ、この行為を誰が止めるのでしょうか。

Amazon: NOT OK - why we had to change Elastic licensing

しかし、その結果AWS側が類似のサービスを立ち上げるというカウンターを食らう、という構図の対立がここ数年繰り返されている。

企業はOSSを支援すべきなのか

現在、OSSを全く利用しないシステム開発というのはおそらくないだろう。ミッションクリティカルなシステムでLinuxが使われることは普通にあるし、元手のないウェブサービス企業でOSSのお世話になっている企業は多いだろう。そしてOSSのユーザ企業は、代わりにOSSの支援活動を行う。国を代表するほどの大企業ともなれば、OSSやそのコミュニティを支援するのは当然の義務のようになっている。たとえば、富士通NECはOSSの機能を拡張してエンタープライズ向けの製品を販売する一方で、OSSの開発やコミュニティの支援といった活動も行っている。NTTにもOSSセンタというコミュニティと連携して開発を行う組織がある。こうしたOSSの普及支援を行う社内の組織をOSPOと呼び、最近設置する企業が増えてきている。

OSPOの位置づけ

しかし、AWSは歴史的にOSSに対しては非常に冷淡であることで知られてきた。会社をあげてOSSやそのコミュニティを支援するような活動はしてこなかった。筆者は、AWSの側に特別OSSを叩いてやろうという意図があったかは疑わしいと思っている。おそらくAWSとしては、OSSに対しては端的にビジネスライクに商品としてしか見ていなかったのではないか。AWSはマーケットプレイス(市場)でOSS販売の場を提供し、そのうちの何割かの取り分を得る。それ以上でもそれ以下でもない、ただの仲介業者。何の問題があるだろう? 他の商品はみんなそうやってる。なぜソフトウェアだけ特別扱いしなければならないのか、と。この冷めた態度は、AWSがもともとAmazonという小売業の企業からのスピンオフとして誕生したことと関係しているかもしれない。小売業の企業がプライベートブランドの商品を売り出して本家と競合になるのもよく似ている。

時代の要請に応えて?

このように歴史的にAWSとOSSコミュニティとの間には緊迫した対立関係が続いてきたのだが、近年AWSはどういう風の吹き回しかOSS支援活動にリソースを割くようになってきている。

少し長くなるが、あまり知られていない取り組みだと思うので、以下にAWSのOSS支援のマニュフェストの翻訳をお届けしたい。

AWS:なぜ私たちは持続可能なオープンソースを支援するのか

AWSで働いていると、私たちのサービスが構築されているオープンソースプロジェクトやコミュニティをどのようにサポートしているのか、ビルダーからよく尋ねられる。彼らのビジネス・アプリケーションの長期的な実行可能性もオープンソース・プロジェクトに依存しているからだ。

同様に、多くのITリーダーは、クラウド・プロバイダーのオープンソース・リーダーシップに基づいて購入を決定している。要するに、オープン・ソースは、クラウドで運用するすべての人にとって重要なのだ。私たちは皆、共に構築し、アプリケーションを実行するプロジェクトが長期にわたって健全で持続可能であることを知る必要がある。

AWSは多くのプロジェクトに大きく貢献している。有名な例としては、Apache Airflow、Apache Cassandra、Apache Flink、Apache Hudi、Apache Kafka、Apache Lucene、Containerd、Java、Kubernetes、OpenTelemetry、PostgreSQL、Project Jupyter、Redis、Rustなどがある。

オープンソースコミュニティに投資し、関与する理由を理解することも同様に重要だ。その「なぜ」こそが、私たちの貢献へのコミットメントの原動力であり、私たちが貢献するコミュニティやプロジェクトに対する戦略とアプローチを説明するものだからだ。

私たちがこれほど投資する主な理由は3つある:オープンソースは、私たち、お客様、そして世界にとって重要だからだ。これらはAWSにおけるオープンソースの3つの柱であり、より深く説明していきたい。しかし、何よりもまず、これらすべてを統合する1つの重要な原則から始まる:持続可能なオープンソースである。

持続可能なOSSへ向けて

持続可能性こそが大原則

私たちは長期にわたってオープンソース・コミュニティをサポートし、貢献してきた。そして、今後もオープンソースへの投資を継続し、さらに増やしていくつもりである。

持続可能なオープンソースプロジェクトには、健全なコードと健全なコミュニティを維持するために必要なリソースがある。コードのパフォーマンスと安全性を維持するために、バグ修正が定期的かつ迅速に行われなければならない。健全なコミュニティには、積極的に改善を行い、オープンに意思決定や変更の伝達を行う多様な貢献者が集まる。

最も重要なのは、作業が複数の修正者に分散しているため、単一障害点が存在しないことだ。コミュニティが活気づき、革新的であり続けるために、新しい貢献者が求められ、彼らはプロジェクトにおける専門知識と地位を築いていく。

健全で持続可能なコミュニティには、資金、時間、労力の面で継続的な投資が必要だ。私たちのオープンソースへの投資には、アップストリームプロジェクトに従事する専任の開発者やメンテナーの雇用、機能やバグ修正の貢献、クラウド上で実行するためのオープンソースプロジェクトのパフォーマンスの微調整などが含まれる。また、オープンソース財団への資金やクラウドクレジットの提供、イベントやその他のコミュニティ・イニシアティブのスポンサーも行っている。

例えば、昨年5月にはオープンソースセキュリティ財団(OpenSSF)に対して3年間で1000万ドルの資金提供を発表した。また11月には、クラウド・ネイティブ・コンピューティング財団(CNCF)に300万ドルのクラウド・クレジットと専用のエンジニアリング・リソースを提供し、Kubernetesプロジェクトを実行するインフラに資金を提供することを約束した。

12月には、オープンソースでイノベーションを起こす企業の特許侵害のリスクを軽減するため、当社の特許ポートフォリオ全体をOpen Invention Networkの特許体系にコミットした。

オープンソースに投資することで、私たちが構築するプロジェクト、私たちの顧客が構築し依存するプロジェクト、そして世界が依存するプロジェクトが、長期にわたって安全で信頼できる状態を維持できるよう支援している。これら3つの柱のそれぞれが、なぜAWSにとって重要なのか、もう少し詳しく説明しよう。

オープンソースはAWSにとって重要である

第一に、オープンソースは我々のビジネス、そして我々のツールやサービスに携わるビルダーにとって重要だ。AWSは、オープンソースなくして今日の姿はない。EC2(Linux、Xen、Apache Tomcatで構築)、Amazon Sagemaker(Apache Sparkを使用)、AWS Lambda(Java、Go、Node.jsを含むオープンソースの言語ランタイムで構築)などのサービスだけでなく、社内のツールもオープンソース上で構築し、革新している。

これは我々だけが特別なわけではない。Linux財団の "2022 Guide to Enterprise Open Source"レポートによると、業種を問わず、企業は垂直ソフトウェアスタックの20%から85%がオープンソースで構成されていると報告されている。

また我々は、Amazon Relational Database Service(MariaDB、MySQL、PostgreSQL)、Amazon Elastic Kubernetes Services(Amazon EKS)、Amazon OpenSearch Service、Amazon Managed Service for Kafka(MSK)などのマネージド・オープンソース・サービスも提供している。マネージド・オープンソース・サービスは、顧客がAWS上でオープンソースプロジェクトをセットアップし、運用することを容易にする。

AWSには、オープンソースから恩恵を受け、オープンソースに投資してきた長い歴史がある。我々はオープンソースがより良いソフトウェアをより早く生み出すと信じており、誇りを持って参加している。

我々は現在、例えばRustプログラミング言語、Jupyterノートブック、Apache Kafkaのために専門のアップストリーム・チームを雇用している。毎日、オープンソース・プロジェクトとそれを取り巻くエコシステムを目覚めさせ、改善することだけに集中しているエンジニアがいる。

さらにエキサイティングなのは、多くのチームがオープンソース専任の担当を設け始め、アップストリームへの貢献のために毎日を過ごせるようになっていることである。

アップストリームで密接に働き、バグ修正に貢献し、技術的な議論に参加することで、私たちのエンジニアは、私たちが構築しているプロジェクトに精通するようになる。その結果、私たちはより良いエンジニアとなり、より良いツールや製品を生み出し、最終的にはお客様のお役に立てるのである。

AWSの顧客もOSSを頼りにしている

第二に、オープンソースは顧客にとっても重要だ。オープンソースのデータベース、AI/MLプラットフォーム、その他多くのサービスなど、顧客がワークロードを実行するためにオープンソースを繰り返し選択しているのが現実だ。つまり、それらのワークロードが顧客のために驚くほどうまく動くようにするために、我々も投資しなければならないということである。

Bottlerocketはその好例である。Linuxカーネルの上に構築され、ストリップダウンされたコンテナ実行環境だ。Bottlerocketは、攻撃対象領域を最小化するのに役立つRustツールによるメモリ安全制御を備えている。私たちはまず社内向けにこれを構築したが、顧客にとっても非常に有用だったため、オープンソースとしてリリースした。その後、私たちの顧客は、私たちが想定していなかったような革新的な方法で使用している。

イノベーションはAWSから生まれる必要はない。時には、ベストなアイディアが顧客から生まれることもある。私たちは、その顧客だけでなく、その環境にいるすべての人が恩恵を受けられるよう、公開の場で実行する。

私たちは、まだ私たちの顧客ではない人々のためにも、オープンソース・プロジェクトに改善を提供する。私たちがアップストリームに貢献することで、AWSのお客様やオープンソースコミュニティにイノベーションをもたらすことができる。AWSは、お客様がオープンソースのワークロードをクラウドで実行するための最高の場所でありたいと思っている。

世界もOSSを頼りにしている

第3に、オープンソースは世界にとって重要である。我々は、技術革新を可能にするものだけでなく、技術とインターネットの継続的な発展の中核となるものを擁護する責任がある。オープンソースは、AWSの強みとリソースを活用し、私たちの事業環境全体を改善するための多大な機会を与えてくれる

サプライチェーンセキュリティは、AWSが資金とエンジニアリングリソースを投資している非常に重要な分野の1つである。AWSでは、セキュリティは最重要の仕事である。我々は、OpenSSFへのコミットメントや、AWSのセキュリティ内部でオープンソースソフトウェアのサプライチェーンのセキュリティ確保に注力している多くのチームを通じて、このレベルの重要性を示してきた。

私たちのエンジニアと研究者は、脆弱性の特定とパッチの適用をより迅速に行い、私たち自身のためだけでなく、私たちの顧客とインターネットの残りの部分のために、より多くの価値を促進するためのツールを構築する方法を見つけ出すことに専念している。

クラウド・コンピューティングとオープンソース・テクノロジーは、さまざまな意味で大きな進歩を遂げた。しかし、私たちはまだ多くの革新と貢献の機会を見出している。あなたにとって最も重要な場所で、この旅に参加してほしい。

私たちのオープンソース・チームは、皆様からのご連絡をお待ちしている。私たちのプロジェクトに参加したり、私たちの生活やビジネスを構築する技術の長期的な持続可能性を向上させるために、私たちと提携することをお勧する。

総括

さて、いかがだっただろうか。「嘘だあ」とか「言ってることとやってることが違うぞ」と思った方もいるかもしれないが、なかなか格調高いマニュフェストではないだろうか。言うだけでなく、確かに近年のAWSはOSS活動に資金と人を提供するようになってきているし、OSSを公開することも始めている。もしかすると、将来的にはOSPOのような社内組織も作られるかもしれない。そうすれば、競合であるMicrosoftやGoogleのようにOSSに対する有力な擁護者になっていくだろう。これからも「AWSとOSS」というのは目が離せないテーマである。

2024/04/16 追記:Xで教えていただいたが、AWS社内にOSPOはすでに存在するとのこと。

この記事が気に入ったらサポートをしてみませんか?