SlideShare una empresa de Scribd logo
1 de 39
NGINX Service Mesh
(NSM)
F5ネットワークス合同会社
NGINX テクニカルソリューションズアーキテクト
鈴木孝彰
| ©2020 F52
本日のアジェンダ
• NGINX 製品ご紹介
• サービスメッシュについて
• NGINX Service Mesh について
• デモ: NGINX Service Mesh on Google Cloud GKE
• まとめ
• Q/A, その他
| ©2020 F53
主要パブリッククラウド 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
本日のご紹介範囲
| ©2020 F54
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
| ©2020 F55
DELIVERING MODERN APPLICATIONS AT SCALE ACROSS SEAMLESSLY ACROSS MULTI-CLOUD
NGINX Plus
All-In-One Software
ロードバランサー、コンテンツキャッシュ、
Webサーバ
安定、高速、高機能
必要となるリソースは最小
NGINX Controller
NGINX+統合管理ソフトウェア
NGINX+のロードバランサやAPI
Gateway、更にマルチクラウド環境に
おいても容易に管理が可能。
GUI/CLIに加えAPIでの制御が可能
NGINX Unit
NGINXが開発する新しいダイナミック
アプリケーションサーバ
OSSで提供されており、複数の
プログラミング言語をサポート。
NGINX UnitはREST APIを用いて
設定変更が可能
NGINX製品
| ©2020 F56
DELIVERING MODERN APPLICATIONS AT SCALE ACROSS SEAMLESSLY ACROSS MULTI-CLOUD
NGINX Service Mesh
NGINX Plusで複雑な
マイクロサービス、アプリケーション間の
通信問題を解決するシンプルな
サービスメッシュソリューション。
Amazon EKS
Google Cloud GKE
Azure AKS対応
NGINX App Protect
アプリケーションに特化した
Web Application Firewall
NGINX+にシームレスに統合可能な
新しいWAF。 F5の実績に基づき、
高速な高品質なWAFを実現
NEW
NGINX製品
NGINX Ingress
Controller
Kubernetes環境への
外部アクセスをコントロール。
NGINX機能をIngressリソース
を通じて管理可能。
NGINX App Protect対応
NEW
| ©2020 F57
NGINXによるアプリケーションモダナイズ例
NGINXの特性を生かし、
アプリ開発者はアプリの開発に注力し、セキュリティも担保できる基盤を実現する案。
APIマネジメント
モニタリング
自動化
WAF
サービスメッシュ
Docker
Kubernetes
マルチクラウド
HTTP/HTTPS
レート/アクセス制限
軽量/高速処理
コンテンツキャッシュ
従来型アプリケーション
マイクロサービス
パブリッククラウド
| ©2020 F58
NGINXの特性を生かし、
アプリ開発者はアプリの開発に注力し、セキュリティも担保できる基盤を実現する案。
APIマネジメント
モニタリング
自動化
WAF
サービスメッシュ
Docker
Kubernetes
マルチクラウド
HTTP/HTTPS
レート/アクセス制限
軽量/高速処理
コンテンツキャッシュ
NGINXによるアプリケーションモダナイズ例
従来型アプリケーション
マイクロサービス
パブリッククラウド
| ©2020 F59
サービスメッシュについて
| ©2020 F510
サービス メッシュ
サービス メッシュはアプリ間トラフィック管理, テレメトリー収集をします.
Istioはオープンプラットフォーム
トラフィック管理
ポリシー適用
テレメトリー収集
https://developer.ibm.com/jp/videos/new-builders-istio4/
マイクロサービス マイクロサービス
サービスメッシュは、アプリケーションのネットワーク機能を柔軟かつ簡単に自動化し透過で開発言語に依存せず提供します.
マイクロサービスを接続, モニタリング, 保護するオープンプ
ラットフォーム
https://cloud.google.com/istio
設定管理
| ©2020 F511
サービス メッシュ
サービス メッシュはアプリ間トラフィック管理, テレメトリー収集をします.
セキュアトラフィック
エンドツーエンド暗号化(相互 TLS/mTLS), ACL
すべてのサービス トラフィックの管理
ロードバランス, サーキットブレーカ, B|G, レート制限
オーケストレーション
インジェクションとサイドカー管理, k8s API統合
トラフィックの測定
トランザクション・トレースとリアルタイム・モニタリング
Istioはオープンプラットフォーム
トラフィック管理
ポリシー適用
テレメトリー収集
https://developer.ibm.com/jp/videos/new-builders-istio4/
マイクロサービス マイクロサービス
設定管理
| ©2020 F512
サービス メッシュは実際に何をしますか?
© 2017 F5 Networks
• サイドカープロキシ
コントロールプレーン (istio)
データプレーン (envoy)
• オーケストレーション
• ポリシー管理
• ポリシー適用
• モニタリング
設定管理
マイクロサービス マイクロサービス
| ©2020 F513
Kubenetes Cluster
NGINX Service Mesh
マイクロサービスに対してセキュリティとモニタリングを提供
L7 Logic (Ingress)
L3 – L7 Network
Management ==
Service Mesh
Ingress
Traffic
foo.mydomain.com foo.mydomain.com/bar
Service
Pod Pod Pod
Service Service
OTHER
Pod Pod Pod Pod Pod Pod
| ©2020 F514
Kubenetes Cluster
NGINX Service Mesh
マイクロサービスに対してセキュリティとモニタリングを提供
L7 Logic (Ingress)
L3 – L7 Network
Management ==
Service Mesh
Ingress
Traffic
foo.mydomain.com foo.mydomain.com/bar
Service
Pod Pod Pod
Service Service
OTHER
NGINX Ingress Controller
外部アクセス制御
Pod Pod Pod Pod Pod Pod
NGINX Service Mesh
アプリケーション間通信制御
| ©2020 F515
Kubenetes Cluster
NGINX Service Mesh
マイクロサービスに対してセキュリティとモニタリングを提供
L7 Logic (Ingress)
L3 – L7 Network
Management ==
Service Mesh
Ingress
Traffic
foo.mydomain.com foo.mydomain.com/bar
Service
Pod Pod Pod
Service Service
OTHER
NGINX Ingress Controller
外部アクセス制御
Pod Pod Pod Pod Pod Pod
NGINX Service Mesh
アプリケーション間通信制御
サイドカー
| ©2020 F516
サイドカーとは何ですか?
© 2017 F5
Networks
サイドカーは, アプリケーションコンテナ (同じポッド)
に配置され, そのアプリケーションコンテナへの全ての
送受信ネットワークルーティングを提供するリバース
プロキシになります.
アプリケーション
デプロイメント
Pod
| ©2020 F517
アプリポッド内のコンテナ
サービスメッシュは、サイドカーインジェクションを介して同じポッド内のア
プリコンテナにサイドカーを自動/手動で関連付けます.
(istioctl kube-inject, nginx-meshctl inject)
サイドカーコンテナはポッド内のアプリサービスコンテナーにアタッチされま
す. (Multi Container, initContainer, sidecar-container)
アプリに「トラフィック制御, アクセス制限, 外部通信を許可する」という
メッシュポリシーを適用することが可能です。
(kubectl apply –f policy.yaml)
ポリシーとアーキテクチャは, コントロール プレーンを介して定義と設定
(SMI), コントロールプレーン設定(ConfigMap)のコンボで管理されます。
サイドカーとは何ですか?
アプリケーションA
Pod
アプリケーションB
Pod
通信制御: ポリシー
| ©2020 F518
サービス メッシュは実際に何をしますか?
© 2017 F5 Networks
• サイドカープロキシ
コントロールプレーン (istio)
データプレーン (envoy)
• オーケストレーション
• ポリシー管理
• ポリシー適用
• モニタリング
通信制御: ポリシー
マイクロサービス マイクロサービス
設定管理
| ©2020 F519
NGINX Service Meshについて
| ©2020 F520
NGINX Service Mesh 概要
データプレーン
NGINX Plus
コントロールプレーン
NGINX Service Mesh
| ©2020 F521
NGINX Service Mesh 概要
• NSM は Kubernetes クラスタ内で動作します。
• 任意のK8sクラスタプラットフォームをサポート
(AWS EKS, Azure AKS, Google GKE, kubeadm)
• サービスへの入力/出力トラフィックを安全に管理
• 各ネームスペースで自動/手動イジェクト適用可能
• ポート番号でNSM適用除外指定が可能
ExternalName
Egress対応
| ©2020 F522
データプレーンコントロールプレーン
• SPIRE, mTLS SSL証明書キーストア
• OpenTracing, システム全体としての振る舞いを把握
• Zipkin, Jaegerトレースツール対応
• Prometheus, メトリック収集と保存
• Grafana, 組込ダッシュボードツール
• NATS, メッセージング, サイドカー設定更新や情報交換
• CLI/API, CI/CD連携が可能
NGINX Plus (http, stream, js, opentracing)
NGINX Service Mesh動的モジュール開発実装
Egress対応
NGINX Service Mesh 構成コンポーネント
mTLSログ・トレース
サイドカー
ExternalName
| ©2020 F523
NGINX Service Mesh ポリシー
https://github.com/servicemeshinterface/smi-spec
kind: ServiceEntry
kind: DestinationRule
kind: VirtualService
kind: Gateway
https://smi-spec.io/
apiVersion: specs.smi-spec.io/v1alpha1
kind: TrafficTarget
kind: CircuitBreaker
kind: RateLimit
kind: TrafficSplit
https://www.youtube.com/watch?v=0cgTHQFXYPQ
apiVersion: networking.istio.io/v1alpha3
| ©2020 F524
NGINX Service Mesh ポリシー
Service Mesh Policy 概要
トラフィックポリシー
トラフィック分割 (Canary, A/Bテスト, B|G, 重み付け)
レート制限 (1r/s, 30r/m)
サーキットブレーカー (エラー数で遮断, 待機時間)
アクセスポリシー アクセス制御
(ベースURL, L7リクエストパス, L7リクエストメソッド, HTTPヘッダ)
セキュリティポリシー
SSL証明書/終端 (mTLS, デフォルト自己証明書)
NGINX Ingress Controller連携 (mTLS, Ingress/Egress)
| ©2020 F525
NGINX Service Mesh - SMI
トラフィック制御例 https://github.com/servicemeshinterface/smi-spec
apiVersion: split.smi-spec.io/v1alpha3
kind: TrafficSplit
metadata:
name: reviews-ts
namespace: bookinfo
spec:
service: reviews
backends:
- service: reviews-v2
weight: 90
- service: reviews-v3
weight: 10
ProductPage
Reviews-v2
Reviews-v3
トラフィック分割
90%
10%
| ©2020 F526
NGINX Service Mesh - SMI
アクセス制御例
apiVersion: access.smi-spec.io/v1alpha2
kind: TrafficTarget
metadata:
name: traffic-target
spec:
destination:
kind: ServiceAccount
name: destination-app
rules:
- kind: HTTPRouteGroup
name: route-group
matches:
- destination-traffic
sources:
- kind: ServiceAccount
name: source-app
apiVersion: specs.smi-spec.io/v1alpha3
kind: HTTPRouteGroup
metadata:
name: route-group
spec:
matches:
- name: destination-traffic
methods:
- GET
pathRegex: "/echo”
headers:
- X-Demo-1: "^demo-1$”
- X-Demo-2: "demo”
https://github.com/servicemeshinterface/smi-spec
アクセス制御
| ©2020 F527
NGINX Service Mesh - SMI
トラフィック制御例 https://github.com/servicemeshinterface/smi-spec
apiVersion: specs.smi-spec.io/v1alpha1
kind: RateLimit
metadata:
name: target-service-rate-limit
namespace: bookinfo
spec:
destination:
kind: Service
name: reviews
namespace: bookinfo
sources:
- kind: Deployment
name: productpage-v1
namespace: bookinfo
name: 10rs
rate: 10r/s
burst: 5
delay: nodelay
ProductPage
Reviews
レート制限
| ©2020 F528
NGINX Service Mesh - SMI
サーキットブレーカー例 https://github.com/servicemeshinterface/smi-spec
apiVersion: specs.smi-spec.io/v1alpha1
kind: CircuitBreaker
metadata:
name: circuit-breaker-example
namespace: bookinfo
spec:
destination:
kind: Service
name: reviews-v1
namespace: bookinfo
errors: 1
timeoutSeconds: 1
fallback:
service: bookinfo/reviews-v3
port: 9080
ProductPage
Reviews-v2
Reviews-v3
Reviews-v1
サーキットブレーカー
❌
| ©2020 F529
Istio と NGINX Service Mesh
o 概念とレイヤーが増えるので、ネットワークは複雑になってくる.
o Service MeshデータプレーンはNGINX基本機能と専用モジュールで実現.
o データプレーンやログがNGINXなので属人化しにくい.
o マルチクラウドで共通のNSM環境が利用が可能
o NGINXパフォーマンスはサイジング可能.
o SMI仕様を共有利用できるので運用難度を軽減.
o F5 NGINXサポートで導入しやすい.
o ロードマップにより破壊的アップデートを避け安定リリース.
istioctl
nginx-meshctl
o 概念とレイヤーが増える、ネットワークは複雑になってくる
o 高機能、高い知名度
o K8s, Nomad, Consul 様々なオーケストレーション
o 独自のサービスメッシュ環境を構築
o 学習コストが高く属人化しやすい
o 運用負荷が高い
o コミュニティが活発、陳腐化しやすい
o Google, IBM, Amazonなどでマネージドメッシュサービス
| ©2020 F530
なぜNGINXサービスメッシュ?
• マイクロサービストラフィック管理とセキュリティの完全な管理
• アプリ間(サイドカー)と外部(NGINX KIC)のIngressとEgressを制御
• ポリシーの定義、暗号化の適用、トラフィック制御が可能
• 簡単に導入が可能、プラットフォームや人的リソースに依存しない
• 必要なものはすべて含まれており、断片的に導入する必要はありません
• あらゆるK8s環境で、どこでも実行
• NGINXを知っているエンジニアが扱える
• データプレーンに強み
• コンテナトラフィック管理に世界最高のリバースプロキシをもたらします
| ©2020 F531
デモ: NGINX Service Mesh
+ Google Cloud GKE
| ©2020 F532
デモ: NGINX Service Mesh
Bookinfo
ProductPage
Internet
Ingress
Bookinfo
Reviews
NGINX Service Mesh
CLI
Grafana
Zipkin
Cloud Shell
トラフィック制御
Web browser
productpage.takaaki-nginx.xyz
| ©2020 F533
デモ: NGINX Service Mesh
トラフィック分割
サーキットブレーカー
productpage.takaaki-nginx.xyz
| ©2020 F534
NGINX Service Mesh - SMI
トラフィック分割例 https://github.com/servicemeshinterface/smi-spec
apiVersion: split.smi-spec.io/v1alpha3
kind: TrafficSplit
metadata:
name: reviews-ts
namespace: bookinfo
spec:
service: reviews
backends:
- service: reviews-v2
weight: 50
- service: reviews-v3
weight: 50
ProductPage
Reviews-v2
Reviews-v3
Reviews-v1
トラフィック分割
| ©2020 F535
NGINX Service Mesh - SMI
サーキットブレーカー例 https://github.com/servicemeshinterface/smi-spec
apiVersion: specs.smi-spec.io/v1alpha1
kind: CircuitBreaker
metadata:
name: circuit-breaker-example
namespace: bookinfo
spec:
destination:
kind: Service
name: reviews-v1
namespace: bookinfo
errors: 1
timeoutSeconds: 1
fallback:
service: bookinfo/reviews-v3
port: 9080
ProductPage
Reviews-v2
Reviews-v3
Reviews-v1
サーキットブレーカー
❌
| ©2020 F536
NGINX SERVICE MESHはマルチクラウド環境で一貫性と信頼性、セキュリティを提供します
まとめ: 複数のクラウドにサービスメッシュを展開する
Hybrid
Cloud
一貫したインフラストラクチャ
一貫した機能設定
新しいアーキテクチャを有効にする
迅速な統合
プラットフォームの移植性
効率的なテスト
アプリケーションの再プラットフォーム
セキュリテイレベルの向上
| ©2020 F537
無料ダウンロード
https://www.nginx.co.jp/products/nginx-service-mesh/
NGINX Service Mesh
無料ダウンロード
NGINX Service Meshは、NGINX Plusデータプレーンのみに特化した制御プレー
ンをゼロから構築することで、大量かつ安全なコンテナ・トラフィック管理のために設計され
た高度に最適化されたサービス・メッシュを提供します。 開発リリースを無料ダウンロード
していただけます。ダウンロードしていただき何か問題点やお気づきの場合にはGitHubに
てお問い合わせいただけます。
NGINX Service Mesh ダウンロード
https://www.nginx.co.jp/free-trial-request/
NGINX Plus, NGINX App Protect
無料トライアル
NGINX Plusは、オールインワン型のソフトウェアロードバランサ、コンテンツキャッシュ、
Webサーバ、APIゲートウェイ、マイクロサービスプロキシです。NGINX App Protect
は、業界トップクラスのF5の高度なWAFテクノロジーをNGINX Plusに搭載し最新の
アプリケーションセキュリティを提供します。この2つの技術の融合により、最新の分散型
環境におけるWeb/モバイルアプリケーションの拡張性と保護が実現します。
NGINX Plus無料トライアル
| ©2020 F539

Más contenido relacionado

Más de NGINX, Inc.

Unit 1: Apply the Twelve-Factor App to Microservices Architectures
Unit 1: Apply the Twelve-Factor App to Microservices ArchitecturesUnit 1: Apply the Twelve-Factor App to Microservices Architectures
Unit 1: Apply the Twelve-Factor App to Microservices ArchitecturesNGINX, Inc.
 
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!NGINX, Inc.
 
Easily View, Manage, and Scale Your App Security with F5 NGINX
Easily View, Manage, and Scale Your App Security with F5 NGINXEasily View, Manage, and Scale Your App Security with F5 NGINX
Easily View, Manage, and Scale Your App Security with F5 NGINXNGINX, Inc.
 
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!NGINX, Inc.
 
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINX
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINXKeep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINX
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINXNGINX, Inc.
 
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...NGINX, Inc.
 
Protecting Apps from Hacks in Kubernetes with NGINX
Protecting Apps from Hacks in Kubernetes with NGINXProtecting Apps from Hacks in Kubernetes with NGINX
Protecting Apps from Hacks in Kubernetes with NGINXNGINX, Inc.
 
NGINX Kubernetes API
NGINX Kubernetes APINGINX Kubernetes API
NGINX Kubernetes APINGINX, Inc.
 
Successfully Implement Your API Strategy with NGINX
Successfully Implement Your API Strategy with NGINXSuccessfully Implement Your API Strategy with NGINX
Successfully Implement Your API Strategy with NGINXNGINX, Inc.
 
Installing and Configuring NGINX Open Source
Installing and Configuring NGINX Open SourceInstalling and Configuring NGINX Open Source
Installing and Configuring NGINX Open SourceNGINX, Inc.
 
Shift Left for More Secure Apps with F5 NGINX
Shift Left for More Secure Apps with F5 NGINXShift Left for More Secure Apps with F5 NGINX
Shift Left for More Secure Apps with F5 NGINXNGINX, Inc.
 
How to Avoid the Top 5 NGINX Configuration Mistakes.pptx
How to Avoid the Top 5 NGINX Configuration Mistakes.pptxHow to Avoid the Top 5 NGINX Configuration Mistakes.pptx
How to Avoid the Top 5 NGINX Configuration Mistakes.pptxNGINX, Inc.
 
Kubernetes環境で実現するWebアプリケーションセキュリティ
Kubernetes環境で実現するWebアプリケーションセキュリティKubernetes環境で実現するWebアプリケーションセキュリティ
Kubernetes環境で実現するWebアプリケーションセキュリティNGINX, Inc.
 
Software Delivery and the Rube Goldberg Machine: What Is the Problem We Are T...
Software Delivery and the Rube Goldberg Machine: What Is the Problem We Are T...Software Delivery and the Rube Goldberg Machine: What Is the Problem We Are T...
Software Delivery and the Rube Goldberg Machine: What Is the Problem We Are T...NGINX, Inc.
 
Open Sourcing NGINX Agent and Demo
Open Sourcing NGINX Agent and DemoOpen Sourcing NGINX Agent and Demo
Open Sourcing NGINX Agent and DemoNGINX, Inc.
 
NGINX, Open Source, and You – Another Decade of Innovation
NGINX, Open Source, and You – Another Decade of InnovationNGINX, Open Source, and You – Another Decade of Innovation
NGINX, Open Source, and You – Another Decade of InnovationNGINX, Inc.
 
A Guide to Adopting Kubernetes
A Guide to Adopting KubernetesA Guide to Adopting Kubernetes
A Guide to Adopting KubernetesNGINX, Inc.
 
An Open Source Community Behind Your Firewall – Improving Developer Productiv...
An Open Source Community Behind Your Firewall – Improving Developer Productiv...An Open Source Community Behind Your Firewall – Improving Developer Productiv...
An Open Source Community Behind Your Firewall – Improving Developer Productiv...NGINX, Inc.
 
The Future of Kubernetes Connectivity
The Future of Kubernetes ConnectivityThe Future of Kubernetes Connectivity
The Future of Kubernetes ConnectivityNGINX, Inc.
 
OpenTelemetry 101 FTW
OpenTelemetry 101 FTWOpenTelemetry 101 FTW
OpenTelemetry 101 FTWNGINX, Inc.
 

Más de NGINX, Inc. (20)

Unit 1: Apply the Twelve-Factor App to Microservices Architectures
Unit 1: Apply the Twelve-Factor App to Microservices ArchitecturesUnit 1: Apply the Twelve-Factor App to Microservices Architectures
Unit 1: Apply the Twelve-Factor App to Microservices Architectures
 
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
 
Easily View, Manage, and Scale Your App Security with F5 NGINX
Easily View, Manage, and Scale Your App Security with F5 NGINXEasily View, Manage, and Scale Your App Security with F5 NGINX
Easily View, Manage, and Scale Your App Security with F5 NGINX
 
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
 
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINX
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINXKeep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINX
Keep Ahead of Evolving Cyberattacks with OPSWAT and F5 NGINX
 
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
 
Protecting Apps from Hacks in Kubernetes with NGINX
Protecting Apps from Hacks in Kubernetes with NGINXProtecting Apps from Hacks in Kubernetes with NGINX
Protecting Apps from Hacks in Kubernetes with NGINX
 
NGINX Kubernetes API
NGINX Kubernetes APINGINX Kubernetes API
NGINX Kubernetes API
 
Successfully Implement Your API Strategy with NGINX
Successfully Implement Your API Strategy with NGINXSuccessfully Implement Your API Strategy with NGINX
Successfully Implement Your API Strategy with NGINX
 
Installing and Configuring NGINX Open Source
Installing and Configuring NGINX Open SourceInstalling and Configuring NGINX Open Source
Installing and Configuring NGINX Open Source
 
Shift Left for More Secure Apps with F5 NGINX
Shift Left for More Secure Apps with F5 NGINXShift Left for More Secure Apps with F5 NGINX
Shift Left for More Secure Apps with F5 NGINX
 
How to Avoid the Top 5 NGINX Configuration Mistakes.pptx
How to Avoid the Top 5 NGINX Configuration Mistakes.pptxHow to Avoid the Top 5 NGINX Configuration Mistakes.pptx
How to Avoid the Top 5 NGINX Configuration Mistakes.pptx
 
Kubernetes環境で実現するWebアプリケーションセキュリティ
Kubernetes環境で実現するWebアプリケーションセキュリティKubernetes環境で実現するWebアプリケーションセキュリティ
Kubernetes環境で実現するWebアプリケーションセキュリティ
 
Software Delivery and the Rube Goldberg Machine: What Is the Problem We Are T...
Software Delivery and the Rube Goldberg Machine: What Is the Problem We Are T...Software Delivery and the Rube Goldberg Machine: What Is the Problem We Are T...
Software Delivery and the Rube Goldberg Machine: What Is the Problem We Are T...
 
Open Sourcing NGINX Agent and Demo
Open Sourcing NGINX Agent and DemoOpen Sourcing NGINX Agent and Demo
Open Sourcing NGINX Agent and Demo
 
NGINX, Open Source, and You – Another Decade of Innovation
NGINX, Open Source, and You – Another Decade of InnovationNGINX, Open Source, and You – Another Decade of Innovation
NGINX, Open Source, and You – Another Decade of Innovation
 
A Guide to Adopting Kubernetes
A Guide to Adopting KubernetesA Guide to Adopting Kubernetes
A Guide to Adopting Kubernetes
 
An Open Source Community Behind Your Firewall – Improving Developer Productiv...
An Open Source Community Behind Your Firewall – Improving Developer Productiv...An Open Source Community Behind Your Firewall – Improving Developer Productiv...
An Open Source Community Behind Your Firewall – Improving Developer Productiv...
 
The Future of Kubernetes Connectivity
The Future of Kubernetes ConnectivityThe Future of Kubernetes Connectivity
The Future of Kubernetes Connectivity
 
OpenTelemetry 101 FTW
OpenTelemetry 101 FTWOpenTelemetry 101 FTW
OpenTelemetry 101 FTW
 

NGINX Service Mesh - SMI Japanese Webinar

  • 1. NGINX Service Mesh (NSM) F5ネットワークス合同会社 NGINX テクニカルソリューションズアーキテクト 鈴木孝彰
  • 2. | ©2020 F52 本日のアジェンダ • NGINX 製品ご紹介 • サービスメッシュについて • NGINX Service Mesh について • デモ: NGINX Service Mesh on Google Cloud GKE • まとめ • Q/A, その他
  • 3. | ©2020 F53 主要パブリッククラウド 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. | ©2020 F54 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
  • 5. | ©2020 F55 DELIVERING MODERN APPLICATIONS AT SCALE ACROSS SEAMLESSLY ACROSS MULTI-CLOUD NGINX Plus All-In-One Software ロードバランサー、コンテンツキャッシュ、 Webサーバ 安定、高速、高機能 必要となるリソースは最小 NGINX Controller NGINX+統合管理ソフトウェア NGINX+のロードバランサやAPI Gateway、更にマルチクラウド環境に おいても容易に管理が可能。 GUI/CLIに加えAPIでの制御が可能 NGINX Unit NGINXが開発する新しいダイナミック アプリケーションサーバ OSSで提供されており、複数の プログラミング言語をサポート。 NGINX UnitはREST APIを用いて 設定変更が可能 NGINX製品
  • 6. | ©2020 F56 DELIVERING MODERN APPLICATIONS AT SCALE ACROSS SEAMLESSLY ACROSS MULTI-CLOUD NGINX Service Mesh NGINX Plusで複雑な マイクロサービス、アプリケーション間の 通信問題を解決するシンプルな サービスメッシュソリューション。 Amazon EKS Google Cloud GKE Azure AKS対応 NGINX App Protect アプリケーションに特化した Web Application Firewall NGINX+にシームレスに統合可能な 新しいWAF。 F5の実績に基づき、 高速な高品質なWAFを実現 NEW NGINX製品 NGINX Ingress Controller Kubernetes環境への 外部アクセスをコントロール。 NGINX機能をIngressリソース を通じて管理可能。 NGINX App Protect対応 NEW
  • 10. | ©2020 F510 サービス メッシュ サービス メッシュはアプリ間トラフィック管理, テレメトリー収集をします. Istioはオープンプラットフォーム トラフィック管理 ポリシー適用 テレメトリー収集 https://developer.ibm.com/jp/videos/new-builders-istio4/ マイクロサービス マイクロサービス サービスメッシュは、アプリケーションのネットワーク機能を柔軟かつ簡単に自動化し透過で開発言語に依存せず提供します. マイクロサービスを接続, モニタリング, 保護するオープンプ ラットフォーム https://cloud.google.com/istio 設定管理
  • 11. | ©2020 F511 サービス メッシュ サービス メッシュはアプリ間トラフィック管理, テレメトリー収集をします. セキュアトラフィック エンドツーエンド暗号化(相互 TLS/mTLS), ACL すべてのサービス トラフィックの管理 ロードバランス, サーキットブレーカ, B|G, レート制限 オーケストレーション インジェクションとサイドカー管理, k8s API統合 トラフィックの測定 トランザクション・トレースとリアルタイム・モニタリング Istioはオープンプラットフォーム トラフィック管理 ポリシー適用 テレメトリー収集 https://developer.ibm.com/jp/videos/new-builders-istio4/ マイクロサービス マイクロサービス 設定管理
  • 12. | ©2020 F512 サービス メッシュは実際に何をしますか? © 2017 F5 Networks • サイドカープロキシ コントロールプレーン (istio) データプレーン (envoy) • オーケストレーション • ポリシー管理 • ポリシー適用 • モニタリング 設定管理 マイクロサービス マイクロサービス
  • 13. | ©2020 F513 Kubenetes Cluster NGINX Service Mesh マイクロサービスに対してセキュリティとモニタリングを提供 L7 Logic (Ingress) L3 – L7 Network Management == Service Mesh Ingress Traffic foo.mydomain.com foo.mydomain.com/bar Service Pod Pod Pod Service Service OTHER Pod Pod Pod Pod Pod Pod
  • 14. | ©2020 F514 Kubenetes Cluster NGINX Service Mesh マイクロサービスに対してセキュリティとモニタリングを提供 L7 Logic (Ingress) L3 – L7 Network Management == Service Mesh Ingress Traffic foo.mydomain.com foo.mydomain.com/bar Service Pod Pod Pod Service Service OTHER NGINX Ingress Controller 外部アクセス制御 Pod Pod Pod Pod Pod Pod NGINX Service Mesh アプリケーション間通信制御
  • 15. | ©2020 F515 Kubenetes Cluster NGINX Service Mesh マイクロサービスに対してセキュリティとモニタリングを提供 L7 Logic (Ingress) L3 – L7 Network Management == Service Mesh Ingress Traffic foo.mydomain.com foo.mydomain.com/bar Service Pod Pod Pod Service Service OTHER NGINX Ingress Controller 外部アクセス制御 Pod Pod Pod Pod Pod Pod NGINX Service Mesh アプリケーション間通信制御 サイドカー
  • 16. | ©2020 F516 サイドカーとは何ですか? © 2017 F5 Networks サイドカーは, アプリケーションコンテナ (同じポッド) に配置され, そのアプリケーションコンテナへの全ての 送受信ネットワークルーティングを提供するリバース プロキシになります. アプリケーション デプロイメント Pod
  • 17. | ©2020 F517 アプリポッド内のコンテナ サービスメッシュは、サイドカーインジェクションを介して同じポッド内のア プリコンテナにサイドカーを自動/手動で関連付けます. (istioctl kube-inject, nginx-meshctl inject) サイドカーコンテナはポッド内のアプリサービスコンテナーにアタッチされま す. (Multi Container, initContainer, sidecar-container) アプリに「トラフィック制御, アクセス制限, 外部通信を許可する」という メッシュポリシーを適用することが可能です。 (kubectl apply –f policy.yaml) ポリシーとアーキテクチャは, コントロール プレーンを介して定義と設定 (SMI), コントロールプレーン設定(ConfigMap)のコンボで管理されます。 サイドカーとは何ですか? アプリケーションA Pod アプリケーションB Pod 通信制御: ポリシー
  • 18. | ©2020 F518 サービス メッシュは実際に何をしますか? © 2017 F5 Networks • サイドカープロキシ コントロールプレーン (istio) データプレーン (envoy) • オーケストレーション • ポリシー管理 • ポリシー適用 • モニタリング 通信制御: ポリシー マイクロサービス マイクロサービス 設定管理
  • 19. | ©2020 F519 NGINX Service Meshについて
  • 20. | ©2020 F520 NGINX Service Mesh 概要 データプレーン NGINX Plus コントロールプレーン NGINX Service Mesh
  • 21. | ©2020 F521 NGINX Service Mesh 概要 • NSM は Kubernetes クラスタ内で動作します。 • 任意のK8sクラスタプラットフォームをサポート (AWS EKS, Azure AKS, Google GKE, kubeadm) • サービスへの入力/出力トラフィックを安全に管理 • 各ネームスペースで自動/手動イジェクト適用可能 • ポート番号でNSM適用除外指定が可能 ExternalName Egress対応
  • 22. | ©2020 F522 データプレーンコントロールプレーン • SPIRE, mTLS SSL証明書キーストア • OpenTracing, システム全体としての振る舞いを把握 • Zipkin, Jaegerトレースツール対応 • Prometheus, メトリック収集と保存 • Grafana, 組込ダッシュボードツール • NATS, メッセージング, サイドカー設定更新や情報交換 • CLI/API, CI/CD連携が可能 NGINX Plus (http, stream, js, opentracing) NGINX Service Mesh動的モジュール開発実装 Egress対応 NGINX Service Mesh 構成コンポーネント mTLSログ・トレース サイドカー ExternalName
  • 23. | ©2020 F523 NGINX Service Mesh ポリシー https://github.com/servicemeshinterface/smi-spec kind: ServiceEntry kind: DestinationRule kind: VirtualService kind: Gateway https://smi-spec.io/ apiVersion: specs.smi-spec.io/v1alpha1 kind: TrafficTarget kind: CircuitBreaker kind: RateLimit kind: TrafficSplit https://www.youtube.com/watch?v=0cgTHQFXYPQ apiVersion: networking.istio.io/v1alpha3
  • 24. | ©2020 F524 NGINX Service Mesh ポリシー Service Mesh Policy 概要 トラフィックポリシー トラフィック分割 (Canary, A/Bテスト, B|G, 重み付け) レート制限 (1r/s, 30r/m) サーキットブレーカー (エラー数で遮断, 待機時間) アクセスポリシー アクセス制御 (ベースURL, L7リクエストパス, L7リクエストメソッド, HTTPヘッダ) セキュリティポリシー SSL証明書/終端 (mTLS, デフォルト自己証明書) NGINX Ingress Controller連携 (mTLS, Ingress/Egress)
  • 25. | ©2020 F525 NGINX Service Mesh - SMI トラフィック制御例 https://github.com/servicemeshinterface/smi-spec apiVersion: split.smi-spec.io/v1alpha3 kind: TrafficSplit metadata: name: reviews-ts namespace: bookinfo spec: service: reviews backends: - service: reviews-v2 weight: 90 - service: reviews-v3 weight: 10 ProductPage Reviews-v2 Reviews-v3 トラフィック分割 90% 10%
  • 26. | ©2020 F526 NGINX Service Mesh - SMI アクセス制御例 apiVersion: access.smi-spec.io/v1alpha2 kind: TrafficTarget metadata: name: traffic-target spec: destination: kind: ServiceAccount name: destination-app rules: - kind: HTTPRouteGroup name: route-group matches: - destination-traffic sources: - kind: ServiceAccount name: source-app apiVersion: specs.smi-spec.io/v1alpha3 kind: HTTPRouteGroup metadata: name: route-group spec: matches: - name: destination-traffic methods: - GET pathRegex: "/echo” headers: - X-Demo-1: "^demo-1$” - X-Demo-2: "demo” https://github.com/servicemeshinterface/smi-spec アクセス制御
  • 27. | ©2020 F527 NGINX Service Mesh - SMI トラフィック制御例 https://github.com/servicemeshinterface/smi-spec apiVersion: specs.smi-spec.io/v1alpha1 kind: RateLimit metadata: name: target-service-rate-limit namespace: bookinfo spec: destination: kind: Service name: reviews namespace: bookinfo sources: - kind: Deployment name: productpage-v1 namespace: bookinfo name: 10rs rate: 10r/s burst: 5 delay: nodelay ProductPage Reviews レート制限
  • 28. | ©2020 F528 NGINX Service Mesh - SMI サーキットブレーカー例 https://github.com/servicemeshinterface/smi-spec apiVersion: specs.smi-spec.io/v1alpha1 kind: CircuitBreaker metadata: name: circuit-breaker-example namespace: bookinfo spec: destination: kind: Service name: reviews-v1 namespace: bookinfo errors: 1 timeoutSeconds: 1 fallback: service: bookinfo/reviews-v3 port: 9080 ProductPage Reviews-v2 Reviews-v3 Reviews-v1 サーキットブレーカー ❌
  • 29. | ©2020 F529 Istio と NGINX Service Mesh o 概念とレイヤーが増えるので、ネットワークは複雑になってくる. o Service MeshデータプレーンはNGINX基本機能と専用モジュールで実現. o データプレーンやログがNGINXなので属人化しにくい. o マルチクラウドで共通のNSM環境が利用が可能 o NGINXパフォーマンスはサイジング可能. o SMI仕様を共有利用できるので運用難度を軽減. o F5 NGINXサポートで導入しやすい. o ロードマップにより破壊的アップデートを避け安定リリース. istioctl nginx-meshctl o 概念とレイヤーが増える、ネットワークは複雑になってくる o 高機能、高い知名度 o K8s, Nomad, Consul 様々なオーケストレーション o 独自のサービスメッシュ環境を構築 o 学習コストが高く属人化しやすい o 運用負荷が高い o コミュニティが活発、陳腐化しやすい o Google, IBM, Amazonなどでマネージドメッシュサービス
  • 30. | ©2020 F530 なぜNGINXサービスメッシュ? • マイクロサービストラフィック管理とセキュリティの完全な管理 • アプリ間(サイドカー)と外部(NGINX KIC)のIngressとEgressを制御 • ポリシーの定義、暗号化の適用、トラフィック制御が可能 • 簡単に導入が可能、プラットフォームや人的リソースに依存しない • 必要なものはすべて含まれており、断片的に導入する必要はありません • あらゆるK8s環境で、どこでも実行 • NGINXを知っているエンジニアが扱える • データプレーンに強み • コンテナトラフィック管理に世界最高のリバースプロキシをもたらします
  • 31. | ©2020 F531 デモ: NGINX Service Mesh + Google Cloud GKE
  • 32. | ©2020 F532 デモ: NGINX Service Mesh Bookinfo ProductPage Internet Ingress Bookinfo Reviews NGINX Service Mesh CLI Grafana Zipkin Cloud Shell トラフィック制御 Web browser productpage.takaaki-nginx.xyz
  • 33. | ©2020 F533 デモ: NGINX Service Mesh トラフィック分割 サーキットブレーカー productpage.takaaki-nginx.xyz
  • 34. | ©2020 F534 NGINX Service Mesh - SMI トラフィック分割例 https://github.com/servicemeshinterface/smi-spec apiVersion: split.smi-spec.io/v1alpha3 kind: TrafficSplit metadata: name: reviews-ts namespace: bookinfo spec: service: reviews backends: - service: reviews-v2 weight: 50 - service: reviews-v3 weight: 50 ProductPage Reviews-v2 Reviews-v3 Reviews-v1 トラフィック分割
  • 35. | ©2020 F535 NGINX Service Mesh - SMI サーキットブレーカー例 https://github.com/servicemeshinterface/smi-spec apiVersion: specs.smi-spec.io/v1alpha1 kind: CircuitBreaker metadata: name: circuit-breaker-example namespace: bookinfo spec: destination: kind: Service name: reviews-v1 namespace: bookinfo errors: 1 timeoutSeconds: 1 fallback: service: bookinfo/reviews-v3 port: 9080 ProductPage Reviews-v2 Reviews-v3 Reviews-v1 サーキットブレーカー ❌
  • 36. | ©2020 F536 NGINX SERVICE MESHはマルチクラウド環境で一貫性と信頼性、セキュリティを提供します まとめ: 複数のクラウドにサービスメッシュを展開する Hybrid Cloud 一貫したインフラストラクチャ 一貫した機能設定 新しいアーキテクチャを有効にする 迅速な統合 プラットフォームの移植性 効率的なテスト アプリケーションの再プラットフォーム セキュリテイレベルの向上
  • 37. | ©2020 F537 無料ダウンロード https://www.nginx.co.jp/products/nginx-service-mesh/ NGINX Service Mesh 無料ダウンロード NGINX Service Meshは、NGINX Plusデータプレーンのみに特化した制御プレー ンをゼロから構築することで、大量かつ安全なコンテナ・トラフィック管理のために設計され た高度に最適化されたサービス・メッシュを提供します。 開発リリースを無料ダウンロード していただけます。ダウンロードしていただき何か問題点やお気づきの場合にはGitHubに てお問い合わせいただけます。 NGINX Service Mesh ダウンロード https://www.nginx.co.jp/free-trial-request/ NGINX Plus, NGINX App Protect 無料トライアル NGINX Plusは、オールインワン型のソフトウェアロードバランサ、コンテンツキャッシュ、 Webサーバ、APIゲートウェイ、マイクロサービスプロキシです。NGINX App Protect は、業界トップクラスのF5の高度なWAFテクノロジーをNGINX Plusに搭載し最新の アプリケーションセキュリティを提供します。この2つの技術の融合により、最新の分散型 環境におけるWeb/モバイルアプリケーションの拡張性と保護が実現します。 NGINX Plus無料トライアル
  • 38.