楽しい時間はあっという間に過ぎるものです。NGINXが誕生から18年を迎えたとは、にわかには信じられません。振り返れば、コミュニティと会社が力を合わせ、多くのことを成し遂げてきました。そして最近、大きな節目に到達しました。本稿執筆時点で、全ウェブサイトの55.6%がNGINXを利用しています(NGINXが提供するソフトウェア、またはNGINXを基盤に構築された製品を利用)。また、ウェブサーバー市場では、シェア第1位を獲得しています。これは大きな誇りであり、NGINXコミュニティの皆さまから寄せられた圧倒的な信頼に、心より感謝しています。
また、オープンソースソフトウェアが世界を変え続けていることを、ますます強く実感しています。オープンソースコードを使用して構築されるアプリケーションの割合は、増加の一途をたどっています。Bloombergの端末やニュース、Washington Post、Slack、Airbnb、Instagram、Spotifyなど、世界的に広く知られる何千ものブランドやサービスが、Webサイトの稼働にNGINX Open Sourceを利用しています。私自身も、仕事の会議ではZoom、夜にはNetflixを利用しており、おそらく1日の80%をNGINX上に構築されたアプリケーションを使って過ごしています。

NGINXは、オープンソースの成功を支える一要素にすぎません。Kubernetesやコンテナ、PythonやPyTorch、WordPress、Postgres、Node.jsなど、数々の優れたオープンソースプロジェクトがなければ、デジタル世界を構築することも、さらには物理世界を制御・管理することもできません。オープンソースは、私たちの働き方を変えました。GitHubには7,300万人を超える開発者がおり、これまでに合計1億7,000万件を超えるプルリクエスト(PR)をマージしています。そのうち非常に多くのPRが、オープンソースライセンスのコードリポジトリを対象としています。
NGINXがオープンソースの発展と成功において極めて重要な役割を果たしてきたことを、心からうれしく思います。今後もその歩みを支え、受けた恩恵を次世代へ還元していく考えです。同時に、これまでのオープンソースへの取り組みを振り返り、進化を続けるこのムーブメントに適応する必要があります。オープンソースから利益を得る企業のビジネスモデルは、時に議論を呼んできました。そのため、NGINXはオープンソースと商用の範囲を常に明確に示すよう努めてきました。何よりも、ソフトウェアのオープンソース版に含めた機能や能力を、後から有料化することは決してありませんでした。
オープンソースは急速に進化しています。NGINXも進化を続けています。
私たちは今、オープンソースへの取り組みについて真剣に考え、オープンソース製品の価値と機能をさらに高めるとともに、商用分野でも一段と力を入れる必要があると認識しています。世界は変化しており、これまでと同じものに料金を課し続けるわけにはいきません。商用製品だけに搭載してきた機能の一部は、今やオープンソース開発者にとって当然求められるものになっています。また、オープンソースのセキュリティが開発者にとって最優先事項であることも理解しています。そのため、私たちのオープンソースプロジェクトには、商用製品と同等のセキュリティが必要です。
また、現実を認める必要もあります。社内では、機能やスケーラビリティが不足しているため、オープンソースは実際には本番環境に対応できないと言いがちでした。しかし、以前から現実はそうではないことを示しています。何千もの組織が、NGINXオープンソースソフトウェアを本番環境で運用しています。これは、NGINXのオープンソース版に対する高い信頼の表れであり、喜ばしいことです。私たちは、この信頼を土台にさらに前進できます。
実際、私たちはコア製品でそれを継続的に実践しています。従来のNGINX製品ファミリーは時代遅れになったと言う方は、私たちの取り組みを十分にご覧になっていないのではないでしょうか。
- 中核となるNGINX Open Sourceソフトウェアでは、新しい機能の追加と、対応するオペレーティングシステムプラットフォームの拡充を継続しています。Webアプリケーションとトラフィックのセキュリティおよびスケーラビリティに不可欠な2つの機能であるHTTP3とQUICは、次回リリースするバージョンで提供予定です。
- NGINXの世界で目立たないながらも驚くほど革新的な領域が、NGINX JavaScript(njs)です。開発者はJavaScriptコードをNGINX HTTPモジュールおよびTCP/UDP(Stream)モジュールのイベント処理モデルに統合し、NGINXの設定構文を拡張して高度な機能を実装できます。ユーザーは、革新的なキャッシュパージやヘッダー操作から、MQTTv5のようなより高度なプロトコルのサポートまで、実に優れた成果を上げています。
- ユニバーサルWebアプリケーションサーバーであるNGINX Unitは、NGINX Open Sourceの原作者であるIgor Sysoevが考案し、現在も進化を続けています。Unitは、データプレーンとセキュリティという主な重点領域を大きく超えた、モダンアプリケーションとモダンアプリケーションスタックに関するF5のビジョンにおいて、重要な位置を占めています。Unitの開発を進める中で、進化するWebに向けてアプリケーションをどのように設計すべきかを見直し、クラウドネイティブで、分散型かつ変化の激しいアプリケーション向けに設計された機能の拡充に取り組んでいます。
モダンアプリのリファレンスアーキテクチャ
主要なユーザー層である開発者が、モダンアプリケーションをより効率的かつ容易にデプロイできるよう、今後もさまざまな方法を試し、取り組みを進めていきます。昨年のSprint 2.0で発表した「NGINX Modern Apps Reference Architecture」(MARA)は、このたびバージョン1.0.0として一般提供を開始しました。MARAは、Kubernetesを含む厳選されたツールを、明確な設計方針に基づいて組み合わせたスタックです。インフラストラクチャとアプリケーションアーキテクチャをコードとして容易にデプロイできるよう構成されています。数回クリックするだけで、本番環境に対応したクラウドネイティブ環境の構築に必要なセキュリティ、ロギング、ネットワーク、アプリケーションサーバー、構成およびYAML管理などを統合したMARAリファレンスアーキテクチャを構成し、デプロイできます。

MARAは、意図的にモジュール式に設計されたアーキテクチャです。既存のモジュールを自由に選び、実際にアプリケーションを実行できるカスタマイズされたリファレンスアーキテクチャを設計できます。コミュニティからもこの構想への支持を得ており、MARAでは複数の革新的なテクノロジー企業と提携しています。Sumo Logicはログ管理に関する専門知識をMARAに加え、Pulumiは自動化とワークフローオーケストレーションのためのモジュールを提供しています。MARAによって、あらゆる開発者が必要な関連コンポーネントをすべて備えたセキュアなKubernetes環境を数分で立ち上げ、アプリケーションをデプロイできる状態にすることを目指しています。これは、業界の大きな取り組みを前進させるために、私たち全員の力を結集できる方法の一例にすぎません。
NGINXの未来:モダナイズ、最適化、拡張
毎年、バーチャルユーザーカンファレンス「NGINX Sprint」で、私たちは翌年に向けた新たなコミットメントを発表しています。今年も例外ではありません。今後12か月に向けた私たちの約束は、次の3つの言葉に集約されます。「モダナイズ」、「最適化」、「拡張」です。これらを単なるビジネス上の流行語で終わらせるつもりはありません。それぞれについて具体的なプログラムを用意しており、私たちが約束を果たすか、ぜひ見届けてください。
約束1:アプローチ、プレゼンス、コミュニティ管理のモダナイズ
もちろん、私たちはコードのモダナイゼーションを急速に進め、新しい製品やプロジェクトを導入しています。しかし、モダナイゼーションの対象はコードだけではありません。コード管理、意思決定の透明性、コミュニティとの関わり方も含まれます。これまでNGINX Open SourceのコードベースにはMercurialバージョン管理システムを使用してきましたが、現在のオープンソースの世界ではGitHubが活動の中心となっています。今後、すべてのNGINXプロジェクトはGitHubで立ち上げ、ホストします。開発者とオープンソースのコミュニティが活動する場だからです。
また、NGINXプロジェクトのガバナンスと管理のあり方も刷新していきます。コントリビューションをより積極的に受け入れ、運営の透明性を高め、コミュニティにとってより身近な存在となることをお約束します。最新のオープンソース活動に求められる慣行をすべて取り入れ、GitHubでの活動基盤を再構築するとともに、すべてのプロジェクトに行動規範を追加し、コミュニティからのフィードバックに真摯に耳を傾けます。この刷新への取り組みの一環として、SlackにNGINX Communityチャンネルを開設します。このチャンネルにはNGINXのエキスパートが参加し、皆さまからの質問にお答えします。また、コミュニティの皆さま同士でも、日頃の業務ですでにお使いのメッセージングツール上で助け合うことができます。
約束 #2:開発者体験の最適化
開発者は、私たちの主要なユーザーです。開発者が構築し、生み出してきたアプリケーションによって、今日の私たちがあります。NGINXは使いやすいというのが、私たちが一貫して掲げてきた信条です。そして、それはおおむね事実です。NGINXのインストール、起動、設定に何日もかかることはありません。とはいえ、さらに改善できます。学習に要する時間を短縮し、設定プロセスを簡素化することで、開発者が私たちの製品から「価値を得るまでの時間」を短縮できます。ここでいう「価値」とは、本当に価値のある処理を行うコードを本番環境にデプロイすることにほかなりません。インストールを効率化し、ドキュメントを改善するとともに、コミュニティフォーラムの対象範囲と内容を充実させることで、開発者エクスペリエンスを刷新していきます。
また、NGINX Open Sourceとネイティブに統合し、わずか数秒でその有用性と価値を引き出せる新しいSaaSサービスもリリースします。登録も、利用制限も、ペイウォールもありません。このSaaSは、今後もずっと無料でご利用いただけます。
さらに、現在では開発者にとって当然とされる多くの重要な機能が、NGINX Open SourceとNGINX Plusでは有料でしか利用できないことも認識しています。たとえば、DNSサービスディスカバリは最新のアプリに不可欠です。F5は、こうした重要な機能をNGINX Open Sourceに追加し、無料で利用できるようにすることをお約束します。移行する機能はまだすべて決まっていないため、皆さまのご意見をお聞かせください。開発者の皆さまにとってより良い体験を実現する方法を、ぜひお聞かせください。皆さまの声に耳を傾けています。
約束3:NGINXの力と機能を拡張
現在広く利用されているNGINXが、10年後も変わらず重要な存在であり続けるには、継続的な改善が必要です。私たちは、モダンアプリケーションを大規模に管理・運用するためのNGINXアプリケーションと、それを支える機能をフルスタックで提供するという意欲的な目標を掲げています。
これまで、NGINXは主にレイヤー7のデータプレーンとして使用されてきました。しかし、NGINXを機能させるには、開発者がその周辺に多くの仕組みを構築する必要があります。自動化機能やCI/CD機能の連携、適切なロギングの設定、認証や証明書管理の追加などが必要です。F5は、アプリケーションのテストとデプロイに関する主要な要件を、NGINXとシームレスに統合できる1つ以上の高品質なオープンソースコンポーネントで満たせるよう、NGINXを大幅に拡張したいと考えています。つまり、スタックのあらゆるレイヤーで価値を提供し、それを無償で利用できるようにすることが目標です。たとえば、NGINX Open SourceまたはNGINX PlusをAPIゲートウェイとして使用している場合、そのユースケースの管理とスケーリングに必要なAPIインポート、サービスディスカバリ、ファイアウォール、ポリシールール、セキュリティを、すべて高品質なオープンソースの選択肢として利用できるようにしたいと考えています。
要約すると、私たちが目指しているのは、アプリケーションの管理とデプロイのあらゆる側面を網羅する、NGINXを中心としたエコシステムの構築です。MARAは、そのエコシステム構築に向けた第一歩であり、今後もパートナーを増やしていきたいと考えています。私の目標は、2022年末までに、分散トレーシング、ロギング、自動スケーリング、セキュリティ、CI/CDフックなど、すぐに機能する一連の機能をすべて備えた構成済みのアプリケーションを、NGINX環境で数分以内に起動して実行できるようにすることです。
Kubernetes API Gateway、新しくなったAmplify、NGINX Agentのご紹介
私たちは、これらすべてに全力で取り組んでいます。ここでは、私が掲げた3つの約束を実現するための第一歩として、3つの成果をご紹介します。
- 今年初め、Kubernetes API Gateway SIGのリファレンスアーキテクチャをベースとするNGINX Kubernetes Gateway<.htmla>をリリースしました。これにより、製品ファミリーを刷新し、進化を続けるクラウドネイティブに歩調を合わせています。また、NGINX Kubernetes Gatewayは、コミュニティとの関係改善に向けた取り組みでもあります。F5は、Kubernetes向けに商用版とオープンソース版のIngressコントローラーを開発し、いずれもコミュニティのIngressソリューション(同じくNGINXをベースに構築)とは異なるものにしたことで、状況を複雑にしてしまったと認識しています。選択肢が増えたことでコミュニティに混乱を招き、F5にとっても望ましくない状況となりました。Kubernetesアーキテクチャでは、Gateway APIがIngressコントローラーに取って代わることはほぼ明らかです。そこでアプローチを変更し、オープンソース製品としてのみ提供するNGINX Kubernetes Gatewayを、進化する標準と歩調を合わせながら、Kubernetesネットワーキングに関する取り組みの中核に据えます。ほかのNGINX製品との統合や機能拡張を進めるとともに、Kubernetesにおける開発者エクスペリエンスを最適化します。
- 数年前、F5はNGINX Amplifyをリリースしました。これは、NGINX環境向けの監視およびテレメトリSaaSです。大々的には宣伝しませんでしたが、数千人もの開発者がAmplifyを見つけ、現在も利用しています。Amplifyは当初から無料で、現在も変わりません。モダナイゼーションへの取り組みの一環として、Amplifyに多数の新機能を追加しています。NGINX製品の大規模な導入、監視、管理をリアルタイムで支援する、信頼できるコパイロットを目指しています。AmplifyはNGINXインスタンスを監視するだけでなく、NGINX環境の構成、スクリプトの適用、トラブルシューティングも支援します。
- NGINX Open Sourceインスタンスと併せてデプロイできる軽量アプリ、NGINX Agentをリリースします。動的構成APIなど、これまで商用製品でのみ提供していた機能も搭載する予定です。NGINX Agentにより、NGINX Open Sourceをさらに多くのユースケースで、より柔軟に利用できるようになります。また、アプリケーションやインフラストラクチャの拡張に活用できる、よりきめ細かな制御機能も搭載する予定です。Agentは、NGINXの管理、デプロイ、構成について、より的確な判断を下せるよう支援します。現在、NGINX Agentの開発を鋭意進めています。提供開始については、今後数か月以内に公開予定のブログでお知らせします。
今後の展望
1年後、これらの約束について、ぜひ私に進捗をお尋ねください。3つすべてについて具体的な進展をご報告できなければ、どうか厳しく問いただしてください。そして、私たちは皆さまの声に耳を傾け、いつでも対話する用意があることをご理解ください。皆さまの声こそが、私たちにとって最良の製品ロードマップです。ぜひ年次アンケートにご回答ください。NGINX Community Slackに参加して、ご意見をお聞かせください。また、GitHubリポジトリの各プロジェクトにコメントを投稿し、PRを作成してください。
今年は、これまでで最高の素晴らしい1年になるでしょう。皆さまからさらに多くの声をお寄せいただけることを楽しみにしています。私たちからも、より多くの情報をお届けしてまいります。皆さまをよりよく支援するために、ぜひお力をお貸しください。今年は、これまでで最高の素晴らしい1年になるでしょう。皆さまからさらに多くの声をお寄せいただけることを楽しみにしています。私たちからも、より多くの情報をお届けしてまいります。
著者について

関連するブログ記事
チュートリアル:NGINXを使用してアプリケーション向けにOpenTelemetryを構成する
OpenTelemetryを使用してNGINXサーバーの状態と健全性をより明確に把握することで、問題のトラブルシューティングを行い、Webアプリケーションのパフォーマンスを向上できます。
AkitaのNGINX Plus認定モジュールでAPIエンドポイントの問題を特定・修正
Akita SoftwareのAPIオブザーバビリティ向け新しいNGINX Plus Certified Moduleを活用して、APIエンドポイントの問題をより迅速に特定し、修正できます。
JavaプロジェクトをスキャフォールディングしてKubernetesネイティブアプリを構築する方法
Red HatのシニアプリンシパルデベロッパーアドボケイトであるDaniel Oh氏が、Javaプロジェクトをゼロから構築するためのひな形を作成し、Kubernetesネイティブアプリケーションとしてビルドする方法を解説します。
F5 NGINXaaS for Azureのご紹介:Microsoft Azureでネイティブに利用できるSaaS型ロードバランシング
NGINXaaS for Azureは、NGINX PlusをAzureネイティブのSaaSとして利用できるサービスです。NGINXの設定を容易にリフト&シフトできるため、クラウド導入とモダンアプリの展開を加速できます。

SELinuxでNGINXおよびNGINX Plusを使用する
Red Hat Enterprise Linux(RHEL)および関連ディストリビューションでSecurity-Enhanced Linux(SELinux)を有効にすると、デフォルト設定によりNGINXとNGINX Plusの一部の操作が制限されます。この記事では、すべての機能を利用できるようにSELinuxの設定を変更する方法について説明します。
NGINX PlusによるAWS Auto Scalingグループの負荷分散
新しいnginx-asg-sync統合ソフトウェアにより、NGINX PlusはAWS Auto Scalingグループの負荷を直接分散できるため、クラウドでの負荷分散がさらに柔軟になります