Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NGINX Plusのご紹介 - Red Hat Forum Tokyo 2018
Search
NGINX Japan
November 08, 2018
Technology
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
NGINX Plusのご紹介 - Red Hat Forum Tokyo 2018
NGINX Japan
November 08, 2018
More Decks by NGINX Japan
See All by NGINX Japan
NGINX / Developers Summit 2019
nginx_jp
0
1.6k
NGINX Plus - マイクロサービスの高可用性 / JapanContainerDays v18.12
nginx_jp
4
2.1k
NGINXとApacheざっくり比較 - NGINX MeetUp #1 Lightning Talks
nginx_jp
0
130
Other Decks in Technology
See All in Technology
Reactの設計論
uhyo
7
1k
GoCon2026 - Open Source, Open World
sanposhiho
1
390
enechainの内製セルフサービスプラットフォーム
hiyosi
0
140
AI時代におけるプロダクト横断勉強会の設計
zozotech
PRO
0
170
多層防御と最⼩権限で実現する、安全なAIエージェント設計パターン
lycorptech_jp
PRO
1
210
振り返りこそエンジニアの本領
negima
0
340
多摩川(.dev)ランニング入門 / Tamagawa.dev#3
fujiwara3
3
400
設計の世代交代を乗り越える、14年続くAndroidアプリの開発戦略
sansantech
PRO
1
150
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
0
170
AIエージェントの開発・提供におけるセキュリティリスクの論点と対策
flatt_security
2
610
AIで仕事のやり方を変える
matsu7874
2
990
From Vanilla Kubernetes to a Batteries-Included Platform: Developer Experience at 1,300+ Clusters
yosshi_
0
620
Featured
See All Featured
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
890
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
590
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Building the Perfect Custom Keyboard
takai
2
870
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
470
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
470
Rails Girls Zürich Keynote
gr2m
96
14k
BBQ
matthewcrist
89
10k
First, design no harm
axbom
PRO
2
1.3k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
980
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Transcript
NGINX Plusͷ͝հ ϚΠΫϩαʔϏεͷߴՄ༻ੑ NGINX ςΫχΧϧ ιϦϡʔγϣϯζ ΞʔΩςΫτ ాลໜ 2018/11/8
None
NGINXͷ͝հ NGINX Plus αʔϏεϝογϡͱAPI ήʔτΣΠ 1 2 3 ຊͷ༰
NGINXͷ͝հ 1
NGINXࣾ • ʹઃཱɺʹNGINX 1MVTͷॳظϦϦʔε 044൛ॳظϦϦʔε • ສҎ্ͷΣϒαΠτ • ΤϯλʔϓϥΠζιϑτΣΞۀքͷϦʔμʔͷϕϯνϟʔΩϟϐλϧͷࢧԉ •
αϯϑϥϯγείɺϩϯυϯɺίʔΫɺγϯΨϙʔϧɺγυχʔɺϞεΫϫɺ౦ژͷΦϑΟε • ࣾҎ্ͷސ٬ • ਓҎ্ͷैۀһ
NGINX Unit NGINX ͔Βͷ৽͍͠ಈతͳWebͱΞϓϦ έʔγϣϯɾαʔόʔɻΦʔϓϯιʔεɺ ෳͷݴޠͷαϙʔτɺ͓Αͼಈతͳ REST API ओಋͷߏɻ NGINX
Plus ϩʔυόϥϯαʔɺWebαʔόʔɺίϯςϯ πΩϟογϡΛؚΉ།ҰͷΦʔϧΠϯϫϯι ϦϡʔγϣϯɻίετΛݮ͠ͳ͕ΒɺΞʔ ΩςΫνϟΛ؆ૉԽ͠·͢ɻ NGINX Controller NGINX PlusͷͨΊͷूதࢹ͓Αͼཧɻ ୯Ұͷඒ͍͠ΠϯλʔϑΣΠεΛ༻ͯ͠ɺ ԾϩʔυόϥϯαʔΛల։͠·͢ɻ NGINX WAF Φʔϓϯιʔεͷ WebΞϓϦέʔγϣϯϑΝ ΠΞΥʔϧ (WAF)SQL ΠϯδΣΫγϣϯɺ LFIRFI͓ΑͼͦͷଞͷϨΠϠ7߈ܸΛ ޚ͠·͢ɻ Powered by ModSecurity.
ݱࡏͷΞϓϦͷΠϯϑϥෳࡶ 7
NGINXʹΑΓ10ഒ؆ૉԽɾ 80%ίετݮ 8
NGINX ΞϓϦέʔγϣϯ ϓϥοτϑΥʔϜ ϩʔυόϥϯαɺAPI ήʔτΣΠɺ͓Αͼ αʔϏεϝογϡΛ୯Ұ ͷϞδϡϥʔԽϓϥοτ ϑΥʔϜʹ౷߹͢Δ͜ͱ ʹΑΓɺഒͷ؆ૉԽ ͱ
ͷίετݮΛ ࣮ݱ͢Δۀք།Ұͷι Ϧϡʔγϣϯ ύϑΥʔϚϯε ྗੑ ηΩϡϦςΟ ϩʔυόϥϯαʔ API αʔϏεϝογϡ
ΞϓϦͷ࠷৽Խͷ3ͭͷεςοϓ ϋʔυΣΞͷ ஔ͖͑ Ϋϥυͷ Ҡߦ ϚΠΫϩαʔϏε ͷҠߦ σδλϧτϥϯεϑΥʔϝʔγϣϯ
࠷৽Խ ϨΨγʔΞϓϦͱϚΠΫϩαʔ ϏεΛαϙʔτ͠ͳ͕Βɺ ࣗͷϖʔεͰΞϓϦΛ ࠷৽ԽͰ͖·͢ ؆ૉԽ ϞμϯͳΞϓϦΛ؆ૉԽ͠ɺ ϚϧνΫϥυͷҠ২ੑΛ ఏڙ͠·͢ NGINX:
ύϑΥʔϚϯε্͚ͩͰͳ͘ɺ ෳࡶ͞Λܰݮ͠·͢ɻ 12 ੜ࢈ੑ ΠϯϑϥετϥΫνϟ͓Αͼ ΞϓϦέʔγϣϯνʔϜؒͰ γʔϜϨεʹಈ࡞͠·͢
NGINX Plus 2
͠NGINX͕͖ͳΒ NGINX Plus͕ େ͖ʹͳΔͰ͠ΐ͏
NGINX Plusͱ • ΞϓϦέʔγϣϯͷఏڙʹؔ͢ΔશͯΛΧόʔ ◦ ϩʔυόϥϯαʔ ◦ ίϯςϯπΩϟογϡ ◦ Web
αʔόʔ ◦ ηΩϡϦςΟίϯτϩʔϧ ◦ ಈతϞδϡʔϧ ◦ ࢹ ◦ ߴՄ༻ੑ (HA) ◦ Kubernetes Ingress controller ◦ ϓϩάϥϚϏϦςΟ
NGINX Plus Runs Anywhere… Bare metal Multi-cloud Containers Linux/BSD CPUs
ߴੑೳͳΞϓϦέʔγϣϯͷ৴ • ৄࡉͰ๛ͳϝτϦοΫ • ڧྗͳෛՙࢄ • ϔϧενΣοΫ • αʔϏεϨδετϦͷ౷߹ •
HTTP/HTTPS/H2/gRPC/TCP/UDP HTTP HTTPS HTTP/2 gRPC TCP UDP consul etcd
౷߹ͱ؆ૉԽ Web ΞϓϦέʔγϣϯ ϑΝΠΞΥʔϧ Web Ωϟογϡ ωοτϫʔΫ ϑΝΠΞΥʔϧ ϩʔυόϥϯαʔ SSL
ϦόʔεϓϩΩγ ೝূ ήʔτΣΠ API ήʔτΣΠ ΞϓϦέʔγϣϯ <··> <··>
NGINX OSS vs NGINX Plus 19
Demo: NGINX PlusͷμογϡϘʔυ 20 શମ αʔόʔͷঢ়گʢκʔϯʹ͚ͯදࣔʣ Ωϟογϡ ڞ༗ϝϞϦʔ NGINX Plusͷ
Πϯελϯεຖͷใ
Demo: Upstreamͷಈతมߋ ϩʔυόϥϯεઌ (Upstream) ΛಈతʹมߋՄೳ μογϡϘʔυͷGUIͰ APIͰ
Demo: NGINX Controller 22 ଟͷNGINX Plus͔Β౷ܭใΛू
Demo: NGINX Controller 23 nginx.conf ͷ֬ೝ nginx.conf ͷมߋ ઃఆͷݕূ
αʔϏεϝογϡͱ APIήʔτΣΠ 3
NGINX Plus ͱϚΠΫϩαʔϏε • NGINX ϚΠΫϩαʔϏεʹ ର͠ҎԼΛఏڙ ◦ ଓ ◦
αʔϏεఏڙ ◦ ೝূ ◦ ηΩϡϦςΟ ◦ Ωϟογϡ ◦ ෛՙࢄ ◦ εέʔϦϯά
NGINXɺ͋ΒΏΔϚΠΫϩ αʔϏεΞʔΩςΫνϟΛαϙʔτ Fabric Model Router Mesh Model Proxy Model
ͳͥ NGINX? NGINX ϚΠΫϩαʔϏεΛݱ࣮ʹ ݱࡏར༻͞Ε͍ͯΔσʔλϓϨʔϯιϦϡʔγϣϯ • 400ສɿNGINXΠϯελϯε͕ϓϩμΫγϣϯͷϚΠΫϩαʔϏεͰՔಇதɻ* • 10ԯճɿNGINX ެࣜ
DockerHub Πϝʔδͷϓϧ • ߴՄ༻ੑίϯςφτϥϑΟοΫཧͷͨΊͷ NGINX Plus Dockerfile • ඦສճɿNGINX Kubernetes Ingress Controllerͷϓϧ • 250ࣾɿNGINXΛϓϩμΫγϣϯͷϚΠΫϩαʔϏεͰ༻த* • NGINX Plus: ίϯςφͰωΠςΟϒʹΞϓϦέʔγϣϯαʔϏεΛఏڙ • NGINX Controller: શͳࢹ͓ΑͼཧίϯςφϓϥοτϑΥʔϜ * Source: Internal customer data and surveys
East-West τϥϑΟοΫ: API ήʔτΣΠͱ αʔϏεؒͷτϥϑΟοΫ
ಈతͳ E-W ϧʔςΟϯά: αʔϏεͷݕग़ • ͜Μͳͱ͖ʹඞཁ: ◦ ৽͍͠αʔϏε͕Ճ͞Εͨ ◦ طଘͷαʔϏεͷΠϯελϯε͕Ճ͞Εͨ
• ϓϩΩγ͕ߏ͞ΕΔτϦΨʔ: ◦ Ansible Roles ◦ Consul templates ◦ DNS A, SRV Ϩίʔυ ◦ AWS Autoscaling άϧʔϓ ◦ Kubernetes (kube-dns) Ingress and Service-to- Service
NGINX αΠυΧʔ: ηΩϡΞͰߴͳαʔϏεؒτϥϑΟοΫ • ηΩϡΞ ◦ αʔϏεؒͷSSL/TLS௨৴ ◦ NGINX Λܦ༝͠ͳ͍
ύεͷϧʔςΟϯάͳ͠ ◦ αʔϏεϨδετϦ lsource of truth” ◦ ΞϓϦ͝ͱͷೝূͱΫϨʔϜ੍ޚʹ JWT • ࠷దԽ ◦ SSL keepalive, ηοτΞοϓίετͷݮ ◦ αʔϏεؒͷτϥϑΟοΫྔௐ ◦ Many-to-many ίΞͱϦόʔεϓϩΩγͷ ΞʔΩςΫνϟ
࣍ͷεςοϓ: αʔϏεϝογϡͷΦʔέετϨʔγϣϯ • ࢄαʔϏεؒͷ௨৴Λߴɺߴ৴ པɺ͓ΑͼηΩϡΞʹ͢Δωοτ ϫʔΫ • සൟͳαʔϏεมߋʹରͯ͠ɺ ωοτϫʔΫ௨৴ͷ৴པੑΛ֬อ •
αʔϏεϝογϡΛҙࣝ͢Δඞཁ ͳ͘ɺσʔλͱίϯτϩʔϧϓ Ϩʔϯͷ੍ޚΛ αʔϏεϝογϡ ίϯτϩʔϧϓϨʔϯ ϓϥοτϑΥʔϜͷΦʔέετϨʔγϣϯ (K8s, Docker, EKS, etc) αʔϏεϝογϡ σʔλϓϨʔϯ
North-South τϥϑΟοΫͱ Ingress Controller
NGINX Plus: API ήʔτΣΠ NGINX PlusAPI • API ϧʔςΟϯά
◦ URL Ϛοϐϯά ◦ աෛՙอޢ • ೝূ ◦ API Ωʔ ◦ JWT/JWK ◦ SSL/MASSL Everywhere • ੳͱࠪ ◦ ϦΫΤετͷτϨʔε • ࠷దԽ ◦ ΞοϓετϦʔϜ API ΫϥελϦϯά
NGINX Plus - Kubernetes Ingress Controller NGINX PlusΛೖΓޱͱͯ͠ KubernetesΞϓϦέʔγϣϯΛ࡞ :
• ߴͳෛՙࢄͱSSL/TLS ऴ • WebSocket ͱ HTTP/2 ͷαϙʔτ • ϦΫΤετ͕ΞϓϦέʔγϣϯʹసૹ͞ΕΔ લʹURI ॻ͖͑ • ಈతͳ࠶ߏ • Session persistence • JWT authentication • Prometheusͷαϙʔτ • 24x7 αϙʔτ https://github.com/nginxinc/kubernetes-ingress
؆୯Ͱ౷߹͞Εͨߏ 1. apiVersion: extensions/v1beta1 2. kind: Ingress 3. metadata: 4.
name: cafe-ingress 5. spec: 6. tls: 7. - hosts: 8. - cafe.example.com 9. secretName: cafe-secret 10. rules: 11. - host: cafe.example.com 12. http: 13. paths: 14. - path: /tea 15. backend: 16. serviceName: tea-svc 17. servicePort: 80 18. - path: /coffee 19. backend: 20. serviceName: coffee-svc 21. servicePort: 80
OpenShift Router https://github.com/nginxinc/nginx-plus-router NGINXͷੑೳͱ҆ఆੑɾ࠷৽ͷػೳɾ༻αϙʔτ͕ಘΒΕ·͢
39 NGINX Solution Diagram
·ͱΊ 40 • ࣗࣾͷWebγεςϜ͕ෳࡶʹͳΓ͍͗ͯ͢Δ ◦ → NGINX Plus! • ϩʔυόϥϯαʔͷϋʔυΣΞͷߋ৽࣌ظʹདྷ͍ͯΔ
◦ → NGINX Plus! • APIήʔτΣΠαʔϏεϝογϡΛݕ౼த ◦ → NGINX Plus! ϑϦʔτϥΠΞϧ ͪ͜Β͔Β
[email protected]
ͥͻϒʔεʹཱ͓ͪدΓԼ͍͞ʂ