2022年4月15日(金) 15:00より、オンラインイベント NGINXユーザー会を開催いたしました。登録は250名以上、当日の参加も200名に達し、NGINX Japanのイベントの中でも過去最大に盛り上がったイベントとなりました。
この記事ではイベントの各セッションの要点をお伝えし、本イベントの魅力をお伝えいたします。ご興味をお持ちいただけた方は、ぜひ今後のNGINXユーザー会のご参加やご登壇をご検討いただければ嬉しいです。
目次
- 開会のあいさつ
- NGINX事例講演 ①
- NGINX事例講演 ②
- NGINXテクニカルセッション①
- NGINX事例講演 ③
- NGINX事例講演 ④
- NGINXテクニカルセッション②
- 第2回に向けた企画について
- 皆様が持つNGINXの困りごと
- まとめ
開会のあいさつ
まず、F5尾方より、NGINXの歴史に触れ、F5との事業統合をご紹介しました。
そして冒頭で、ある会社について触れます。皆様が大好きな「LEGO」です。レゴジャパンは少ない人数で大変大きな売上を達成されていました。この結果のポイントとなるのが、一時の経営危機からの気づきとなった「レゴ空想(LEGO CUUSOO)」でした。ユーザーの意見を集めて、「あったらいいな」を実現したことがポイントであると。まさにこれこそがNGINXユーザー会の場であり、これから皆様と共に良いイベントそして製品を作り上げていきたいと熱い思いを語りました。
そしてNGINX担当責任者の池田より、当日のプログラムについてご紹介いたしました。
前半はNGINX OSSを利用された事例とテクニカルセッションについて。
後半はNGINXの商用版であるNGINX Plusの事例とテクニカルセッション、 そして第二回に向けた企画についてご紹介する流れとなります。そして今後の会をより良いものとするために、皆様の積極的なアンケートの回答をお願いいたしました。
NGINX事例講演 ①
「NGINX Ingress Controller を活用した Retty のサービス開発とモニタリング」
(スピーカー) Retty株式会社 技術部インフラエンジニア 幸田 優哉氏
発表資料
Retty幸田様からの自己紹介。おいしいピザSAVOYとカレーのお店ガンジーがお好きとのこと。
ご紹介の内容は、社内の開発環境で活用する「NGINX Ingress Controller」について。どのような判断で構成検討を進め、NGINXのIngress Controller採用に至ったかのポイントをご紹介いただきました。
採用に至ったのは、「ALB Ingress + NGINX Ingress Controller」。その理由は主に以下でした。
- ALBをIngressとした場合、設定に正規表現を利用できない。またターゲットの登録数がデフォルトで100であり不足を感じる
- ALB Ingress+NGINX Ingressは、双方の組み合わせで柔軟な設定を利用可能。ALB単体の機能不足をうまく拡張することができた
採用した構成では、「管理の複雑さ」を懸念とされていましたが、実際の運用では課題にならず利用できているとのこと。
モニタリングにはprometheus-operator/kube-prometheus
を利用し簡単に監視ダッシュボードを構築できることを紹介いただきました。NGINX OSSとNGINX Plusには取得できるメトリクスに差があるため、より詳細なモニタリングではNINGX Plusを検討しても良いかもと話されていました。
NGINX事例講演 ②
「NGINXをBFF (Backend for Frontend)として利用した話」
(スピーカー) 株式会社日立製作所 OSSソリューションセンタ 田畑 義之氏
発表資料
本記事をご覧の皆様の中には田端様をご存知な方もいらっしゃるのではないでしょうか。認証認可のスペシャリストとして様々なお客様の技術支援を行い、更に書籍も執筆されております。
APIシステムでは、APIゲートウェイが流量制御やアクセス制御を行い、リソースサーバへプロキシします。このAPIゲートウェイの最有力候補の一つが「NGINX」。理由は以下の2つです。
- 圧倒的なパフォーマンス
- 高いカスタマイズ性。豊富なモジュール、JavaScriptやLua言語で自由なカスタマイズが可能
SPA(Single Page Application)はセキュリティの懸念から、SPAとAPIゲートウェイの間にBFF(Backend for Frontend)を配置することで、SPAのセキュリティの問題を回避することが可能です。このBFFの実装においてもNGINXが最適であると紹介されました。APIゲートウェイでご紹介した特徴が、こちらでも同様に強力なポイントとなることでした。運用の観点から、BFFとAPIゲートウェイは一つにまとめるのではなく分けて運用することをおすすめされました。
BFFで必要な認証機能であるOAuth2.0 クライアント(OIDC 1.0 RP)はライブラリを活用しNGINXの機能を拡張することで対応することができます。
多くの導入実績がありますのでご興味ある方は是非とも田端様へお声がけください。今後気になるNGINXの機能については、柔軟な機能を備えるWAFを活用したいとのことでした。
NGINXテクニカルセッション①
「NGINX kTLS有効化とGrafana Cloudとの連携について」
(スピーカー) NGINXシニアソリューションエンジニア 鈴木 孝彰
発表資料
F5鈴木より、NGINXのテクニカル情報をご紹介させていただきました。
まず本題に入る前に、昨今世間を賑わしているLDAP拡張機能について。こちらの日本語記事についてご紹介いたしました。LDAP拡張機能ご利用の方に影響があり、NGINX/NGINX Plus自身には影響ないことをご案内させていただきました。
そして本題の1つ目、KTLSについて。Linux Kernel内でTLSを処理することでパフォーマンスを改善できることについてご紹介いたしました。動作環境や、利用方法について各ステップをわかりやすくご紹介しております。
デモでは、KTLSを有効にしたNGINXと、通常のNGINXに対する1Gのファイルの転送時間を確認しました。それぞれ10回の施行の中の最短の値を比較したものではありますが、KTLSを有効にした場合には40%程度、高速化することを確認しました。この結果から、動画や画像などある一定サイズのファイルを利用する環境では、一定の高速化ができるであろうことをご紹介させていただきました。
次にGrafana Cloudの活用で簡単にアプリケーションのパフォーマンスモニタリングできることをご紹介いたしました。
NGINXとGrafana Cloudを使うことで簡単にリッチなパフォーマンスモニタ画面を利用でき、トラフィックの詳細を把握できるようになっております。
NGINX事例講演 ③
「サービス開発現場の迅速な認証基盤強化にNGINX Plusを採用した理由」
(スピーカー) 株式会社サイバーエージェント CIU, Solution Architect 鳥居 昂平氏
発表資料
サイバーエージェントの連結子会社105社、従業員6089名という多くの方々は、コロナ禍で急激な勤務スタイルの変化が必要となりました。この問題を対処するためNGINX Plusを活用し、「信頼するな、検証せよ」というコンセプトで、すべての通信を都度認証するゼロトラスト環境の対応をたった1週間で実現しました。また全社への展開が前提となるため、導入が簡単にできるように、GUIを開発することで、だれでも1分でプロキシのデプロイできる環境を実現しました。実際に1分間でスマートに完了するデモを実施いただきました。
NGINX Plusを用いてゼロトラストの環境を構築し、誰もが簡単に利用できるシステムとすることで、当初必要となっていたSSO対応に求められる工数を大幅に削減しながら、柔軟で様々なサービスに適用可能な構成を実現されました。
NGINX事例講演 ④
「NGINX OSSからNGINX Plusへの活用へ」
(スピーカー) 株式会社ウェザーニューズ 環境気象事業部 石崎 満氏
発表資料
サービス品質向上と運用負荷軽減をするため、NGINX Plusの活用を決定いただきました。NGINX Plusが提供するActive Health Checkやダッシュボードをご活用いただくことで安定性の高いシステムを実現いただきます。
気象は眠らない。世界中で必要なサービスが提供される環境を実現されています。
NGINXテクニカルセッション②
「マイクロサービスに必要なセキュリティ」
(スピーカー) F5 ソリューションエンジニア 小峰 洋一
発表資料
F5小峰よりKubernetes環境で実現する モダンな「セキュアコーディング」についてお話をさせていただきました。「開発エンジニアのセキュリティレベル、意識を向上させるには」を課題と設定し、その対処についてご紹介しました。先日に開催したウェビナーでも多くの方が同様の課題を持たれていることがわかります。アプリケーションの利用が増える昨今では、アプリケーション数が大量に増加し、また複雑になっていくため、セキュリティポリシーの管理が破綻してしまいます。この破綻がセキュリティホールとなってしまいます。そこでアプリケーションの開発と共にセキュリティポリシーを管理すること、アプリケーションチームでセキュリティを管理することが目指すべきゴールとなります。
開発に必要なセキュリティの知識、開発・セキュリティチームの責任分界など、多くの課題に対し、NGINX Ingress Controller上でNGINX App Protect WAFを活用することで、Manifestを使ってセキュリティを定義でき、CI/CDと親和性の高いセキュリティを実現することができます。
最後に「お客様の声」を実際にまとめた有償版NGINXの事例集をご紹介させていただきました。
発表資料
どの事例でも有償版のNGINX Plusを活用いただくことで、日々の運用の手間を軽減し、多くの担当者がより「クリエイティブな仕事」をご対応いただくことが可能となります。
第2回に向けた企画について
第2回に向けた企画についてF5松本より発表いたしました。6つの案についてご紹介し、皆様のご意見を伺ったところ以下のような結果となりました。
NGINXユーザー会 次回の企画として希望するもの(複数回答可)
ユースケース発表会 | 47% |
NGINXエキスパートは誰? NGINXマニア検定クイズ | 8% |
もくもく会 (「黙々と」作業をする勉強会・ハンズオン) | 32% |
ガッツリNGINX機能紹介 | 48% |
座談会 (例えば、NGINX Ingress Controllerやクラウドネイティブ) | 23% |
今後皆様の意見を参考によりよいイベントを開催させていただきます。
次にNGINXの困りごとを持っている方はアンケートに記入いただくよう案内しました。この項目で記載頂いた内容は次の章でご紹介いたします。自社で同様の悩みをお持ちの方、自社での解決方法などお気軽にF5までご意見をお寄せいただければと思います。
最後に、Kubernetes・NGINXを深く学んでいただくコンテンツ「Microservices June 2022」のご紹介を案内しました。登録サイトがオープンいたしますので是非ともご利用ください。
皆様が持つNGINXの困りごと
皆様に多くの回答をいただきました。質問についてはこちらで回答をさせて頂きます。ここに挙げた内容について回答やコメントがある方、是非とも「nginx-japan@f5.com」までご連絡いただければと思います。
●ログ取得、可視化ツール選定
ログメッセージとメトリクスについてお伝えします。
ログについては、ローカルまたはSyslogでのエクスポートが可能です。かなり多くのパラメータがございますので、自由にログメッセージを加工できることがNGINXの強みです。
Configuring Logging
Alphabetical index of variables
NGINXはパフォーマンスを把握できる多くのメトリクスを提供しております。特にNGINX Plusは数多くのメトリクスを取得しており、NGINX Plus Dashboardによるリアルタイムの通信状況の把握や、各種アプリケーションパフォーマンスモニタリングツールで詳細な解析を実施いただくことが可能です。
NGINX Plus API Response Objects
NGINX Plus Live Activity Monitoring
アプリケーションパフォーマンスモニタリングツールでは、Datadog、New Relicなどのツールと連携いただけます。
New Relic Plug-In
Datadog NGINX
またGrafanaではGrafana Loki、Tempoとサービスが充実しておりますので多くの情報をGrafanaのダッシュボードで管理いただくことが可能です。セッションでご紹介したように簡単にご利用をいただけます。
是非皆様のチームでの活用例、作り込まれたダッシュボード、トラブル対応での活用など情報をいただければと思います。
●設定パラメータのベストプラクティス
まず初めにデフォルトパラメータについてお伝えします。NGINXを各OSのディストリビューションでインストールいただいた際にはいくつかのパラメータが指定されたデフォルトの設定ファイルが配置されます。これらの値は昨今の使用状況などに応じて設定をしておりますので、皆様にとって使っていただきやすいパラメータとなっております。
更にパフォーマンスを最適化されたいといった場合には、皆様の環境でのNGINXの役割や、トラフィックの性質によって変わってきます。
古くからご紹介している記事で、一部の情報は古くなっている箇所もありますが、十分に参考にしていただけると思います。
10 Tips for 10x Application Performance
Performance Tuning – Tips & Tricks
Tuning NGINX for Performance
シンプルなTipsを一つ、以下にまとめます。
NGINXはMaster ProcessとWorker Processがあります。コネクション処理はWorker Processが行っており、NGINXでは割り当てられたリソースの中でWorker Processの処理数を増やすことが、大量の通信を処理する一つのポイントとなります。そちらを踏まえ、以下のように設定いただくことが可能です。
# | Directive | サンプル値 | 観点 |
---|---|---|---|
1 | worker_processes | auto | 環境で許容されるのであれば、CPUコア数分Worker Processを動作させる |
2 | worker_connections | 2048 等 | 一つのWorker Processが処理するConnection量です |
3 | worker-rlimit-nofile | 4096 等 | Worker Processがオープンするファイルディスクリプタ量です。Proxyの場合、各コネクションで2つ程度利用するため、Worker Connectionの倍が目安となります |
OSの各種パラメータはこれらの変更に合わせて適宜修正ください。
その他、各種buffer、keepalive、timeout を用途に合わせて設定されると良いと思います。
また、NGINX Cookbookにも参考になる情報を記載しておりますので、是非ともダウンロードいただき該当箇所を参照ください。
●サイジング
参考となる資料をこちらに示します。
Sizing Guide for Deploying NGINX Plus on Bare Metal Server
Sizing Guide for Deploying NGINX Plus in Virtualized Environments
NGINX Ingress Controller
NGINX Plus on Arm-Based AWS Graviton2 AMIs
以下はSizing Guideのテスト内容を記したブログです。NGINXが動作するリソースや設定に応じて実測値は変化します。こちらの記事を参考に皆様の開発環境でもテストを実施してみてください。
NGINX Plus Sizing Guide: How We Tested
こちらの記事中のサンプルコンフィグは、「パラメタチューニング」の観点としても有用な記事になっております。
●使い始めるために役立つ情報
NGINXは数多くのコンテンツがあります。「顧客事例を知りたい方」「資料から理解を深めたい方」「何より試したい方」、すべての方に最適なコンテンツがあります。
顧客事例を知りたい方
NGINX導入事例:世界中の事例から知る活用ポイント
CA様・IDCF様事例セミナー:「お客様の声」から知る課題の解決方法
資料から理解を深めたい方
NGINX クックブック:設定の詳細、様々な環境での活用方法などを網羅
NGINX Docs:NGINXマニュアル集。設定サンプル等
何より試したい方
NGINX トライアル 手順:今日からNGINXを利用いただけます
各種Webinar:NGINXの基本から応用までデモも交えた解説
お困りの方はお気軽にF5へお問い合わせください。お問い合わせフォームもございますのでご利用ください
お問い合わせフォーム
●キャッシュサーバとしてのデザイン、パージ方法
NGINXは世界中で活用されている高性能なキャッシュサーバです。キャッシュサーバの利用や、設定の勘所については以下の資料をご活用いただけます。
高性能キャッシュ NGINX & NGINX Plusの活用
また、NGINX PlusはAPIを用いてキャッシュをリモートからパージしていただけます。設定方法については以下の記事が参考になります。
Purging Content From The Cache
●SSL証明書の運用、複数Virtual Hostでのサブドメインの管理方法
サブドメインであれば、ワイルドカード証明書の利用によりシンプルな構成で運用される場合が多いと思います。NGINXは複数のVirtual Hostを持つことが可能であり、それぞれのVirtual Hostで異なったドメインのSSL証明書を用いることが可能です。また以下のようなソリューションがございますので、皆様の運用に合わせた方法で、効率的なSSL証明書管理を実施いただくことができます。
- NGINX Plusは証明書とプライベートキーを動的に選択できます。その証明書とプライベートキーをNGINX
Plusのキーバリューストアに格納することができ、ディスク上ではなくメモリ上で管理できます。また、APIコールを使用してキーバリューストアを更新することで証明書のローテーションを自動化できます。
Youtube: Dynamic SSL Key Management with NGINXまた、HashiCorp Vaultと組み合わせてご利用いただくことも可能です。
Using the NGINX Plus Key-Value Store to Secure Ephemeral SSL Keys from HashiCorp Vault - 複数のNGINXのSSL証明書を一元的・横断的に管理したい場合
証明書の失効管理には、NGINX Instance ManagerやNGINX Controllerの統合管理ソリューションをご活用いただくことで、横断的に管理いただけます。
皆様からご質問頂いた内容に、NGINXのサイトでご紹介している情報を中心に回答させていただきました。もし皆様の環境における使い方、設計のポイント、苦労した点等あれば是非ご紹介いただければと思います。
まとめ
NGINXユーザー会にこれだけ多くの方にご参加いただけたこと、大変嬉しく感じております。お客様が実際に経験された内容をご説明いただくことは、参加された皆様にとって学び多いコンテンツであると感じました。アンケートの結果からも、皆様の普段の業務と比較しながら、お客様事例から気づきを得て、楽しんでいただけたと感じています。
NGINX「ユーザー」会は、その名の通り参加いただく皆様、普段よりNGINXを支えていただいている皆様が中心です。
これからも多くの方とともにより良いサービスを作っていきたいと考えております。