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
120
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
データ活用研修 問いの発見と仮説構築【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
660
Retriever と Reranker、結局どうする?
kazuaki
1
410
現場との対話から始める “作る前に問い直す”業務改善
mochico50
2
340
なぜ、あなたのAPIは使われないのか? AX時代の設計原則、ガードレール、運用体制
yokawasa
1
260
AI時代におけるエンジニアの新たな役割──FDEとクオリアの探求/登壇資料(戸井田 裕貴)
hacobu
PRO
0
650
AIエージェントがあれば技術書なんてすぐ書けるでしょ→無理でした
watany
6
1.1k
QA・ソフトウェアテスト研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
3
1.7k
文字起こし基盤の信頼性
abnoumaru
0
150
AIツールを導入しても生産性はあがらない? カオナビが直面した 3つの壁と乗り越え方。/ Overcoming 3 Barriers to AI-Driven Productivity at kaonavi
kaonavi
0
450
StepFunctionsとGraphRAGを活用した暗黙知活用のためのRAG基盤
yakumo
0
190
SRENEXT_2026_Chairs__Talks_in_Tamachi.sre.pdf
srenext
1
170
AI工学特論: MLOps・継続的評価
asei
11
3k
Featured
See All Featured
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
300
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
400
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
The Pragmatic Product Professional
lauravandoore
37
7.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Amusing Abliteration
ianozsvald
1
240
A better future with KSS
kneath
240
18k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Claude Code のすすめ
schroneko
67
230k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Automating Front-end Workflow
addyosmani
1370
210k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
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]
ͥͻϒʔεʹཱ͓ͪدΓԼ͍͞ʂ