NGINX + Ansibleによる
システム構築・運用自動化
F5ネットワークスジャパン合同会社
NGINX – テクニカルソリューションズアーキテクト
鈴木 孝彰
本日のアジェンダ
• NGINX 製品ご紹介
• NGINX と Ansibleについて
• デモ NGINX製品 + Ansible Tower + AWS
• まとめ
• Q/A, その他
主要パブリッククラウド SaaS / クラウド型サービスデータセンタ
F5 Silverline
フルマネージド型クラウドサービス
DNS Cloud Services
DNS Loadbalancer Cloud Services
Essential App Protect Services
独自オペレーティングシステム:TMOS
機能カスタマイズ言語&API:iRules/iControl/iApps/iCall
加入者
ポリシー
制御
キャリア
NAT
IPv4/
v6
ロード
バランサ
インテリ
ジェント
DNS
回線
冗長化
リモート
アクセス
・SSO
WAF
(L7)
L3-
L4
FW
PEM CGNAT LTM DNS LC APM AWAF AFM
SSL
可視化
SSLO
Proxy
URL
Filter
SWG
管理系・可視化・
アナリティクス
F5 Beacon
セルフサービス型クラウドサービス
BIG-IPソフトウェア製品モジュールを稼働させる基盤
ADC製品 : BIG-IPソフトウェア製品モジュール群
BIG-IQ
BIG-IP集中管理・
オーケストレーション
クレデンシャルスタッフィング攻撃・
BOTトラフィック対策 アナリティクス製品
モダナイゼイションインフラに最適なAll In Oneソフトウェア
安定・高速・低リソースと幅広い機能を提供でき、
アプリケーションデリバリに必要な要件をシンプルに
実現する高品質データプレーンソリューション
NGINXのオーケストレーション
インスタンス・証明書管理や
CI/CDとシームレスに統合
F5 Product Portfolio
本日のご紹介範囲
4.5億
sites run NGINX
WE HAVE TREMENDOUS INSIGHT INTO APPLICATION PATTERNS
| ©2020 F5 NETWORKS4
https://news.mynavi.jp/article/20200827-1251527/
https://news.netcraft.com/archives/2020/08/26/august-2020-web-
server-survey.html
DELIVERING MODERN APPLICATIONS AT SCALE ACROSS SEAMLESSLY ACROSS MULTI-CLOUD
NGINX 製品
NGINX Plus
All-In-One Software
ロードバランサー、コンテンツキャッシュ、
Webサーバ
安定、高速、高機能
必要となるリソースは最小
NGINX Controller
NGINX+統合管理ソフトウェア
NGINX+のロードバランサやAPI
Gateway、更にマルチクラウド環境に
おいても容易に管理が可能。
GUI/CLIに加えAPIでの制御が可能
NGINX Unit
NGINXが開発する新しいダイナミック
アプリケーションサーバ
OSSで提供されており、複数の
プログラミング言語をサポート。
NGINX UnitはREST APIを用いて
設定変更が可能
DELIVERING MODERN APPLICATIONS AT SCALE ACROSS SEAMLESSLY ACROSS MULTI-CLOUD
NGINX Service Mesh
NGINX Plusで複雑な
マイクロサービス、アプリケーション間の
通信問題を解決するシンプルな
サービスメッシュソリューション。
Amazon EKS対応
NGINX App Protect
アプリケーションに特化した
Web Application Firewall
NGINX+にシームレスに統合可能な
新しいWAF。 F5の実績に基づき、
高速な高品質なWAFを実現
NEW
NGINX 製品
NGINX Ingress
Controller
Kubernetes環境への
外部アクセスをコントロール。
NGINX機能をIngressリソース
を通じて管理可能。
NGINX App Protect対応
NEW
NGINXによるアプリケーションモダナイズ例
NGINXの特性を生かし、
アプリ開発者はアプリの開発に注力し、セキュリティも担保できる基盤を実現する案。
APIマネジメント
モニタリング
自動化
WAF
サービスメッシュ
Docker
Kubernetes
マルチクラウド
HTTP/HTTPS
レート/アクセス制限
軽量/高速処理
コンテンツキャッシュ
NGINXによるアプリケーションモダナイズ例
NGINXの特性を生かし、
アプリ開発者はアプリの開発に注力し、セキュリティも担保できる基盤を実現する案。
APIマネジメント
モニタリング
自動化
WAF
サービスメッシュ
Docker
Kubernetes
マルチクラウド
HTTP/HTTPS
レート/アクセス制限
軽量/高速処理
コンテンツキャッシュ
NGINX と Ansibleについて
What is Ansible ?
10
• Ansible(アンシブル)は、レッドハットが開発するオープンソースの構成管理
ツールである。サーバを立ち上げる際、あらかじめ用意した設定ファイルに従って、
ソフトウェアのインストールや設定を自動的に実行する事が出来る。
• Ansibleは非常に強力な自動化ツール、運用のセルフサービス化
Wikipedia : https://ja.wikipedia.org/wiki/Ansible_(ソフトウェア)
https://www.redhat.com/ja/explore/ansible
What is Ansible ?
11
• Ansible(アンシブル)は、レッドハットが開発するオープンソースの構成管理
ツールである。サーバを立ち上げる際、あらかじめ用意した設定ファイルに従って、
ソフトウェアのインストールや設定を自動的に実行する事が出来る。
• Ansibleは非常に強力な自動化ツール、運用のセルフサービス化
https://www.redhat.com/ja/explore/ansible
What is Ansible ?
12
Ansibleを利用してNGINX製品の非常に強力な自動化が可能
APIマネジメント
モニタリング
自動化
WAF
サービスメッシュ
Docker
Kubernetes
マルチクラウド
HTTP/HTTPS
レート/アクセス制限
軽量/高速処理
コンテンツキャッシュ
NGINX Ansible History
2018
2017
2015
2020
2015年:
NGINXおよびNGINXPlusをインストールするためのAnsibleプレイブックを作成する方法を説明するブログ
を公開しました。コミュニティメンバーから、公式のAnsible roleを開発して維持する必要があると言われ
ブログ記事削除。
https://www.nginx.com/blog/announcing-nginx-core-collection-ansible
2017年:
NGINXとNGINX Plusの基本的なインストールを別々に実行する2つの最初のAnsible roleを提供しました。
2018年:
初期Ansible Roleを1つのNGINX roleに統一、NGINXとNGINX Plusの両方をインストールできるようにしまし
た。NGINXの設定、NGINX Unitのインストール等、NGINX roleを強化しました。
2020年:
NGINX Coreの認定コレクションをリリース。
NGINX Controllerの認定コレクションをリリース。
新しいセキュリティソリューションNGINX App Protectに対応
Ansible
Galaxy
galaxy.ansible.com
Ansible Automation
Hub
cloud.redhat.com
● コミュニティサポート
● 最新コレクションフレーム
ワークを活用
● Red Hatと認定パートナーが共同サポート
● 高度分析や情報へのアクセス
Ansible コンテンツ配布元
https://access.redhat.com/articles/3642632
Ansible コレクション
NGINX Controller
• 17 Roles 利用可能
NGINX Core
• 3 Roles 利用可能
Ansibleコレクションは
Playbook, Role,
Module, Pluginを
まとめた配布形式
WITH ANSIBLE, NGINX CONTROLLER & NGINX PLUS
Ansible コレクション
次の場合にNGINX Ansibleコレクションを選択します
NGINX Core
• NGINX OSS インストール/設定
• NGINX Plus (評価|商用版)インストール/設定
• NGINX App Protect (評価|商用版) インストール/設定
NGINX Controller
• NGINX Controller (評価|商用版) インストール/設定
Ansible NGINX Core コレクション
---
- hosts: all
collections:
- nginxinc.nginx_core
roles:
- role: nginx
- role: nginx_config
vars:
nginx_config_http_template_enable: true
nginx_config_http_template:
app:
template_file: http/default.conf.j2
conf_file_name: default.conf
conf_file_location: /etc/nginx/conf.d/
servers:
main:
listen:
listen_localhost:
port: 80
server_name: localhost
access_log:
- name: main
location: /var/log/nginx/access.log
reverse_proxy:
locations:
main:
location: /
proxy_pass: http://upstr/
proxy_set_header:
header_host:
NGINX OSS インストール
NGINX OSS 設定
NGINX Core コレクション
NGINX OSS
Ansible NGINX Core コレクション
---
- hosts: all
collections:
- nginxinc.nginx_core
roles:
- role: nginx
vars:
nginx_type: plus
nginx_license:
certificate: "/var/lib/awx/venv/ansible/nginx-repo.crt"
key: "/var/lib/awx/venv/ansible/nginx-repo.key”
NGINX Plus
NGINX Plus インストール
*NGINX Plus ライセンスファイル指定
NGINX Core コレクション
Ansible NGINX Core コレクション
---
- hosts: all
collections:
- nginxinc.nginx_core
roles:
- role: nginx
vars:
nginx_type: plus
nginx_license:
certificate: "/var/lib/awx/venv/ansible/nginx-repo.crt"
key: "/var/lib/awx/venv/ansible/nginx-repo.key”
- role: nginx_app_protect
vars:
nginx_app_protect_setup_license: false
nginx_app_protect_remove_license: false
nginx_app_protect_install_signatures: true
NGINX Plus, NGINX App Protect
NGINX Plus インストール
NGINX App Protect インストール
Ansible NGINX Controller コレクション
- hosts: all
collections:
- name: nginxinc.nginx_controller
- include_role:
name: nginxinc.nginx_controller.nginx_controller_generate_token
- name: Get controller api key for agent registration
uri:
url: "https://{{nginx_controller_fqdn}}/api/v1/platform/global"
method: "GET"
return_content: yes
status_code: 200
validate_certs: false
headers:
Cookie: "{{nginx_controller_auth_token}}"
register: ctrl_globals
- name: Copy api_key to a variable
set_fact:
nginx_controller_api_key:
"{{ctrl_globals.json.currentStatus.agentSettings.apiKey}}"
- name: install the agent
include_role:
name: nginxinc.nginx_controller.nginx_controller_agent
NGINX Controller 関連
c NGINX Controller コレクション
NGINX Controller Agentインストール
Demo
NGINX OSS
インスタンス
NGINX Plus
インスタンス
デモ環境: Red Hat Ansible Tower, NGINX Collections, AWS
⓪ GitHub Playbook
① Red Hat Ansible Tower ログイン
② AWS インスタンス作成ジョブ実行
③ NGINX OSS ジョブ実行
④ NGINX Plus ジョブ実行
⑤ NGINX App Protect ジョブ実行
⑥ NGINX Controller Agent ジョブ実行
⑦ NGINX Controller から動作確認
amazon.aws.collection
nginxinc.nginx_core
nginxinc.nginx_controller
playbook
⓪ ①
③
④⑤⑥
⑦
②
Projects
amazon.aws.collection
nginxinc.nginx_core
nginxinc.nginx_controller
Playbook/Collection
InventoriesCredentials
NGINX OSS/Plus
インスタンス
Access/Secret
Templates
各リソースを指定
- Inventory
- Project
- Playbook
- Credential
’Launch’ Playbook Job実行
デモ環境: Red Hat Ansible Tower, NGINX Collections, AWS
SSH Key
補足資料
NGINX リバースプロキシ
Drivers登録
microservice
モバイル
microservice
PC向け
microservice
/api/f1/*
/application01
/pc/circuits/*
= /mobile/f1/seasons
F1 GET
microservice
TCP/UDP, HTTP/HTTPS, gRPC,
コンテンツキャッシュ,アクセス制御、
レート制限
NGINX Plusで追加されている機能
• ロードバランシング 負荷分散アルゴリズム, セッション維持, L7ヘルスチェック
• 動的設定変更 REST API, アップストリーム, SSL証明書, Key-Valueストア, キャッシュ削除
• 監視 REST API, ダッシュボード, Prometheus, DataDog/NewRelicエージェント対応
• 公式Dockerfile 公式ドキュメント, NGINX Plus Ingress Controller
• 高可用性とクラスタリング HA構成, ステート情報の共有, クラウド環境スケールアップ/ダウン
• 認証 OpenID, JWT
• Webアプリケーションファイアウォール NGINX App Protect
• 認定サードパーティ動的モジュール NGINX, コミュニティ, 認定ISV
Public Cloudを補完するNGINX Plus ①
Public Cloudはトラフィック処理とセキュリティ機能について不足機能があり、
NGINX Plus が機能的に優れる点も多数
カテゴリ 機能 NGINX Plus AWS ALB AWS CLB AWS NLB Azure AG Azure LB
トラフィック
処理
L4/L7負荷分散 ○ ○ ○ ○ ○ ○
対応プロトコルの幅の広さ
◎
TCP, UDP, SSL, HTTP, HTTPS,
gRPC, WebSocket
△
HTTP, HTTPS
バックエンド向けgRPC通信
未対応
○
TCP, SSL, HTTP, HTTPS
△
TCP
△
HTTP, HTTPS
○
Basic SKU: TCP, HTTP
Standard SKU: TCP, HTTP,
HTTPS
ロードバランシングルール
◎
ラウンドロビン、リーストコ
ネクション、リーストタイム
△
ラウンドロビンのみ
△
ラウンドロビンのみ
△
ハッシュベースルーティング
のみ
○
ラウンドロビン、URL毎ルー
ルベース
△
ハッシュベースルーティング
のみ
セッション維持 ◎
Cookieセッション維持
△
クッキーのみ
△
クッキーのみ
× △
クッキーのみ
○
ハッシュ、ソースアドレス
リーバスプロキシ ○ ○ × × ○ ×
SSLオフロード
◎
TLS v1.3対応
動的SSL証明書更新
幅広いCipher Suiteに対応可
○ ○ × ○ ×
ゾーンをまたぐ負荷分散
◎ ◎ ◎ ◎ ◎ ○
Standard SKUのみ
L7レイヤーデータの解析
◎
locationを利用
× × × × ×
クライアント証明書チェック
◎ × × × × ×
カテゴリ 機能 NGINX Plus AWS ALB AWS CLB AWS NLB Azure AG Azure LB
トラフィック
処理
送信元ソースIPアドレスの保持 ○
X-Forwarded-Forに挿入可能
○
X-Forwarded-Forに挿入可能
○
X-Forwarded-Forに挿入可能
○
送信元IPアドレスとポートの
書換えなし
○
X-Forwarded-Forに挿入可能
○
WebSocket対応 ○ ○ × ○ ◎ ×
HTTP/2対応 ◎ ◎ × × ◎ ×
流量制御(コネクションリミッ
ト)+Sorryメッセージの表示
◎
コネクションリミット、コネ
クションレートリミット
× × × ? ?
帯域制御
◎
brotli/gzip圧縮
帯域制御など可
× × × ? ?
HTTPキャッシュ
◎
REST APIを利用したキャッ
シュクリアに対応
△
CloudFrontが必要
△
CloudFrontが必要
△
CloudFrontが必要
? ?
IPv6対応 ◎ ○ ○ × × ○
セキュリティ
WAF追加 ◎
NGINX App Protectアドオン可
○ × × ○ ×
FW追加 ◎
map, geo対応可能
× × × × ×
Public Cloudを補完するNGINX Plus ②
Public Cloudはトラフィック処理とセキュリティ機能について不足機能があり、
NGINX Plus が機能的に優れる点も多数
NGINX Plus 商用サブスクリプション
• テクニカルサポート 受賞歴 (Steve Gold 9.7/10) 顧客満足度
• 定期的な機能追加更新 安定したサイクル (年約3回, 4月,9月,12月)
• F5でテストされたソフトウェアバイナリ コミュニティ実証済み, NGINXによる追加テスト
• プロアクティブなセキュリティ更新プログラム セキュリティパッチ, ホットフィックスの提供
• 機密性 公開フォーラムではなく、プライベートでのサポート
• 製品の方向性に影響を与える ロードマップ, 製品開発チームへのアクセス
• 商用サブスクリプションの有効期限が切れた場合
• NGINX Plusは正常に動作し続けます.
• 最新版アップデートが不可となります.
• サブスクリプション更新後は最新版アップデートが可能です.
CONFIDENTIAL
NGINX Plusダッシュボード
メトリクス参照と動的な設定変更
NGINX App Protect
ワールドワイドで実績豊富なF5製WAFの機能を移植
(Signature/DataGuard/HTTP Compliance/Evasion Techniques等)Secure
Manage
CI/CD
Friendly
NGINXの動的モジュールとして提供(現在、NGINX Plusのみ対応)
• 仮想マシン/コンテナの双方で動作可能
• ゲートウェイ型/ホスト型
• NGINX Ingress Controller サポート (v1.8.0)
軽量なため、CI/CDパイプライン上でのデプロイが容易
2020年5月リリース
https://www.nginx.co.jp/products/nginx-app-protect/
NGINX App Protect 標準セキュリティポリシー
Drivers登録
microservice
Circuits
microservice
Seasons
microservice
/api/f1/*
/application01
/api/circuits/*
=/api/f1/seasons
F1 GET
microservice
https://docs.nginx.com/nginx-app-protect/configuration/
• OWASP Top 10 シグネチャ & CVEs
• メタ文字チェック
• HTTPプロトコル標準
• Evasionテクニック
• 不許可ファイルアップロード検知
(bin, cgi, cmd, com, dll, exe, msi, sys, shtm, shtml, stm等)
• セキュリティスコア検知
• Cookie改ざん
• JSON & XML文法
• Data Guard & 重要パラメータ
デモリクエスト – example.com
http://www.example.com/index.html?a=<script>aaa</script>
XSS – クロスサイトスクリプティング JavaScript
SQLインジェクション
http://www.example.com/products?category=Gifts%27+OR+1=1--
Advanced
Load
Balancing
Advanced
Content
Cache
Web Server
Reverse Proxy
and Cache
Advanced
Monitoring &
Management
Advanced
Security
Controls
NGINX Controller
NGINX Plus インスタンスを大規模にデプロイ、監視、管理するための、
高パフォーマンス、クラウドネイティブAPIソリューション
NGINX Controller
まとめ
NGINXはマルチクラウド環境で一貫性と信頼性、セキュリティを提供します
まとめ: AnsibleとNGINXを利用して
複数クラウドにアプリを展開する
Hybrid
Cloud
一貫したインフラストラクチャ
一貫した機能設定
新しいアーキテクチャを有効にする
迅速な統合
プラットフォームの移植性
効率的なテスト
アプリケーションの再プラットフォーム
セキュリテイレベルの向上
NGINX ドキュメントとコンテンツ
https://nginx.com/ https://docs.nginx.com/
RESOURCE BLOG
https://nginx.co.jp/
リソース ブログ
https://nginx.org/en/docs/
https://nginx.org/en/docs/dirindex.html
無料トライアル
https://www.nginx.co.jp/free-trial-request/
https://www.nginx.co.jp/free-trial-request-nginx-controller/
NGINX Plus, NGINX App Protect
無料トライアル
NGINX Plusは、オールインワン型のソフトウェアロードバランサ、コンテンツキャッシュ、
Webサーバ、APIゲートウェイ、マイクロサービスプロキシです。NGINX App Protect
は、業界トップクラスのF5の高度なWAFテクノロジーをNGINX Plusに搭載し最新の
アプリケーションセキュリティを提供します。この2つの技術の融合により、最新の分散型
環境におけるWeb/モバイルアプリケーションの拡張性と保護が実現します。
NGINX Controllerの評価版
NGINX Controllerは、NGINXデータプレーンを管理するNGINXのコントロールプ
レーンソリューションです。マルチクラウド環境でロードバランサ―、APIゲートウェイ、およ
びサービスメッシュのスケーラブルな実装を容易に集中管理することができます。
お申し込みのお客様向けに、NGINX Controllerの無償評価版をご用意しています。
NGINX Plus無料トライアル
NGINX Controller 無料トライアル
Q&A?

NGINX + Ansible Automation Webinar (日本語版)

  • 1.
  • 2.
    本日のアジェンダ • NGINX 製品ご紹介 •NGINX と Ansibleについて • デモ NGINX製品 + Ansible Tower + AWS • まとめ • Q/A, その他
  • 3.
    主要パブリッククラウド SaaS /クラウド型サービスデータセンタ F5 Silverline フルマネージド型クラウドサービス DNS Cloud Services DNS Loadbalancer Cloud Services Essential App Protect Services 独自オペレーティングシステム:TMOS 機能カスタマイズ言語&API:iRules/iControl/iApps/iCall 加入者 ポリシー 制御 キャリア NAT IPv4/ v6 ロード バランサ インテリ ジェント DNS 回線 冗長化 リモート アクセス ・SSO WAF (L7) L3- L4 FW PEM CGNAT LTM DNS LC APM AWAF AFM SSL 可視化 SSLO Proxy URL Filter SWG 管理系・可視化・ アナリティクス F5 Beacon セルフサービス型クラウドサービス BIG-IPソフトウェア製品モジュールを稼働させる基盤 ADC製品 : BIG-IPソフトウェア製品モジュール群 BIG-IQ BIG-IP集中管理・ オーケストレーション クレデンシャルスタッフィング攻撃・ BOTトラフィック対策 アナリティクス製品 モダナイゼイションインフラに最適なAll In Oneソフトウェア 安定・高速・低リソースと幅広い機能を提供でき、 アプリケーションデリバリに必要な要件をシンプルに 実現する高品質データプレーンソリューション NGINXのオーケストレーション インスタンス・証明書管理や CI/CDとシームレスに統合 F5 Product Portfolio 本日のご紹介範囲
  • 4.
    4.5億 sites run NGINX WEHAVE TREMENDOUS INSIGHT INTO APPLICATION PATTERNS | ©2020 F5 NETWORKS4 https://news.mynavi.jp/article/20200827-1251527/ https://news.netcraft.com/archives/2020/08/26/august-2020-web- server-survey.html
  • 5.
    DELIVERING MODERN APPLICATIONSAT SCALE ACROSS SEAMLESSLY ACROSS MULTI-CLOUD NGINX 製品 NGINX Plus All-In-One Software ロードバランサー、コンテンツキャッシュ、 Webサーバ 安定、高速、高機能 必要となるリソースは最小 NGINX Controller NGINX+統合管理ソフトウェア NGINX+のロードバランサやAPI Gateway、更にマルチクラウド環境に おいても容易に管理が可能。 GUI/CLIに加えAPIでの制御が可能 NGINX Unit NGINXが開発する新しいダイナミック アプリケーションサーバ OSSで提供されており、複数の プログラミング言語をサポート。 NGINX UnitはREST APIを用いて 設定変更が可能
  • 6.
    DELIVERING MODERN APPLICATIONSAT SCALE ACROSS SEAMLESSLY ACROSS MULTI-CLOUD NGINX Service Mesh NGINX Plusで複雑な マイクロサービス、アプリケーション間の 通信問題を解決するシンプルな サービスメッシュソリューション。 Amazon EKS対応 NGINX App Protect アプリケーションに特化した Web Application Firewall NGINX+にシームレスに統合可能な 新しいWAF。 F5の実績に基づき、 高速な高品質なWAFを実現 NEW NGINX 製品 NGINX Ingress Controller Kubernetes環境への 外部アクセスをコントロール。 NGINX機能をIngressリソース を通じて管理可能。 NGINX App Protect対応 NEW
  • 7.
  • 8.
  • 9.
  • 10.
    What is Ansible? 10 • Ansible(アンシブル)は、レッドハットが開発するオープンソースの構成管理 ツールである。サーバを立ち上げる際、あらかじめ用意した設定ファイルに従って、 ソフトウェアのインストールや設定を自動的に実行する事が出来る。 • Ansibleは非常に強力な自動化ツール、運用のセルフサービス化 Wikipedia : https://ja.wikipedia.org/wiki/Ansible_(ソフトウェア) https://www.redhat.com/ja/explore/ansible
  • 11.
    What is Ansible? 11 • Ansible(アンシブル)は、レッドハットが開発するオープンソースの構成管理 ツールである。サーバを立ち上げる際、あらかじめ用意した設定ファイルに従って、 ソフトウェアのインストールや設定を自動的に実行する事が出来る。 • Ansibleは非常に強力な自動化ツール、運用のセルフサービス化 https://www.redhat.com/ja/explore/ansible
  • 12.
    What is Ansible? 12 Ansibleを利用してNGINX製品の非常に強力な自動化が可能 APIマネジメント モニタリング 自動化 WAF サービスメッシュ Docker Kubernetes マルチクラウド HTTP/HTTPS レート/アクセス制限 軽量/高速処理 コンテンツキャッシュ
  • 13.
    NGINX Ansible History 2018 2017 2015 2020 2015年: NGINXおよびNGINXPlusをインストールするためのAnsibleプレイブックを作成する方法を説明するブログ を公開しました。コミュニティメンバーから、公式のAnsibleroleを開発して維持する必要があると言われ ブログ記事削除。 https://www.nginx.com/blog/announcing-nginx-core-collection-ansible 2017年: NGINXとNGINX Plusの基本的なインストールを別々に実行する2つの最初のAnsible roleを提供しました。 2018年: 初期Ansible Roleを1つのNGINX roleに統一、NGINXとNGINX Plusの両方をインストールできるようにしまし た。NGINXの設定、NGINX Unitのインストール等、NGINX roleを強化しました。 2020年: NGINX Coreの認定コレクションをリリース。 NGINX Controllerの認定コレクションをリリース。 新しいセキュリティソリューションNGINX App Protectに対応
  • 14.
    Ansible Galaxy galaxy.ansible.com Ansible Automation Hub cloud.redhat.com ● コミュニティサポート ●最新コレクションフレーム ワークを活用 ● Red Hatと認定パートナーが共同サポート ● 高度分析や情報へのアクセス Ansible コンテンツ配布元
  • 15.
  • 16.
    Ansible コレクション NGINX Controller •17 Roles 利用可能 NGINX Core • 3 Roles 利用可能 Ansibleコレクションは Playbook, Role, Module, Pluginを まとめた配布形式
  • 17.
    WITH ANSIBLE, NGINXCONTROLLER & NGINX PLUS Ansible コレクション 次の場合にNGINX Ansibleコレクションを選択します NGINX Core • NGINX OSS インストール/設定 • NGINX Plus (評価|商用版)インストール/設定 • NGINX App Protect (評価|商用版) インストール/設定 NGINX Controller • NGINX Controller (評価|商用版) インストール/設定
  • 18.
    Ansible NGINX Coreコレクション --- - hosts: all collections: - nginxinc.nginx_core roles: - role: nginx - role: nginx_config vars: nginx_config_http_template_enable: true nginx_config_http_template: app: template_file: http/default.conf.j2 conf_file_name: default.conf conf_file_location: /etc/nginx/conf.d/ servers: main: listen: listen_localhost: port: 80 server_name: localhost access_log: - name: main location: /var/log/nginx/access.log reverse_proxy: locations: main: location: / proxy_pass: http://upstr/ proxy_set_header: header_host: NGINX OSS インストール NGINX OSS 設定 NGINX Core コレクション NGINX OSS
  • 19.
    Ansible NGINX Coreコレクション --- - hosts: all collections: - nginxinc.nginx_core roles: - role: nginx vars: nginx_type: plus nginx_license: certificate: "/var/lib/awx/venv/ansible/nginx-repo.crt" key: "/var/lib/awx/venv/ansible/nginx-repo.key” NGINX Plus NGINX Plus インストール *NGINX Plus ライセンスファイル指定 NGINX Core コレクション
  • 20.
    Ansible NGINX Coreコレクション --- - hosts: all collections: - nginxinc.nginx_core roles: - role: nginx vars: nginx_type: plus nginx_license: certificate: "/var/lib/awx/venv/ansible/nginx-repo.crt" key: "/var/lib/awx/venv/ansible/nginx-repo.key” - role: nginx_app_protect vars: nginx_app_protect_setup_license: false nginx_app_protect_remove_license: false nginx_app_protect_install_signatures: true NGINX Plus, NGINX App Protect NGINX Plus インストール NGINX App Protect インストール
  • 21.
    Ansible NGINX Controllerコレクション - hosts: all collections: - name: nginxinc.nginx_controller - include_role: name: nginxinc.nginx_controller.nginx_controller_generate_token - name: Get controller api key for agent registration uri: url: "https://{{nginx_controller_fqdn}}/api/v1/platform/global" method: "GET" return_content: yes status_code: 200 validate_certs: false headers: Cookie: "{{nginx_controller_auth_token}}" register: ctrl_globals - name: Copy api_key to a variable set_fact: nginx_controller_api_key: "{{ctrl_globals.json.currentStatus.agentSettings.apiKey}}" - name: install the agent include_role: name: nginxinc.nginx_controller.nginx_controller_agent NGINX Controller 関連 c NGINX Controller コレクション NGINX Controller Agentインストール
  • 22.
  • 23.
    NGINX OSS インスタンス NGINX Plus インスタンス デモ環境:Red Hat Ansible Tower, NGINX Collections, AWS ⓪ GitHub Playbook ① Red Hat Ansible Tower ログイン ② AWS インスタンス作成ジョブ実行 ③ NGINX OSS ジョブ実行 ④ NGINX Plus ジョブ実行 ⑤ NGINX App Protect ジョブ実行 ⑥ NGINX Controller Agent ジョブ実行 ⑦ NGINX Controller から動作確認 amazon.aws.collection nginxinc.nginx_core nginxinc.nginx_controller playbook ⓪ ① ③ ④⑤⑥ ⑦ ②
  • 24.
  • 25.
  • 26.
    NGINX リバースプロキシ Drivers登録 microservice モバイル microservice PC向け microservice /api/f1/* /application01 /pc/circuits/* = /mobile/f1/seasons F1GET microservice TCP/UDP, HTTP/HTTPS, gRPC, コンテンツキャッシュ,アクセス制御、 レート制限
  • 27.
    NGINX Plusで追加されている機能 • ロードバランシング負荷分散アルゴリズム, セッション維持, L7ヘルスチェック • 動的設定変更 REST API, アップストリーム, SSL証明書, Key-Valueストア, キャッシュ削除 • 監視 REST API, ダッシュボード, Prometheus, DataDog/NewRelicエージェント対応 • 公式Dockerfile 公式ドキュメント, NGINX Plus Ingress Controller • 高可用性とクラスタリング HA構成, ステート情報の共有, クラウド環境スケールアップ/ダウン • 認証 OpenID, JWT • Webアプリケーションファイアウォール NGINX App Protect • 認定サードパーティ動的モジュール NGINX, コミュニティ, 認定ISV
  • 28.
    Public Cloudを補完するNGINX Plus① Public Cloudはトラフィック処理とセキュリティ機能について不足機能があり、 NGINX Plus が機能的に優れる点も多数 カテゴリ 機能 NGINX Plus AWS ALB AWS CLB AWS NLB Azure AG Azure LB トラフィック 処理 L4/L7負荷分散 ○ ○ ○ ○ ○ ○ 対応プロトコルの幅の広さ ◎ TCP, UDP, SSL, HTTP, HTTPS, gRPC, WebSocket △ HTTP, HTTPS バックエンド向けgRPC通信 未対応 ○ TCP, SSL, HTTP, HTTPS △ TCP △ HTTP, HTTPS ○ Basic SKU: TCP, HTTP Standard SKU: TCP, HTTP, HTTPS ロードバランシングルール ◎ ラウンドロビン、リーストコ ネクション、リーストタイム △ ラウンドロビンのみ △ ラウンドロビンのみ △ ハッシュベースルーティング のみ ○ ラウンドロビン、URL毎ルー ルベース △ ハッシュベースルーティング のみ セッション維持 ◎ Cookieセッション維持 △ クッキーのみ △ クッキーのみ × △ クッキーのみ ○ ハッシュ、ソースアドレス リーバスプロキシ ○ ○ × × ○ × SSLオフロード ◎ TLS v1.3対応 動的SSL証明書更新 幅広いCipher Suiteに対応可 ○ ○ × ○ × ゾーンをまたぐ負荷分散 ◎ ◎ ◎ ◎ ◎ ○ Standard SKUのみ L7レイヤーデータの解析 ◎ locationを利用 × × × × × クライアント証明書チェック ◎ × × × × ×
  • 29.
    カテゴリ 機能 NGINXPlus AWS ALB AWS CLB AWS NLB Azure AG Azure LB トラフィック 処理 送信元ソースIPアドレスの保持 ○ X-Forwarded-Forに挿入可能 ○ X-Forwarded-Forに挿入可能 ○ X-Forwarded-Forに挿入可能 ○ 送信元IPアドレスとポートの 書換えなし ○ X-Forwarded-Forに挿入可能 ○ WebSocket対応 ○ ○ × ○ ◎ × HTTP/2対応 ◎ ◎ × × ◎ × 流量制御(コネクションリミッ ト)+Sorryメッセージの表示 ◎ コネクションリミット、コネ クションレートリミット × × × ? ? 帯域制御 ◎ brotli/gzip圧縮 帯域制御など可 × × × ? ? HTTPキャッシュ ◎ REST APIを利用したキャッ シュクリアに対応 △ CloudFrontが必要 △ CloudFrontが必要 △ CloudFrontが必要 ? ? IPv6対応 ◎ ○ ○ × × ○ セキュリティ WAF追加 ◎ NGINX App Protectアドオン可 ○ × × ○ × FW追加 ◎ map, geo対応可能 × × × × × Public Cloudを補完するNGINX Plus ② Public Cloudはトラフィック処理とセキュリティ機能について不足機能があり、 NGINX Plus が機能的に優れる点も多数
  • 30.
    NGINX Plus 商用サブスクリプション •テクニカルサポート 受賞歴 (Steve Gold 9.7/10) 顧客満足度 • 定期的な機能追加更新 安定したサイクル (年約3回, 4月,9月,12月) • F5でテストされたソフトウェアバイナリ コミュニティ実証済み, NGINXによる追加テスト • プロアクティブなセキュリティ更新プログラム セキュリティパッチ, ホットフィックスの提供 • 機密性 公開フォーラムではなく、プライベートでのサポート • 製品の方向性に影響を与える ロードマップ, 製品開発チームへのアクセス • 商用サブスクリプションの有効期限が切れた場合 • NGINX Plusは正常に動作し続けます. • 最新版アップデートが不可となります. • サブスクリプション更新後は最新版アップデートが可能です.
  • 31.
  • 32.
    NGINX App Protect ワールドワイドで実績豊富なF5製WAFの機能を移植 (Signature/DataGuard/HTTPCompliance/Evasion Techniques等)Secure Manage CI/CD Friendly NGINXの動的モジュールとして提供(現在、NGINX Plusのみ対応) • 仮想マシン/コンテナの双方で動作可能 • ゲートウェイ型/ホスト型 • NGINX Ingress Controller サポート (v1.8.0) 軽量なため、CI/CDパイプライン上でのデプロイが容易 2020年5月リリース https://www.nginx.co.jp/products/nginx-app-protect/
  • 33.
    NGINX App Protect標準セキュリティポリシー Drivers登録 microservice Circuits microservice Seasons microservice /api/f1/* /application01 /api/circuits/* =/api/f1/seasons F1 GET microservice https://docs.nginx.com/nginx-app-protect/configuration/ • OWASP Top 10 シグネチャ & CVEs • メタ文字チェック • HTTPプロトコル標準 • Evasionテクニック • 不許可ファイルアップロード検知 (bin, cgi, cmd, com, dll, exe, msi, sys, shtm, shtml, stm等) • セキュリティスコア検知 • Cookie改ざん • JSON & XML文法 • Data Guard & 重要パラメータ
  • 34.
    デモリクエスト – example.com http://www.example.com/index.html?a=<script>aaa</script> XSS– クロスサイトスクリプティング JavaScript SQLインジェクション http://www.example.com/products?category=Gifts%27+OR+1=1--
  • 35.
    Advanced Load Balancing Advanced Content Cache Web Server Reverse Proxy andCache Advanced Monitoring & Management Advanced Security Controls NGINX Controller NGINX Plus インスタンスを大規模にデプロイ、監視、管理するための、 高パフォーマンス、クラウドネイティブAPIソリューション
  • 36.
  • 37.
  • 38.
  • 39.
    NGINX ドキュメントとコンテンツ https://nginx.com/ https://docs.nginx.com/ RESOURCEBLOG https://nginx.co.jp/ リソース ブログ https://nginx.org/en/docs/ https://nginx.org/en/docs/dirindex.html
  • 40.
    無料トライアル https://www.nginx.co.jp/free-trial-request/ https://www.nginx.co.jp/free-trial-request-nginx-controller/ NGINX Plus, NGINXApp Protect 無料トライアル NGINX Plusは、オールインワン型のソフトウェアロードバランサ、コンテンツキャッシュ、 Webサーバ、APIゲートウェイ、マイクロサービスプロキシです。NGINX App Protect は、業界トップクラスのF5の高度なWAFテクノロジーをNGINX Plusに搭載し最新の アプリケーションセキュリティを提供します。この2つの技術の融合により、最新の分散型 環境におけるWeb/モバイルアプリケーションの拡張性と保護が実現します。 NGINX Controllerの評価版 NGINX Controllerは、NGINXデータプレーンを管理するNGINXのコントロールプ レーンソリューションです。マルチクラウド環境でロードバランサ―、APIゲートウェイ、およ びサービスメッシュのスケーラブルな実装を容易に集中管理することができます。 お申し込みのお客様向けに、NGINX Controllerの無償評価版をご用意しています。 NGINX Plus無料トライアル NGINX Controller 無料トライアル
  • 41.