Upgrade to Pro — share decks privately, control downloads, hide ads and more …

3種の神器でサブスクサービスを構築した話

 3種の神器でサブスクサービスを構築した話

2023/01/20(金)に行われた
【JP_Stripes 大阪 Vol.6】
にて発表した
「3種の神器でサブスクサービスを構築した話」
の資料です。

https://jpstripes.connpass.com/event/269776/

Takafumi Omuro

January 26, 2023
Tweet

More Decks by Takafumi Omuro

Other Decks in Technology

Transcript

  1. !.PSJTBXB*OD
    छͷਆثͰ
    αϒεΫαʔϏεΛߏஙͨ͠࿩
    גࣜձࣾϞϦαϫখࣨو࢙
    !.PSJTBXB*OD

    View Slide

  2. !.PSJTBXB*OD
    w ࣗݾ঺հ
    w גࣜձࣾϞϦαϫͷ঺հ
    w 4BB4։ൃʹࢸΔ·Ͱͷ֎஫࣌୅ͷ͓࿩
    w ܾࡁαʔϏεʹ͍ͭͯ4UJSQFΛ࢖͏લ
    w ೝূʹ͍ͭͯ0LUB$*$Λ࢖͏લ
    w 4BB4ઓུ։࢝'SPOUFOEΞʔΩςΫνϟ
    w 0LUB$*$Λར༻ͨࣾ͠಺޲͚440ରԠ
    w 0LUB$*$Λར༻ͨ͠ձһαΠτͷ੍ޚ
    w 4USJQFΛར༻ܾͨ͠ࡁॲཧ
    w $*$%ରԠ
    w ͍͞͝ʹ
    ΞδΣϯμ

    View Slide

  3. !.PSJTBXB*OD
    ໊લɿখࣨو࢙ʢ͓ΉΖ͔ͨ;Έʣ
    ॴଐɿגࣜձࣾϞϦαϫ
    ɹɹɹγεςϜ։ൃ෦γχΞϚωʔδϟʔ
    ࢓ࣄɿςοΫϦʔυ
    ɹɹɹ"84ΠϯϑϥΤϯδχΞ
    ޷͖ͳ"84αʔϏεɿ$MPVE'PSNBUJPO
    ࣗݾ঺հ

    View Slide

  4. !.PSJTBXB*OD

    View Slide

  5. !.PSJTBXB*OD
    ૑ۀ೥ʢେਖ਼೥ʣ
    ΋͏͙͢प೥Λܴ͑Δ࿝ฮاۀ
    גࣜձࣾϞϦαϫ
    ೥ࣸਅͷݪཧͰจࣈΛݱͯ͠૊Ήํ๏Λ
    ੈքʹઌۦ͚ͯൃ໌͠ʮ๜จࣸਅ২ࣈػʯΛಛڐਃ੥

    View Slide

  6. !.PSJTBXB*OD
    ػց͔Βిࢠɺͦͯ͠ϑΥϯτ΁
    ౓ͷେ͖ͳมֵ

    ࣸਅ২ࣈػ
    ʮ"ܕʯ

    ిࢉࣸਅ২ࣈػ
    ʮϥΠϊτϩϯ&5ʯ

    ϙετεΫϦϓτ
    ϑΥϯτ

    View Slide

  7. !.PSJTBXB*OD
    ෺ཧഔମ͔ΒΫϥ΢υ΁
    ϑΥϯτൢചํ๏΋มֵ

    0QFO5ZQFϑΥϯτ
    ύοέʔδ
    ചΓ੾Γ

    .03*4"8"1"441035
    ύοέʔδ
    αϒεΫϦϓγϣϯ

    .PSJTBXB'POUT
    Ϋϥ΢υ
    αϒεΫϦϓγϣϯ

    View Slide

  8. !.PSJTBXB*OD
    ෺ཧഔମ͔ΒΫϥ΢υ΁
    ϑΥϯτൢചํ๏΋มֵ

    0QFO5ZQFϑΥϯτ
    ύοέʔδ
    ചΓ੾Γ

    .03*4"8"1"441035
    ύοέʔδ
    αϒεΫϦϓγϣϯ

    .PSJTBXB'POUT
    Ϋϥ΢υ
    αϒεΫϦϓγϣϯ
    ࠓճͷ͓࿩͸͜͜
    छͷਆثΛ࠾༻

    View Slide

  9. !.PSJTBXB*OD
    ֎஫࣌୅ͷ͓࿩

    View Slide

  10. !.PSJTBXB*OD
    ܾࡁαʔϏεʹ͍ͭͯ
    4USJQFΛ࢖͏લ

    View Slide

  11. !.PSJTBXB*OD
    4USJQFΛ࢖͏લ
    ೔ຊͷέʔε
    w େਓͷࣄ৘Ͱܾࡁձܾࣾ·Γ͕ͪ
    w ΫϩʔζυͳαʔϏε͕ଟ͍
    w "1*࢓༷ͳͲ͕ඇެ։ͳͷͰ։ൃʹ͕͔͔࣌ؒΔ
    w ܾࡁϞδϡʔϧ͕෺ཧഔମͰͷೲ඼
    w ϦʔυλΠϜिؒʙ
    w *1΍/*$ͷݻఆ͕ඞཁ
    w Ϋϥ΢υͱͷ૬ੑ͕ѱ͍

    View Slide

  12. !.PSJTBXB*OD
    ࡞Δ͜ͱ͸Ͱ͖Δ͕
    ։ൃऀମݧ͕ѱ͍

    View Slide

  13. !.PSJTBXB*OD
    4USJQFΛ࢖͏લ
    ւ֎ͷέʔεʢ೥΄Ͳલͷ͓࿩ʣ
    w ถࠃରԠ
    w 1BZ1BMͰͷରԠ
    w ΞΧ΢ϯτඞਢɺαΠτϦϯΫํࣜɺӳޠͷΈ
    w ؖࠃରԠ
    w ݱ஍ΧʔυඞਢͷͨΊɺݱ஍ͷܾࡁαʔϏεར༻
    w ςετΧʔυͳ͠ɺ8JOEPXTϓϥάΠϯඞਢɺϋϯάϧͷΈ
    w ୆࿷ରԠ
    w ๏཯͕มߋ͞Εݱ஍ͷܾࡁαʔϏεඞਢʹมߋ͞Εͨ
    w ࢓༷ॻ͕ݹ͍ͷͰ໰͍߹ΘͤඞਢɺൟମࣈͷΈ

    View Slide

  14. !.PSJTBXB*OD
    ถࠃҎ֎͸೔ຊ͚ͩͰ͸ແཧ
    ։ൃऀମݧҎલͷ໰୊

    View Slide

  15. !.PSJTBXB*OD
    ೝূʹ͍ͭͯ
    0LUB$VTUPNFS*EFOUJUZ$MPVE
    Λ࢖͏લ

    View Slide

  16. !.PSJTBXB*OD
    0LUB$VTUPNFS*EFOUJUZ$MPVE Ҏޙ$*$
    Λ࢖͏લ
    "NB[PO$PHOJUPར༻
    w ϢʔβʔϓʔϧΛར༻
    w ϢʔβʔೝূͱϢʔβʔ؅ཧ͕ߦ͑Δ
    w ϝʔϧΞυϨεͱύεϫʔυೝূ͸ࠔΒͳ͍
    w ֎෦*%ϓϩόΠμʔͱ࿈ܞͨ͠ೝূΛߦ͑Δ
    w ର৅ϓϩόΠμʔ͸'BDFCPPL (PPHMF "NB[PO "QQMF
    w 5XJUUFS͕࢖͑ͳ͍
    w 5XJUUFSͷΈผ్࣮૷͢Δඞཁ͋Γ

    View Slide

  17. !.PSJTBXB*OD
    5XJUUFSରԠͷ޻਺͕େ͖͍
    ϝϯςφϯε΍ηΩϡϦςΟͷ
    ܧଓతͳରԠ͕ෆ҆

    View Slide

  18. !.PSJTBXB*OD
    ͜ΕΒΛ౿·͑ͯ
    ಺੡Խʹ੾Γସ͑ͯ੒ޭͤ͞ΔͨΊʹ

    View Slide

  19. !.PSJTBXB*OD
    71P&Λܴ͑ͯ
    ։ൃ૊৫ͷେվֵ

    View Slide

  20. !.PSJTBXB*OD
    վֵͰ͖ΔϦʔμʔͷ΋ͱͰҰ؏ੑͷ͋Δࢪࡦ
    w .*44*0/ଘࡏҙٛ
    w <&WFSZXIFSFY8PSME8JEF>
    w จࣈΛ௨ͯ͡ੈքதͷਓʑͷੜ׆ͷதʹଘࡏ͠ଓ͚Δ
    w 7*40/໨ࢦ࢟͢
    w <&YQFSUY4VTUBJOBCJMJUZ>
    w Ϟϊͮ͘Γͱٕज़Λָ͠ΊΔ<࣋ଓՄೳ>ͳ<ΤΩεύʔτूஂ>΁ਐԽ
    w 7"-6&૊৫ͷՁ஋
    w <ڞ૑ͷਫ਼ਆ>૬ޓཧղͱϦεϖΫτɺΫϩεϘʔμʔ
    w <σʔλυϦϒϯ>σʔλͱ߹ཧతͳߦಈ൑அʹՁ஋ج४Λ͓͘
    w <ָ׆>ָͪΜY҆Β͔Yָ͍͠Λ௥ٻ͢Δ։ൃ׆ಈʹՁ஋Λ͓͘
    .*44*0/7*40/7"-6&ͷ੍ఆ

    View Slide

  21. !.PSJTBXB*OD
    ͳͥ4BB4ઓུʹࢸͬͨͷ͔ʁ
    w ։ൃ಺༰͕ݻఆԽ͞Εͯۀ຿։࢝
    w ΢ΥʔλʔϑΥʔϧͳ։ൃ
    w .71ͳϦϦʔε͕Ͱ͖ͳ͍
    w ϨΨγʔͳ؀ڥʹͳΓ͕ͪ
    w ҕୗઌͷํ਑΍࣮ྗ࣍ୈ
    w ࣾ಺ͷٕज़ͷۭಎԽ
    ҕୗ։ൃͷ໰୊ʢൃ஫ଆࢹ఺ʣ

    View Slide

  22. !.PSJTBXB*OD
    ͳͥ4BB4ઓུʹࢸͬͨͷ͔ʁ
    w ։ൃ಺༰͕ݻఆԽ͞Εͯۀ຿։࢝
    w ΢ΥʔλʔϑΥʔϧͳ։ൃ
    w .71ͳϦϦʔε͕Ͱ͖ͳ͍
    w ϨΨγʔͳ؀ڥʹͳΓ͕ͪ
    w ҕୗઌͷํ਑΍࣮ྗ࣍ୈ
    w ࣾ಺ͷٕज़ͷۭಎԽ
    ˠ4BB4Λ׆༻͠ίΞίϯϐλϯεʹूத͢Δ͜ͱͰ
    ɹ಺੡ԽʹνϟϨϯδʂ
    ҕୗ։ൃͷ໰୊ʢൃ஫ଆࢹ఺ʣ

    View Slide

  23. !.PSJTBXB*OD
    ૊৫վֵͯ͠.PSJTBXB'POUT಺੡Խ։ൃελʔτ
    ։ൃํ਑
    w ϚΠΫϩαʔϏεΞʔΩςΫνϟ
    w 'SPOUFOEɺ#BDLFOEɺΠϯϑϥνʔϜ͕ಠཱͯ͠ಈ͘
    w ΫϦʔϯΞʔΩςΫνϟͰઃܭ
    w 4BB4Λۃྗ׆༻
    w ࢖͑Δ΋ͷ͸࢖ͬͯεϐʔυײΛग़͢
    w ίΞίϯϐλϯεʹूத
    w %FW0QTΛ৺͕͚Δ
    w ࣗಈԽΛৗʹߟྀ
    w $*$%Λ੔උ

    View Slide

  24. !.PSJTBXB*OD
    4BB4ઓུ։࢝ʂ

    View Slide

  25. !.PSJTBXB*OD
    'SPOUFOEΞʔΩςΫνϟ

    View Slide

  26. !.PSJTBXB*OD
    'SPOUFOE։ൃ
    7VFKT/VYUKTͷ41"
    w جຊ͸"84Λத৺ͱͨ͠$MPVE'SPOU4ͷ੩తαΠτߏ੒
    ੩తαΠτߏ੒

    View Slide

  27. !.PSJTBXB*OD
    ։ൃ؀ڥ΁ͷΞΫηε੍ݶ
    w ։ൃ؀ڥ޲͚ʹ͸8"'WΛར༻ͨ͠*1੍ݶରԠ
    ։ൃ༻ʹ*1੍ݶ
    'SPOUFOE։ൃ

    View Slide

  28. !.PSJTBXB*OD
    ࣾ಺ςετެ։ʹ440ରԠ
    w ࣾ಺ެ։͸0LUB$*$Λ࢖ͬͨ440ରԠ
    ࣾ಺ެ։͸440ରԠ
    -!&$*$.4
    'SPOUFOE։ൃ

    View Slide

  29. !.PSJTBXB*OD
    ࣾ಺ςετެ։ʹ440ରԠ
    w ࣾ಺ެ։͸0LUB$*$Λ࢖ͬͨ440ରԠ
    ࣮૷͸೔͔͔Βͣ
    ࣾ಺޲͚ͳͷͰ
    ޻਺Λ͔͚ͣʹ׬ྃ
    'SPOUFOE։ൃ

    View Slide

  30. !.PSJTBXB*OD
    0LUB$*$Λར༻ͨࣾ͠಺޲͚440ରԠ
    w ςϨϫʔΫ؀ڥͰࣾһࣗ୐͔ΒͷΞΫηε؀ڥͷߏங͕ඞཁ
    w *1੍ݶΛ౎౓ରԠ͢Δͷ͸େม
    w ্૚෦΍ӦۀͳͲશࣾһͷڠྗΛಘΔͨΊʹ͸؆ૉԽ͕ඞཁ
    w 0LUB$*$Λར༻ͯ͠.4Ͱͷ440࣮૷ʹνϟϨϯδ
    w ࣾ಺Ͱ͸.4Λར༻͍ͯ͠ΔͷͰશࣾһΛର৅ʹͰ͖Δ
    w ࣾ಺޲͚ͳͷͰ޻਺Λ͔͚ͣʹࢼͯ͠Έͨ
    w -BNCEB"VUIPSJ[FSΛར༻ɺҰ೔ఔ౓Ͱ࣮૷׬ྃ
    w $*$ʹ͸αϯϓϧ͕๛෋ͳͷͰਂ͍஌͕ࣝͳͯ͘΋Մೳ
    ࣾ಺ςετެ։༻ʹ440ରԠʹνϟϨϯδ

    View Slide

  31. !.PSJTBXB*OD
    ձһαΠτͷ੍ޚ
    w *%؅ཧΛ0LUB$*$Ͱߦ͍ɺձһαΠτ΁ͷΞΫηε੍ޚ
    *%؅ཧ͸$*$
    'SPOUFOE։ൃ

    View Slide

  32. !.PSJTBXB*OD
    ձһαΠτͷ੍ޚ
    w *%؅ཧΛ0LUB$*$Ͱߦ͍ɺձһαΠτ΁ͷΞΫηε੍ޚ
    ࠓޙͷ֎෦*E1Λ
    ݟਾ͑ͯ࠾༻
    'SPOUFOE։ൃ

    View Slide

  33. !.PSJTBXB*OD
    0LUB$*$Λར༻ͨ͠ձһαΠτͷ੍ޚ
    w ϩάΠϯը໘͸$*$Λར༻
    w ηΩϡϦςΟͳͲΛ0LUBଆʹ೚ͤΔ͜ͱ͕Ͱ͖Δ
    w ༗ྉϓϥϯͰυϝΠϯઃఆ͕Ͱ͖ΔͨΊγʔϜϨεʹ઀ଓՄೳ
    w ֎෦*E1ͱͷ઀ଓΛݟਾ͍͑ͯΔ
    w ·ͣ͸.71ͳϦϦʔεͷͨΊύεϫʔυೝূͷΈ
    w ࠓޙɺҰൠϢʔβʔ޲͚ʹ͸4/4ೝূΛݕ౼
    w ઃఆ͚ͩͰར༻ՄೳɺΞοϓσʔτͳͲ͸0LUB೚ͤ
    w اۀϢʔβʔ޲͚ʹ͸4".-ೝূରԠΛݕ౼
    0LUB$*$Λར༻͠ϢʔβʔͷೝূରԠ

    View Slide

  34. !.PSJTBXB*OD
    ܾࡁॲཧ
    w ܾࡁ͸4USJQFΛಁաతʹར༻͠Χʔυ৘ใ͸؅ཧ͠ͳ͍
    4USJQF&MFNFOUTΛར༻͠
    Χʔυೖྗ͸4USJQF೚ͤ
    'SPOUFOE։ൃ

    View Slide

  35. !.PSJTBXB*OD
    ܾࡁॲཧ
    w αϒεΫϦϓγϣϯ͸4USJQF#JMMJOHΛར༻ͯ͠4USJQFʹ೚ͤΔ
    'SPOUFOE։ൃ
    αϒεΫϦϓγϣϯͷܾࡁ͸
    4USJQF#JMMJOHͰॲཧ

    View Slide

  36. !.PSJTBXB*OD
    4USJQFΛར༻ܾͨ͠ࡁॲཧ
    w Χʔυ৘ใೖྗ͸4USJQF&MFNFOUTΛར༻
    w ಁաతʹ4USJQFʹ৘ใΛอଘͰ͖ΔͷͰ౰ࣾͰͷ؅ཧ͸ෆཁ
    w 4USJQF#JMMJOHΛར༻͠αϒεΫϦϓγϣϯ؅ཧ
    w ΫʔϙϯʹΑΔׂҾͷ࣮૷΋4USJQFͰՄೳ
    w ਺ྔׂҾ΍ܧଓׂҾͳͲෳࡶͳׂҾ΋Մೳ
    w ΫϨδοτΧʔυ͚ͩͰ͸ͳۜ͘ߦৼࠐ΍ίϯϏχܾࡁʹ΋ରԠ
    w ۜߦৼࠐ͸ϕʔλ൛͔Βར༻ͤͯ͞΋Β͑ͨ
    w ίϛϡχςΟͰதͷਓͱܨ͕Δ͜ͱ͕Ͱ͖͓͔ͨ͛ʂ
    4USJQFΛར༻ͨ͠αϒεΫϦϓγϣϯ

    View Slide

  37. !.PSJTBXB*OD
    $*$%ରԠ

    View Slide

  38. !.PSJTBXB*OD
    "84ͳͷͰ$PEFγϦʔζΛར༻
    w (JU)VCͱ$PEF1JQFMJOFΛ࿈ܞ
    13Ͱ$*ͷςετ
    .FSHFͰ$%
    'SPOUFOE։ൃ

    View Slide

  39. !.PSJTBXB*OD
    Ϛϧν04ͷ$*$%ରԠʹ$JSDMF$*Λ࠾༻
    w ΫϥΠΞϯτΞϓϦέʔγϣϯ͸ϚϧνϓϥοτϑΥʔϜରԠ͕ඞཁ
    w (PMBOHΛ༻͍ͯαʔϏεؒ௨৴ΛH31$Ͱ࡞੒͠ڞ௨Խ
    w $JSDMF$*Λ༻͍ͯɺ8JOEPXTͱNBD04ΞϓϦΛϏϧυ
    w ࣗಈςετ͕՝୊
    w (6*ͷ͋ΔΞϓϦέʔγϣϯͱࣗಈςετ͸૬ੑ͕ѱ͍
    w NBD04ͷ4BB4͸අ༻͕ߴ͍
    ΫϥΠΞϯτ։ൃ

    View Slide

  40. !.PSJTBXB*OD
    छͷਆثΛ׆༻͓͔ͨ͛͠Ͱ

    View Slide

  41. !.PSJTBXB*OD
    4USJQF$*$$JSDMF$*Λ׆༻͠ϦϦʔε׬ྃ
    ϞϦαϫͷ8FC։ൃͰॳΊͯͷ಺੡Խʹ੒ޭ
    IUUQTNPSJTBXBGPOUTDPN

    View Slide

  42. !.PSJTBXB*OD
    4BB4ઓུʹͯ͠Α͔ͬͨͱ͜Ζ
    w ίΞίϯϐλϯεʹूதՄೳ
    w 6*69΍υϝΠϯ෦෼ʹूதͰ͖Δ
    w ӡ༻ෛՙͷܰݮ
    w ηΩϡϦςΟରࡦ΍Ξοϓσʔτ͔Βͷ։์
    w ֎෦࿈ܞͷ௥Ճ΋ઃఆ͚ͩͰՄೳ
    w Ϋϥ΢υͷͱͷ૬ੑ͕ൈ܈
    w ओཁͳαʔϏεͱ࿈ܞ͢Δαϯϓϧιʔε͕๛෋
    w Ϋϥ΢υ΋Ͱ͖ΔݶΓϚωʔδυαʔϏεΛ׆༻
    w %FW0QTΛৗʹߟ͑Δ
    w $*$%ରԠ͸ඞਢɺࣗಈԽ΍ӡ༻ͷޮ཰ԽΛߟྀ͢Δ
    w ։ൃऀ͸։ൃʹूதͰ͖Δ؀ڥΛ࡞Δ
    ͍͞͝ʹ

    View Slide

  43. !.PSJTBXB*OD
    ӡ༻අ΍ਓ݅අ΋ߟ͑ͯ
    ্खʹछͷਆثΛ׆༻͠·͠ΐ͏

    View Slide

  44. !.PSJTBXB*OD
    ͋Γ͕ͱ͏͍͟͝·ͨ͠
    "84ΤϯδχΞ
    ஥ؒืूதͰ͢ʂ
    IUUQTXXXNPSJTBXBDPKQBCPVUSFDSVJU

    View Slide