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
生成AIとM5Stack / M5 Japan Tour 2025 Autumn 東京
you
PRO
0
240
これがLambdaレス時代のChatOpsだ!実例で学ぶAmazon Q Developerカスタムアクション活用法
iwamot
PRO
5
230
能登半島災害現場エンジニアクロストーク 【JAWS FESTA 2025 in 金沢】
ditccsugii
0
210
「Verify with Wallet API」を アプリに導入するために
hinakko
1
270
業務効率化をさらに加速させる、ノーコードツールとStep Functionsのハイブリッド化
smt7174
2
110
ガバメントクラウド(AWS)へのデータ移行戦略の立て方【虎の巻】 / 20251011 Mitsutosi Matsuo
shift_evolve
PRO
2
180
Reflections of AI: A Trilogy in Four Parts (GOTO; Copenhagen 2025)
ondfisk
0
100
ACA でMAGI システムを社内で展開しようとした話
mappie_kochi
1
310
Uncle Bobの「プロフェッショナリズムへの期待」から学ぶプロの覚悟
nakasho
2
100
「AI駆動PO」を考えてみる - 作る速さから価値のスループットへ:検査・適応で未来を開発 / AI-driven product owner. scrummat2025
yosuke_nagai
3
800
Adapty_東京AI祭ハッカソン2025ピッチスライド
shinoyamada
0
220
カンファレンスに託児サポートがあるということ / Having Childcare Support at Conferences
nobu09
1
490
Featured
See All Featured
A Tale of Four Properties
chriscoyier
160
23k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
How STYLIGHT went responsive
nonsquared
100
5.8k
Visualization
eitanlees
148
16k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
GraphQLとの向き合い方2022年版
quramy
49
14k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Become a Pro
speakerdeck
PRO
29
5.5k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
620
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
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