Unlocking the full potential of F5 NGINX Management Suiteの可能性を最大限に引き出すことで、組織におけるアプリとAPIのデプロイ、管理、セキュリティの簡素化に役立ちます。新しいNGINX Management Suite Infrastructure as Code(IaC)プロジェクトは、選択したデプロイ環境のベストプラクティスを促進しながら、できるだけ迅速に利用を開始できるよう支援することを目的としています。
ソフトウェアインフラストラクチャの構築を担当している方であれば、一貫した成果を得るための最新のアプローチとしてIaCをご存じでしょう。しかし、IaC環境を構築する方法は数多くあるため、着手するのが難しく感じられたり、ゼロから構築するには時間がかかったりする場合があります。
このブログ記事では、NGINX Management Suite Infrastructure as Codeリポジトリを紹介し、各モジュールをセットアップして迅速に稼働させる方法の概要を説明します。
プロジェクト概要
IaCの設計には、確立された2つの手法があります。1つは「bakedアプローチ」で、必要なソフトウェアと構成を組み込んだイメージを作成します。もう1つの「fried」アプローチでは、サーバーをデプロイし、構成管理ツールを使用して継続的に構成します。イミュータブルインフラストラクチャについては、こちらのNGINXの講演<.htmla>をご覧ください。「bakedイメージとfriedイメージ」の違いも解説しています。
NGINX Management Suite IaCリポジトリでは、bakedアプローチを採用しています。Packerを使用してイメージを事前に作成し、Terraformを使用してそのイメージのインスタンスをデプロイします。事前に作成したイメージを使用することで、個々のNGINX Management Suiteシステムのデプロイを迅速化し、インフラストラクチャの一貫性を高めることができます。
GitHubリポジトリの操作
Packerの出力は、NGINX Management Suiteとサポート対象のすべてのモジュールがインストールされたイメージ/マシンです(本稿執筆時点では、Instance Manager、API Connectivity Manager、Security Monitoring、Application Delivery Managerです)。適用するライセンスによって、利用できるモジュールが決まります。ライセンス情報はMyF5 Customer Portalで確認できます。まだお客さまでない場合は、利用を開始するために、API Connectivity StackまたはApp Delivery Stackの30日間無料トライアルをお申し込みいただけます。
パスワードや証明書などの機密情報は、イメージ生成プロセス中に削除されます。イメージは、任意のNGINX Management Suite対応OSを使用し、ビルドパラメーターを変更することでビルドできます。NGINXは、イメージのビルドとデプロイの両方について、複数のクラウド環境およびオンプレミス環境をサポートしており、今後も対応環境を積極的に拡充する予定です。本稿執筆時点では、以下の表に示す構成がサポートされています。
Cloud Provider | Packer for NGINX Management Suite | Packer for NGINX Plus | Terraform for Basic Reference Architecture | Terraform for Standalone NGINX Management Suite |
AWS | ||||
GCP | ||||
Azure | ||||
vSphere |
基本リファレンスアーキテクチャでは、NGINX Management Suiteインスタンスと、必要な数のNGINX Plusインスタンスをデプロイします。デプロイされるネットワークトポロジは、対象のクラウドプロバイダーのベストプラクティスに準拠しています。
たとえば、Amazon Web Services(AWS)を使用している場合は、次のインフラストラクチャをデプロイできます。
利用を開始する方法
NGINX Management SuiteでIaCの使用を開始するには、この「リポジトリ」をクローンし、「README」の手順に従ってイメージをビルドします。基本的なリファレンスアーキテクチャでは、「Packerガイド」の手順に従って「NGINX Management Suite」と「NGINX Plus」のイメージを生成する必要があります。
イメージを生成したら、それらを使用してリファレンスアーキテクチャをデプロイできます。Terraformスタックでは適切なデフォルト値が使用されており、構成オプションはニーズに合わせて編集できます。
コントリビューションの方法
このリポジトリは現在活発に開発が進められており、コミュニティからのコントリビューションを歓迎しています。詳しくは、コントリビューションガイドをご覧ください。
その他のリソース
- ウェビナー:Infrastructure as Codeの導入方法
- ブログ:DevOpsとイミュータブルデリバリー
- eBook:コードとしてのセキュリティ
関連するブログ記事
チュートリアル: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グループの負荷を直接分散できるため、クラウドでの負荷分散がさらに柔軟になります