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
インフラ自動化の落とし穴と宣言的アーキテクチャ
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yusuke Nojima
July 14, 2020
Technology
12k
24
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
インフラ自動化の落とし穴と宣言的アーキテクチャ
2020/07/14
Cybozu Tech Meetup #3
Yusuke Nojima
July 14, 2020
More Decks by Yusuke Nojima
See All by Yusuke Nojima
SSLセッションキャッシュを共有したいだけの人生だった
nojima
6
3.1k
Nginx Hacking Guide
nojima
0
740
Other Decks in Technology
See All in Technology
5分でわかるDuckDB Quack
chanyou0311
4
310
アラート調査向けAIエージェントの本番導入とその後/AI Agents for Alert Investigation: Production Deployment and After
taddy_919
1
330
AWS Summit Japan 2026の振り返りと2027へ向けて / AWS Summit Japan 2026 Recap and Prospects for 2027
kaminashi
1
190
Mastraエージェント、どのクラウドにデプロイする?
minorun365
PRO
2
150
プライバシー保護の理論と実践
lycorptech_jp
PRO
1
230
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
5
370
Multi-Agent並列開発を 安全に回すための技術 / Technology for Safely Multi-Agent Parallel Development
tooppoo
0
250
Claude Code 珍プレー好プレー
shinyasaita
0
120
ゼロをイチにする仕事が終わったあと
smasato
0
270
Claude Codeとハーネスについて考えてみる
oikon48
16
7.6k
AI Agent SaaS を支える自社仮想化基盤への挑戦と実運用 / ai-agent-saas-virtualization
flatt_security
0
540
AIDLC_ヤフーショッピングの取り組み
lycorptech_jp
PRO
0
510
Featured
See All Featured
Utilizing Notion as your number one productivity tool
mfonobong
4
340
Building the Perfect Custom Keyboard
takai
2
810
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
180
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
660
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
370
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
150
Product Roadmaps are Hard
iamctodd
55
12k
Done Done
chrislema
186
16k
Documentation Writing (for coders)
carmenintech
77
5.4k
The Cult of Friendly URLs
andyhume
79
6.9k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
220
Transcript
ΠϯϑϥࣗಈԽͷམͱ݀͠ͱ એݴతΞʔΩςΫνϟ $ZCP[V5FDI.FFUVQ ։ൃຊ෦ :BLVNPνʔϜ ౡ ༟ี
ࠓ͢͜ͱ ΠϯϑϥࣗಈԽͷམͱ݀͠ એݴతΞʔΩςΫνϟͱσϓϩΠύΠϓϥΠϯ
ΠϯϑϥࣗಈԽͷམͱ݀͠
DZCP[VDPN ͷΠϯϑϥ • ࠃͷΦϯϓϨ%$Ͱӡ༻ • ཧαʔόʔ 1,000 Ҏ্ • ΠϯϑϥͷͨΊͷ1ZUIPOίʔυ
100,000 ߦҎ্
ࣗಈԽͷྲྀΕ ਓ͕खͰΦϖϨʔγϣϯ खॱॻ ΦϖϨʔγϣϯͷճ͕૿Ճ ࣗಈԽͷػӡ͕ߴ·Δ ࣗಈԽʂ खॱॻΛ 1ZUIPOεΫϦϓτʹ
ࣗಈԽͷྫ • ΞϓϦέʔγϣϯͷΞοϓσʔτ • "1αʔόʔͷΓ͠ɺϓϩάϥϜͷஔ͖͑ɺ%#ϚΠά ϨʔγϣϯɺόονͷҰ࣌ఀࢭɺϝλσʔλͷॻ͖͑ͳͲ େͳखॱΛҰίϚϯυʹ • ͜ΕͰΦϖϨʔλʔΞοϓσʔτखॱͷৄࡉΛΒͳͯ͘ ΞοϓσʔτͰ͖Δʜͣͩͬͨ
ͱ͜Ζ͕ʜ ͑ͬɺ͜ͷίϚϯυଧͭલʹ αʔϏε"ΛࢭΊͳ͍ͱ͍͚ͳ͍ΜͰ͔͢ʁ ͋Εɺ͜ͷίϚϯυଧͬͨΒ উखʹόονॲཧ͕ࢭ·ͬͨΜͰ͚͢Ͳʁ ҙຯͷΘ͔Βͳ͍ΤϥʔΛు͍ͯ ࢭ·ͬͪΌͬͨΜͰ͕͢ʜ ͑ɺ͜ͷίϚϯυͱಉ࣮࣌ߦͰ͖ͳ͍ΜͰ͔͢ʁ
͜ͷίϚϯυΛ࣮ߦ͢Δͱ Կ͕ى͜Δ͔Θ͔Βͳ͍͔Β ࣄલʹԿ͕࣮ߦ͞ΕΔ͔ௐ͓͔ͯͳ͍ͱʜ ಉ࣮࣌ߦͰΤϥʔ͕ى͜Δͱ͍͚ͳ͍͔Βɺ ଞͷΦϖϨʔλʔ͕ͲΜͳίϚϯυΛ࣮ߦ͢Δͷ͔ ͪΌΜͱฉ͍͓ͯ͜͏ʜ
ΦϖϨʔγϣϯ ϓϥϯχϯά ΦϖϨʔγϣϯ࣮ࢪ ͲͷίϚϯυΛଧͭʁ લఏ݅ʁ
ΦϖϨʔγϣϯ ϓϥϯχϯά ΦϖϨʔγϣϯ࣮ࢪ Ϝζ͗͢ʜ ΠϯϑϥͷେنԽ ࣗಈԽʹΑΔฐ
݁ہͲ͏͢Δ͖ͩͬͨͷ͔ʁ ΦϖϨʔγϣϯ ϓϥϯχϯά ΦϖϨʔγϣϯ࣮ࢪ ͍··Ͱͷ ࣗಈԽ ࢦ͖͢ ࣗಈԽ
ʜʜͲ͏Δͷʁ ͍Ζ͍Ζͱٞɾݕ౼͢Δ͙̎ؒΒ͍ਐḿͤͣ
ɺ͜Μͳঢ়گʹసػ͕๚ΕΔʂʂ
64൛LJOUPOFͷ"84Ҡߦ
:BLVNPϓϩδΣΫτ • 64൛LJOUPOFͷͨΊʹ"84্ͰΠϯϑϥΛθϩ͔Βߏங͢Δ ϓϩδΣΫτ͕ൃ • ΞϝϦΧͰചΔͳΒΞϝϦΧʹ%$͕ඞཁ • ΦϯϓϨ%$͡Όͳͯ͘"84Ͱ
• ࠷ॳ͔ΒࣗಈԽΛલఏͱͨ͠ΞʔΩςΫνϟ • Πϯϑϥ͚ͩͰͳ͘ΞϓϦέʔγϣϯ LJOUPOF ʹ खΛՃ͑Δ • %FW0QTΛҙࣝͨ͠৫ߏ •
%FW͔ͭ 0QTͳνʔϜɻนΛऔΓ͓͏ શମ࠷దΛࢦͧ͢ʂʂ
ࣗಈԽͷιϦϡʔγϣϯ • ΠϯϑϥࣗಈԽͷΛҰܸͰղܾ͢Δ୯ҰͷιϦϡʔγϣϯͳ͍ • ࡉ͔͍ʹղͯ͠ݸผܸഁ • એݴతΞʔΩςΫνϟ • ϚωʔδυαʔϏεͷಋೖ •
ϦϦʔεϓϩηεվળ • ৫ମ੍มߋ • ʜ ࠓ͜Εͷ͕ϝΠϯ
ద༻खॱʹ͍ͭͯߟ͑Δ
l43&ɺ͓Αͦ ͷαʔϏεোɺಈ࡞தͷγεςϜͷ มߋʹΑͬͯੜ͍ͯ͡Δ͜ͱΛൃݟ͠·ͨ͠z #FUTZ#FZFSଞʮαΠτϦϥΠΞϏϦςΟΤϯδχΞϦϯάʯ ΦϥΠϦʔɺɺQ
ALB Aurora Aurora nginx slash-ap kintone-ap pod service EKS Cluster
Elastic search kintone-ap (kintone 本体) kintone-ap (kintone 本体) ミドルウェア、 管理サービス等 いろいろ kintone-ap (kintone 本体) kintone-ap (kintone 本体) slash-ap (ユーザー管理) slash-ap (ユーザー管理) VPC nginx nginx
ద༻खॱ • Πϯϑϥଟͷখ͞ͳαʔϏεʹΑͬͯߏ͞Ε͍ͯΔ • :BLVNPͷ߹ݸ͙Β͍ • ͜Ε·ͰɺαʔϏεΛมߋͨ͠ͱ͖ʹखಈͰద༻खॱΛ࡞͍ͬͯͨ • ʮϥΠϒϥϦΛมߋ͔ͨ͠ΒɺαʔϏε"ͱαʔϏε#Λߋ৽ͯ͠࠶ى ಈͯ͠ʜʯ
• Өڹൣғͷ࿙ΕʹΑΔద༻ϛε͕ൃੜ͍͢͠
ద༻खॱΛͳͤ͘ͳ͍͔ʁ
ద༻खॱΛͳͤ͘ͳ͍͔ʁ ˠ ιʔείʔυͷΈ͕༩͑ΒΕͨͱ͖ʹ ࣗಈతʹͦΕΛσϓϩΠͰ͖Δ͔ʁ
<docker> debian10 <docker> corretto11 service A service B service C
<library> shared-kernel ιʔείʔυؒͷґଘάϥϑ
TIBSFELFSOFMΛมߋͨ͠߹ʁ <docker> debian10 <docker> corretto11 service A service B service
C <library> shared-kernel TFSWJDF#ͱ TFSWJDF$ΛσϓϩΠ
<docker> debian10 <docker> corretto11 service A service B service C
<library> shared-kernel EFCJBOΛมߋͨ͠߹ʁ TFSWJDF" # $ΛσϓϩΠ
͑ͬ ͜Εμϝ͡Όͳ͍ʁ
ᶃ ιʔείʔυ͕มԽ͍ͯ͠ͳͯ͘σϓϩΠ͕ඞཁͳ߹ͳ͍ͷʁ ᶄ σϓϩΠʹΑΔαʔϏεӨڹͱ͔ىಈॱং੍ޚͱ͔Ͳ͏͢Δͷʁ
ᶃ ιʔείʔυ͕มԽ͍ͯ͠ͳͯ͘σϓϩΠ͕ඞཁͳ߹ͳ͍ͷʁ ᶄ σϓϩΠʹΑΔαʔϏεӨڹͱ͔ىಈॱং੍ޚͱ͔Ͳ͏͢Δͷʁ
l࠶ݱੑz • ϏϧυͱσϓϩΠʹ࠶ݱੑΛͨͤΔ • ࠶ݱੑͱ • ιʔείʔυ͕ಉ͡Ͱ͋ΕՌ͕ಉ͡ͱ͍͏ੑ࣭ • ͢ͳΘͪɺιʔείʔυ͕มԽ͠ͳ͚ΕσϓϩΠෆཁ
࠶ݱੑͷ͋ΔϏϧυ ྫ͑ʜ • ґଘϥΠϒϥϦͷόʔδϣϯશͯݻఆ͢Δ • ࠷ۙͷϏϧυπʔϧͳΒΘΓͱ؆୯ • EPDLFS ͷϕʔεΠϝʔδෆมͳϥϕϧΛࢦఆ͢Δ •
lMBUFTUzμϝ • ωοτϫʔΫӽ͠ͷϑΝΠϧμϯϩʔυʹҙ • ಉ͡63-ͰผͷϑΝΠϧ͕མͪͯ͜ͳ͍͔ʁ
AP Server, Middlewares Network Database 物理 CloudFormation Kubernetes AWS なら
気にしなくていい ࠶ݱੑͷ͋ΔσϓϩΠ Load Balancer Monitoring (Datadog), Alerts (PagerDuty) Terraform
ᶃ ιʔείʔυ͕มԽ͍ͯ͠ͳͯ͘σϓϩΠ͕ඞཁͳ߹ͳ͍ͷʁ ᶄ σϓϩΠʹΑΔαʔϏεӨڹͱ͔ىಈॱং੍ޚͱ͔Ͳ͏͢Δͷʁ
l͍ͭͰσϓϩΠͯ͠Α͍z • શͯͷαʔϏεΛʮ͍ͭͰσϓϩΠͰ͖Δʯঢ়ଶʹอͭ • σϓϩΠͰ͖ͳ͍ঢ়ଶʹͳΔͱͨ͠Βෆ۩߹ͱͯ͠ରॲ • ͦͦ"84Ͱ&$ΠϯελϯεͷಥવࢮʹରԠ͠ͳ͍ ͱ͍͚ͳ͍ͷͰɺඞવతʹ͜ͷ͕݅ඞཁ ΦϯϓϨతࢥߟ͔Βͷ٫
l͍ͭͰσϓϩΠͯ͠Α͍zͷͨΊʹ • όονॲཧதʹσϓϩΠ͕Δͱ௨৴அʹΑΓΤϥʔʹͳΔ ˠదʹϦτϥΠ͢Δ • ೋॏʹΔͱࠔΔॲཧ͕͋ͬͯԽͰ͖ͳ͍ ˠ ࢄϩοΫΛಋೖͯ͠Խ • ϩʔυόϥϯαͷ࠶ىಈͰϢʔβʔ͔ΒͷϦΫΤετ͕ΤϥʔʹͳΔ
ˠ (SBDFGVM4IVUEPXO
ʮ͍··ͰΦϖϨʔγϣϯͰղܾ͍ͯͨ͠Λ αʔϏεଆͰղܾ͢Δʯ ͱ͍͏ํ
service A service B service C 上位の管理サービス1 上位の管理 サービス2 ΦϖϨʔλʔ
ྫ֎ॲཧ ྫ֎ॲཧ ྫ֎ॲཧ ྫ֎ॲཧ ྫ֎ॲཧ ͍··Ͱྫ֎ॲཧΛΦϖϨʔλʹ͍͛ͯΔߏਤͩͬͨ
service A service B service C 上位の管理サービス1 上位の管理 サービス2 ΦϖϨʔλʔ
ྫ֎ॲཧ ྫ֎ॲཧ ྫ֎ॲཧ ྫ֎ॲཧ ྫ֎ॲཧ ͜Ε͔Βྫ֎ॲཧͰ͖Δ͚ͩԼҐͷαʔϏεͰؤுΔ ྫ֎ॲཧͷ࣮ʹϚΠΫϩαʔϏεຊ #VJMEJOH.JDSPTFSWJDFT ͷݟ͕͘͢͝ࢀߟʹͳͬͨ
%FW0QTͱͷؔ • ΦϖϨʔγϣϯίετͱαʔϏε։ൃίετͷτϨʔυΦϑ • %FWͱ 0QT͕͍ͯ͠Δͱɺίετͷԡ͚͠߹͍ʹ ͳͬͯେม • :BLVNP
%FW͔ͭ 0QTͳνʔϜͳͷͰΓ͍͢ • ΦϖϨʔγϣϯ͢Δ͠ɺαʔϏεଆͷ࣮͢Δ
એݴతΞʔΩςΫνϟͱ σϓϩΠύΠϓϥΠϯ
એݴతΞʔΩςΫνϟ "1αʔόʔ͕ ͋Δ͜ͱ ཧͷঢ়ଶ ೖྗ BQ ࣮ࡍͷঢ়ଶ ࠩ "1αʔόʔ͕͏̍ඞཁ BQ
खॱࢦͷΞʔΩςΫνϟͱ એݴతΞʔΩςΫνϟͷҧ͍ • खॱࢦ • ΦϖϨʔγϣϯ ཧͱ࣮ࡍͷࠩ Λೖྗ͢Δ • ࠷ऴతʹͲ͏͍ͨ͠ͷ͔ΛγεςϜΒͳ͍
• એݴత • ཧͷঢ়ଶΛೖྗ • Ͳ͏͍͏ΦϖϨʔγϣϯΛ͢Δ͔γεςϜ͕ܾΊΔ
σϓϩΠύΠϓϥΠϯ Πϯϑϥͷঢ়ଶΛ ιʔείʔυͰఆٛ (JUͰཧ ύΠϓϥΠϯ $* "84 ཧͷঢ়ଶ ࣮ࡍͷঢ়ଶ
yakumo Build Deploy Test dev 環境 dev pipeline repository Deploy
Test Deploy Test staging 環境 prod 環境 staging pipeline prod pipeline 1JQFMJOF0WFSWJFX
yakumo Build Deploy Test dev 環境 dev pipeline repository Deploy
Test Deploy Test staging 環境 prod 環境 staging pipeline prod pipeline 1JQFMJOF0WFSWJFX
#VJME ଟͷαʔϏεΛ ࠩϏϧυ͢Δ
#VJME • ࠩϏϧυ • ͦͷαʔϏεͷιʔείʔυͷϋογϡΛऔΔ • ڞ௨ϥΠϒϥϦڞ௨%PDLFSΠϝʔδʹґଘ͍ͯ͠Δ߹ɺ ґଘͻͬ͘ΔΊͯϋογϡΛܭࢉ͢Δ • 4ʹࠓ·ͰϏϧυͨ͜͠ͱͷ͋ΔϋογϡΛશ෦ه͓ͯ͘͠
• 4ʹϋογϡ͕ͳ͍ 㱺 Ϗϧυ͠ͳ͍ͱ͍͚ͳ͍ • ੜ͞ΕͨίϯςφΠϝʔδͷλάʹϋογϡΛ͚Δ ʢσϓϩΠͰ͏ʣ
yakumo Build Deploy Test dev 環境 dev pipeline repository Deploy
Test Deploy Test staging 環境 prod 環境 staging pipeline prod pipeline 1JQFMJOF0WFSWJFX
%FQMPZ • "84ͷϦιʔεͷσϓϩΠ • $MPVE'PSNBUJPO ͰσϓϩΠ͢Δ • $MPVE'PSNBUJPO͕ࣗಈతʹࠩσϓϩΠΛߦ͏ • :BLVNPͷ
$MPVE'PSNBUJPOςϯϓϨʔτ̍ສߦҎ্ • ߹ʹΑͬͯΧελϜϦιʔε͏
None
%FQMPZ • ϛυϧΣΞͷσϓϩΠ • ,VCFSOFUFT ΛͬͯσϓϩΠ • ίϯςφΠϝʔδͷλάϏϧυ࣌ͷϋογϡΛࢦఆ 㱺 มߋ͕͋ͬͨίϯςφͷΈ͕σϓϩΠ͞ΕΔ
• :BLVNPͷ ,VCFSOFUFT.BOJGFTU̍ສߦ͙Β͍
yakumo Build Deploy Test dev 環境 dev pipeline repository Deploy
Test Deploy Test staging 環境 prod 環境 staging pipeline prod pipeline 1JQFMJOF0WFSWJFX
5FTU • &&ςετΛߦ͏ • 4FMFOJVN ͕ಈ͘ • 2"JO1SPEVDUJPO • ຊ൪ڥͰςετΛ࣮ߦ
·ͱΊ
·ͱΊ • ΠϯϑϥࣗಈԽͷམͱ݀͠ • ϓϥϯχϯάͷίετΛݟམͱ͢ͱΦϖϨʔγϣϯ͕εέʔϧ͠ͳ͍ • ΦϖϨʔγϣϯͷΛαʔϏεଆͰղܾ • .JDSPTFSWJDFT"84ͷݟॏཁ •
%FW0QT • એݴతΞʔΩςΫνϟͱσϓϩΠύΠϓϥΠϯ • ຊ൪ڥͷঢ়ଶΛιʔείʔυͱಉظͤ͞Δ