NGINXにとって、今年は「Ansibleの年」です。
F5は、アプリケーションデリバリに対するアプリ中心のアプローチを重視しています。このアプローチでは、ボトルネックとなっている箇所でアプリをインテリジェントにスケーリングできるため、アプリ全体のインフラストラクチャをスケーリングする必要がなくなります。このアプローチの実現に欠かせないのが、開発者が利用するCI/CDツールの広範なエコシステムです。最も広く利用されている自動化ツールの1つであるAnsibleを使用すると、NGINXユーザーはアプリのライフサイクル全体にわたる反復作業を迅速に自動化できます。そのためF5は、NGINX環境を容易に自動化できるよう、Ansibleのロールとコレクションの拡充に大規模な投資を行ってきました。過去5年間で、Ansibleとの統合は1件のブログ記事から、2つの認定コレクションと20以上のロールへと拡大しました。その大半は、直近9か月間に作成されたものです。
NGINXのプロビジョニングにAnsibleを使用する理由
Ansibleを使用してNGINXをプロビジョニングすることには、優れた理由がいくつかあります。
- すでにAnsibleをお使いか、そうでなくても、Ansibleを試してみようと真剣に検討されていることでしょう。そうでなければ、ここをご覧になってはいないはずです。
- 分散型でレジリエンスと冗長性を備えたマルチクラウド環境へのデプロイが、ますます一般的になっています。Ansibleには、複数のターゲットホストにNGINXソフトウェアを簡単にインストールして設定するために必要なツールが用意されています。
- Ansibleを信頼できる唯一の情報源として使用することで、すべてのNGINXデプロイメントを一元的に把握し、比類のない可視性を得られます。デプロイメントに関するすべての情報は、可読性に優れた構成言語の1つであるYAMLで記述されたAnsible Playbookに集約されます。
- F5のコレクションはRed Hatの認定を受けており、全面的なサポートが提供されます。問題が発生した場合は、受賞歴のあるRed Hatのサポートが正常な状態への復旧を支援します。
Ansibleの歩み
新しいNGINX Coreコレクションについてご紹介する前に、これまでのAnsibleへの取り組みを振り返ります。
2015年:
- インストール用のAnsibleプレイブックを作成する方法を説明したブログ記事を公開しました。対象はNGINXとNGINX Plusです。コミュニティメンバーから、このブログ記事はすぐに陳腐化するため、公式のAnsibleロールを開発・保守する必要があるとの(もっともな)指摘を受けました。
2017年:
- NGINXとNGINX Plusの基本インストールをそれぞれ実行する、初の2つのAnsibleロールをリリースしました。
2018年:
- 当初の2つのロールを1つの「nginx」ロールに統合し、NGINXとNGINX Plusの両方をインストールできるようにしました。
- Enhanced the nginxロールを強化し、NGINXの構成、NGINX Unitのインストール、NGINX Amplifyのインストールに対応しました。
2020年:
- 16個の新しいロールと、認定コレクションをNGINX Controller向けにリリースしました。
- 新しいセキュリティソリューションであるnginx_app_protectロールを導入し、インストールと設定を行えるようにしました。NGINX App Protect.
- Split the nginxロールを3つの個別ロールに分割し、2つ目の認定コレクションである「NGINX Core」をリリースしました。
進化を続けるnginxロール
The nginxロールは、Ansible Galaxyで最も人気のあるロールの1つです。2018年のリリース以来、ダウンロード数は700,000件を超えています。しかし、その人気にもかかわらず、機能が多く、インストールに時間がかかりすぎるというフィードバックが寄せられていました。あらゆる用途に対応できるSwiss Army knife™を好む方もいますが、メスのように用途を絞るアプローチには多くの利点があります(Ansible自体も、コレクションの導入によってこのアプローチを採用しています)。そこで、柔軟性と速度をさらに高めるため、nginxロールを3つの個別のロールに分割することにしました。
- nginx – NGINXおよびNGINX Plusをインストール
- nginx_config – NGINXおよびNGINX Plusを構成します
- nginx_unit – NGINX Unitをインストールします
NGINX Core Collectionのご紹介
Ansible製品の継続的な改善に取り組む中、Ansible 2.10でコレクションが導入されたことを受け、高速かつセキュアなWeb配信、リバースプロキシ、ロードバランシングを実現するソフトウェアという「コア」製品に重点を置いたNGINXコレクションを作成しました。そのため、NGINX Coreコレクションには3つのロールが含まれています。前のセクションで説明した、NGINXおよびNGINX Plusをインストールして構成するための2つのロール(nginxとnginx_config)に加え、NGINX Plus向けのフル機能WAFモジュールであるNGINX App Protectをインストールして構成するためのnginx_app_protectロールです。
NGINX Coreコレクションは、ロールと同じように簡単に使用できます。インストールするには、次のコマンドを実行します。
$ ansible-galaxy collection install nginxinc.nginx_coreその後、Ansibleプレイブックの冒頭に次の行を追加すると、コレクションのロールをプレイブックで使用できるようになります。
---
- collections:
- name: nginxinc.nginx_core
version: 0.1.3NGINX Coreコレクションには、シンプルなNGINXのインストールから、複数のWebサーバーの前段にNGINX App Protectで保護されたリバースプロキシを設定する方法まで、さまざまなユースケースに対応する一連のプレイブックも含まれています。また、各ロールの「molecule」ディレクトリに含まれるプレイブックでは、各ロールの最新の実用例を確認できます。
NGINX CoreコレクションとNGINX Controllerコレクションの選択
F5が提供する2つのNGINXコレクションのうち、どちらが最適か迷われるかもしれません。多くの場合と同様に、答えはユースケースによって異なります。
- NGINX Core – 次の条件に該当する場合は、このコレクションをお選びください:
- NGINX Open Sourceのユーザーである
- NGINX Plusを直接管理することに慣れている
- NGINX App Protectを設定したい
- NGINX Controllerを使用しない
- NGINX Controller – NGINX Controllerをご契約の場合は、このコレクションを選択してください。
NGINXのロールとコレクションを使い始める
Ansible Automation Platformをご契約の場合、認定済みのNGINXコレクションにAnsible Automation Hub(nginxinc名前空間)からアクセスできます。また、F5のロールとコレクションのアップストリーム版およびコミュニティ版は、Ansible Galaxyで入手できます。10月13~14日にオンラインで開催されるAnsibleFestにぜひご参加いただき、NGINX Coreコレクションに関するAlessandroのセッションをご覧ください。さらに、バーチャルブースでは、作成者との交流、デモやウェビナーの限定公開、ノベルティが当たるチャンスもお楽しみいただけます。
これらのコレクションは出発点であり、NGINXとコミュニティの取り組みによって今後さらに発展していくものと考えています。ぜひコレクションにご協力いただき、どのような新機能が重要かをお聞かせください。
NGINX PlusとNGINX App Protectをお試しになるには、30日間の無料トライアルを今すぐお申し込みいただくか、ユースケースについてご相談ください。
Red HatとNGINXの連携により、両社の強みを最大限に活用できます。両社は共同で以下を実現します。

著者について

関連するブログ記事
チュートリアル: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グループの負荷を直接分散できるため、クラウドでの負荷分散がさらに柔軟になります