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
takapi86
December 24, 2020
Technology
0
2.3k
カラーミーショップのクラウドネイティブに向けた取り組み
Pepabo Tech Conference #13
https://pepabo.connpass.com/event/197089/
takapi86
December 24, 2020
Tweet
Share
More Decks by takapi86
See All by takapi86
SIerから転職してきて 良かったこと・大変だったこと
takapi86
1
1.1k
pepabo-ec-tech-conference-web-application-firewall
takapi86
3
1.3k
Other Decks in Technology
See All in Technology
短期間でRAGシステムを実現 お客様と歩んだ生成AI内製化への道のり
taka0709
1
180
パフォーマンスチューニングのために普段からできること/Performance Tuning: Daily Practices
fujiwara3
2
200
データとAIで明らかになる、私たちの課題 ~Snowflake MCP,Salesforce MCPに触れて~ / Data and AI Insights
kaonavi
0
290
プロダクトエンジニアとしてのマインドセットの育み方 / How to improve product engineer mindset
saka2jp
1
170
Digitization部 紹介資料
sansan33
PRO
1
5.8k
Amazon Q Developer CLIをClaude Codeから使うためのベストプラクティスを考えてみた
dar_kuma_san
0
330
プロダクト開発と社内データ活用での、BI×AIの現在地 / Data_Findy
sansan_randd
1
800
CloudComposerによる大規模ETL 「制御と実行の分離」の実践
leveragestech
0
170
アノテーション作業書作成のGood Practice
cierpa0905
PRO
1
390
AIエージェントによる業務効率化への飽くなき挑戦-AWS上の実開発事例から学んだ効果、現実そしてギャップ-
nasuvitz
5
1.6k
AI時代の発信活動 ~技術者として認知してもらうための発信法~ / 20251028 Masaki Okuda
shift_evolve
PRO
1
140
30分でわかる!!『OCI で学ぶクラウドネイティブ実践 X 理論ガイド』
oracle4engineer
PRO
1
110
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
186
22k
It's Worth the Effort
3n
187
28k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
116
20k
Writing Fast Ruby
sferik
630
62k
Thoughts on Productivity
jonyablonski
72
4.9k
Code Reviewing Like a Champion
maltzj
526
40k
Practical Orchestrator
shlominoach
190
11k
Producing Creativity
orderedlist
PRO
348
40k
Become a Pro
speakerdeck
PRO
29
5.6k
RailsConf 2023
tenderlove
30
1.3k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
640
Transcript
1 Χϥʔϛʔγϣοϓͷ ΫϥυωΠςΟϒʹ͚ͨ औΓΈ ECࣄۀ෦ Χϥʔϛʔγϣοϓ αʔϏεج൫νʔϜɹ∁ڮ༤ل
2 2 ࣗݾհ • ໊લ: ∁ڮ༤ل • Twitter: @takapi86 •
ॴଐ: GMOϖύϘ ECࣄۀ෦ Χϥʔϛʔγϣοϓάϧʔϓ αʔϏεج൫νʔϜ • WebΞϓϦέʔγϣϯΤϯδχΞ • ۀͰ͍ͬͯΔ͜ͱ ◦ ϨΨγʔڥͷվળ ◦ ηΩϡϦςΟڧԽ
3 3 ࠓ͓͢Δ͜ͱ ΧϥʔϛʔγϣοϓͷΫϥυωΠςΟϒʹ͚ͨऔΓΈ • લύʔτ ◦ Մ༻ੑΛ্ͤ͞ΔͨΊͷऔΓΈɺShopSetΞʔΩς Ϋνϟʹ͍ͭͯ •
ޙύʔτ ◦ Kubernetesಋೖࣄྫ ϝʔϧϚΨδϯ৴Φϓγϣϯ
4 4 Χϥʔϛʔγϣοϓͷհ ຊؾͰωοτϏδωεΛ࢝Ί͍ͨํ͚ͷ ωοτγϣοϓ࡞αʔϏε
5 Մ༻ੑΛ্ͤ͞ΔͨΊͷऔΓΈɺShopSetΞʔΩς Ϋνϟʹ͍ͭͯ 5
6 6 boost2020 ϓϩδΣΫτ͕ൃʂʂ • ৽ܕίϩφՒʹ͓͍ͯɺωοτγϣοϐϯάͷར༻ऀ͕ٸ૿ ◦ ECͷαʔϏεʹର͢Δظײߴ·͍ͬͯΔ⬆⬆ • ຊதͷ͍Λ͢Δࣄۀऀ͕ͳΊΒ͔ʹΧϥʔϛʔγϣοϓ
Λ׆༻ͨ͠ΦϯϥΠϯࣄۀܗଶ(EC)ʹDX͢Δ͜ͱΛՃͤ͞ ΔͨΊͷऔΓΈ ◦ ϓϩϞʔγϣϯϨϕϧͷ্ ◦ γεςϜϨϕϧͷ্ ࣛࣇౡݶఆͰTVCM์ө͞Ε·ͨ͠ʂ
7 7 γεςϜϦΞʔΩςΫνϟ • boost2020ͷऔΓΈͷҰͭ • ओʹՄ༻ੑ্ͷνϟϨϯδ • νʔϜମ੍ ◦
ΠϯϑϥΤϯδχΞ2໊ ◦ ΞϓϦέʔγϣϯΤϯδχΞ1໊
8 8 ͳͥՄ༻ੑ্͍͔ͤͨ͞ʁ ৽ܕίϩφՒʹ͓͍ͯɺΧϥʔϛʔγϣοϓͷళฮͰങ͍Λ ͢ΔϢʔβ͕ٸ૿ ◦ τϥϑΟοΫ૿େ ◦ ηʔϧͳͲͷΞΫηεूத =>
ΞΫηεԆɺγϣοϓӾཡෆՄͳͲͷӨڹ͕ൃੜ
9 ୈ1ஈରԠʢݱࡏͷߏʣ NyahʢϓϥΠϕʔτOpenStackڥʣ্ͷΠϯελϯεʹɺ ֤ϩʔϧͷΞϓϦέʔγϣϯ͕σϓϩΠ͞Ε͍ͯΔ ؋A ؋B γϣοϓϖʔδ Χʔτϖʔδ API ϩʔυόϥϯα
ϩʔυόϥϯα ؋A ؋B γϣοϓϖʔδ Χʔτϖʔδ API ϩʔυόϥϯα ϩʔυόϥϯα ຊ൪ڥ ຊ൪ڥ ʢख࡞ۀͰߏஙʣ 9
10 ShopSet Χʔτϖʔδ γϣοϓϖʔδ API Ϧόʔε ϓϩΩγ LB https://hoge.shop-pro.jp 10
ShopSetΞʔΩςΫνϟ k8s Cluster k8s Cluster ShopSet ShopSet ShopSet ShopSet
11 11 ShopSetΞʔΩςΫνϟ ଞʹɾɾɾ • Ϧιʔε੍ݶ • ΫϥελؒεέδϡʔϦϯά • σϓϩΠ
• ΧφϦΞϦϦʔε ͳͲͷΈʹ͍ͭͯઃܭΛਐΊ͍ͯ·͢ɻ
12 ShopSetҎ֎ͷϩʔϧͷKubernetesҠߦ ShopSetҎ֎ͷϩʔϧঃʑʹKubernetesҠߦΛਐΊ͍ͯ· ͢ɻ ޙͪ͜Βͷಋೖࣄྫʹ͍͓ͭͯ͠·͢ɻ 12
13 Kubernetesͷಋೖࣄྫ ϝʔϧϚΨδϯ৴Φϓγϣϯʹ͍ͭͯ 13
14 ϝʔϧϚΨδϯ৴ΦϓγϣϯͷKubernetesಋೖ • ߏங४උ ◦ 20209݄ʙ11݄ʢଞPJฒߦͰߦ͍ͭͭ࡞ۀʣ • ϦϦʔε ◦ ஈ֊తͳϦϦʔε12/14શʹҠߦ͕ྃʂʂ
14
15 ͳͥKubernetesʹҠઃͨ͠ͷ͔ ͖͔͚ͬ • CentOS6ͷηΩϡϦςΟαϙʔτ͕202011݄ʹऴྃ • ϝʔϧϚΨδϯ৴ΦϓγϣϯΛઃఆ͢ΔͨΊͷཧϖʔ δαʔόOS͕ɺCentOS6ͰՔಇ͍ͯͨͨ͠Ίόʔδϣϯ Ξοϓ͕ඞཁͩͬͨ 15
16 ͳʹҠઃͨ͠ͷ͔ ͦͷଞͷཧ༝ • ٕज़తʹνϟϨϯδ͍͢͠ڥͩͬͨ ◦ ػೳ͕ϝʔϧςϯϓϨʔτͷ࡞ɺΞυϨεாͷ࡞ɺ৴༧ ͱগͳ͍ ◦ ΞΫηεՄೳͳϢʔβଞͷϩʔϧʹൺݶΒΕ͍ͯΔ
• PuppetϚχϑΣετ͕ϝϯςφϯε͞Εͳ͘ͳͬͯ͠·͍ɺखಈͰ ϥΠϒϥϦͷΞοϓσʔτͳͲΛߦ͍ͬͯͨ ◦ ʢଞͷϩʔϧͪΌΜͱϝϯςφϯε͞Εͯ·͢ʣ • ։ൃڥ͢ͰʹDockerͰಈ͘Α͏ʹͳ͍ͬͯͨ 16
17 ͜ΕKubernetesνϟϯεͰʁ ϊϋΛੵ͢Δʹྑ͍ػձʂ Ϣʔβ͕৮ΔϩʔϧͷKubernetesԽୈ1ஈͱͯ͠νϟϨϯδ͠·ͨ͠ʂ ʢ˞Ұ෦ͷAPIಋೖࡁΈͰͨ͠ʣ ϦΞʔΩςΫνϟνʔϜ • ΠϯϑϥΤϯδχΞ 2໊ •
ΞϓϦέʔγϣϯΤϯδχΞ 1໊ ↑ ͜͜ʹࠞͥͯΒͬͨ 17
18 ߏ • OS: CentOS6 ◦ => CentOS7 • ݴޠ:
PHP ◦ => มߋͳ͠ • Webαʔό: ApacheʢPHPϞδϡʔϧʣ ◦ => Nginx + PHP-FPM • NyahʢࣾͷϓϥΠϕʔτΫϥυʣͷΠϯελϯε ◦ =>ɹShopSetΫϥελ(Kubernetes) 18
19 ͍Ζ͍Ζ՝͕ग़͖ͯͨ • ϩάͲ͏͢Δʁ • ΤϥʔͷτϥοΩϯάʁ • ίϯςφͷࢹʁ • ηΩϡϦςΟେৎʁʁ
• ύϑΥʔϚϯεେৎʁʁ • ͳ͔ͥPodΓସ͑࣌ʹμϯλΠϜ͕ൃੜ͢Δʂ • σϓϩΠʁ ɾɾɾͳͲͳͲ 19
20 Կ͔՝ؾ͍ͮͨ͜ͱ͕ग़ͨΒ͙͢ϦΞʔΩςΫνϟνʔϜʹ૬ஊ • ຖ༦ํࡶஊ෦ʢGoogle Meetʣʹू·Δ࣌ؒΛऔ͍ͬͯ ΔͷͰɺͦ͜Ͱࠔ͍ͬͯΔ͜ͱΛ૬ஊ ◦ ૬ஊ->શһͰҰؾʹղܾͱ͍͏ྑ͍αΠΫϧ͕ճͤͨ ◦ ShopSetͷߏஙʹྑ͍ӨڹΛ༩͑ΒΕͨ
20
21 ൃੜͨ͠՝Λڠྗͯ͠ย͚͍ͯͬͨ 21 • ϩά ◦ => Fluentdܦ༝ͰBigQueryʹอଘʢStdOutͷ༰Cloud Loggingʣ •
ΤϥʔτϥοΩϯά ◦ => Sentryͷಋೖ • ίϯςφࢹ ◦ => Mackerel Agentͷಋೖ • ίϯςφηΩϡϦςΟ ◦ => ΞϓϦέʔγϣϯίϯςφηΩϡϦςΟΨΠυʢNIST࡞ɺ༁मIPAʣΛνΣοΫ • PodΓସ͑࣌ͷμϯλΠϜ ◦ => ReadinessProbeɺpreStopͷௐ • ύϑΥʔϚϯε ◦ => ଟΊʹϦιʔεΛऔͬͯϦϦʔεޙௐ
22 σϓϩΠʢShopSetผͷํࣜʣ 22 ։ൃऀ ϝϧϚΨ AppϦϙδτϦ K8sϚχϑΣετ ϦϙδτϦ ࣾ Docker
Resisty K8s Argo CDʹͯϚχϑΣετΛద༻ CI/CDʹͯɺϚʔδɾΠϝʔδͷϓογϡ ΞϓϦέʔγϣϯ Nginx, PHP-FPM K8sΫϥελ Merge Push Pull ߋ৽ͨ͠ΠϝʔδΛ͏Α͏ʹɺ ϚχϑΣετͷΠϝʔδλάΛߋ৽
23 ͦͯ͠ϦϦʔε 23 ͜ͷΑ͏ͳऔΓΈΛߦ͏͜ͱͰɺ1݅োΛൃੜͤͣ͞ແ ࣄϦϦʔε͢Δ͜ͱ͕Ͱ͖·ͨ͠
24 ·ͱΊ • ΧϥʔϛʔγϣοϓͰɺՄ༻ੑ্ͷͨΊͷࢪࡦͱ͠ ͯɺShopSetΞʔΩςΫνϟͷಋೖΛਐΊ͍ͯ·͢ɻ • KubernetesಋೖͷࡍɺεϞʔϧελʔτͯ͠ಋೖࣄྫΛ ࡞͍ͬͯ͘ͱɺϦεΫΛ࠷খݶʹ͑ϊϋΛཷΊΒΕ Δ •
͜͏͍ͬͨऔΓΈΛҰॹʹਐΊͯߦ͚ΔؒΛืूͯ͠ ͍·͢ʂ 24