Slide 1

Slide 1 text

ϚωʔϑΥϫʔυΛࢧ͑Δ ϝʔϧ഑৴ج൫ 2024/07/29 ੪౻ ༏ً (x-color)

Slide 2

Slide 2 text

Money Forward Platform Application Division ςοΫϦʔυ ϚΠΫϩαʔϏε܈ͷ։ൃӡ༻ɺ෦ͷK8sج ൫؅ཧ ੪౻ ༏ً (x-color) GitHub: @x-color X: @xcolor12

Slide 3

Slide 3 text

● ϚωʔϑΥϫʔυͷϝʔϧ഑৴ج൫ʹ͍ͭͯ ● چΞʔΩςΫνϟͷ՝୊ͱ৽ΞʔΩςΫνϟʹ͍ͭͯ ● ৽ΞʔΩςΫνϟ΁ߏ੒มߋ࣌ͷ՝୊఺ΛͲ͏ղܾ͔ͨ͠ ● ࠓޙͷల๬ ຊ೔͓࿩͢͠Δ͜ͱ

Slide 4

Slide 4 text

1ϲ݄Ͱ2.5ԯ௨Ҏ্ ͲΜͲΜ૿ՃதͰڈ೥ͱൺֱͯ͠25%ఔ౓૿͍͑ͯΔ ϚωʔϑΥϫʔυ͕ૹΔϝʔϧ਺

Slide 5

Slide 5 text

ϚωʔϑΥϫʔυͷ ϝʔϧ഑৴ج൫

Slide 6

Slide 6 text

چΞʔΩςΫνϟ

Slide 7

Slide 7 text

چΞʔΩςΫνϟͷ໰୊ ϝʔϧ഑৴αʔϏε܈͕ผʑͷνʔϜͰผʑʹ։ൃӡ༻͞Ε͍ͯͨ ● ഑৴࣌ͷࡉ͔ͳڍಈ͕όϥόϥ ○ ό΢ϯε৘ใ͸Ͳ͏ѻ͏ͷ͔ʁ ○ RFCҧ൓ͷϝʔϧΞυϨεΛͲ͏ѻ͏ͷ͔ʁ ● ϝʔϧ഑৴ͷ࢓༷มߋ࣌ʹෳ਺νʔϜΛލ͍Ͱมߋ͢Δඞཁ͕͋Δ ● جຊతʹಉ͡ػೳΛෳ਺νʔϜ͕։ൃ͍ͯ͠ΔͷͰίετ͕ແବʹ͔͔Δ ● ϝʔϧΞυϨεͱ͍ͬͨݸਓ৘ใΛͦΕͧΕͰѻ͏ඞཁ͕͋Δ

Slide 8

Slide 8 text

ϝʔϧ഑৴αʔϏεΛ ౷Ұ͠Α͏

Slide 9

Slide 9 text

ϝʔϧ഑৴αʔϏε౷Ұͷར఺ ϝʔϧ഑৴αʔϏεΛ౷Ұ͢Δͱ... ● ഑৴࣌ͷࡉ͔ͳڍಈ͕όϥόϥ ○ ഑৴ॲཧ͕ҰՕॴͰߦΘΕΔͷͰɺॲཧํ਑͕౷Ұ͞ΕΔ ● جຊతʹಉ͡ػೳΛෳ਺νʔϜ͕։ൃ͍ͯ͠ΔͷͰίετ͕ແବʹ͔͔Δ ○ શͯಉ͡νʔϜͰ։ൃӡ༻͍ͯ͠ΔͷͰ༷ʑͳίετ͕ݮগ ● ϝʔϧ഑৴ͷ࢓༷มߋ࣌ʹෳ਺νʔϜΛލ͍Ͱมߋ͢Δඞཁ͕͋Δ ○ ओʹ഑৴ॲཧ෦Λมߋ͢Δ͚ͩͰOK ● ϝʔϧΞυϨεͱ͍ͬͨݸਓ৘ใΛͦΕͧΕͰѻ͏ඞཁ͕͋Δ ○ ݸਓ৘ใ΁ͷΞΫηεܦ࿏Λ୯ҰͷαʔϏεʹߜΕΔ

Slide 10

Slide 10 text

چΞʔΩςΫνϟʢ࠶ܝʣ

Slide 11

Slide 11 text

ݱࡏͷϝʔϧ഑৴ج൫ʢ৽ΞʔΩςΫνϟʣ

Slide 12

Slide 12 text

ݱࡏͷϝʔϧ഑৴ج൫ʢ৽ΞʔΩςΫνϟʣ ຊ೔࿩͢ͱ͜Ζ

Slide 13

Slide 13 text

৽ΞʔΩςΫνϟʹࢸΔ·Ͱʹ ͲΜͳ՝୊͕͋ͬͨͷ͔ʁ

Slide 14

Slide 14 text

෼ࢄ͍ͯͨ͠഑৴ॲཧΛҰͭʹू໿͢Δ ● ϝʔϧྔ͕ෆۉҰͳେྔͷϝʔϧΛࡹ͘ඞཁ͕͋Δ ○ ຖ೔େྔͷϝʔϧΛ഑৴ͭͭ͠ɺಛఆͷ༵೔ɺ೔෇ʹ͸௥ՃͰେྔʹཁٻ͞ΕΔ ● ૹ৴଎౓ΛҰఆԽ͢Δඞཁ͕͋Δ ○ υϝΠϯϨϐϡςʔγϣϯʢϝʔϧ഑৴ऀͷධՁʣͷҡ࣋ͷͨΊ ● ϝʔϧछผʹΑΔ഑৴ظݶͷҧ͍Λѻ͏ඞཁ͕͋Δ ○ ଈ࣌Ͱ഑৴͢Δඞཁ͕͋Δ ○ ࢦఆ೔தʹૹΓ͖Δඞཁ͕͋Δ ● ͳΔ΂҆͘Ձʹ࣮ݱ͍ͨ͠ ○ ·ͩ·ͩϝʔϧ͸૿͑ΔͷͰɺίετͷ্͕Γํ͕؇΍͔Ͱ͋Δඞཁ͋Γ ৽ΞʔΩςΫνϟ΁ͷ՝୊఺

Slide 15

Slide 15 text

ʢࢀߟʣݱࡏͷϝʔϧ഑৴ྔ ຖ೔Ұఆ਺Ҏ্ͷϝʔϧΛ഑৴ͭͭ͠ɺಛఆͷ༵೔ʹ͸͞Βʹ૿͑Δɻ
 ಛఆͷ೔෇ʢڅྉ೔ͳͲʣʹ΋௥ՃͰ૿͑Δɻ 1࣌ؒ͋ͨΓ 300ສ௨ఔ౓

Slide 16

Slide 16 text

՝୊΁ͷΞϓϩʔν

Slide 17

Slide 17 text

ServerͱSenderͰ෼͔Ε͓ͯΓɺ
 ඇಉظͰϝʔϧ഑৴Λߦ͍ͬͯΔɻ
 RDBΛར༻ͯ͠શͯͷ৘ใΛ؅ཧɻ ͜ͷ··৽ΞʔΩςΫνϟʹ͢Δͱɺɺ ● Write͕ଟ͍ͷͰDB͕ϘτϧωοΫʹͳΔ ● DB͕༰қʹεέʔϧΠϯ/Ξ΢τͰ͖ͳ͍ ● େྔͷϝʔϧΛࡹ͘ʹ͸ߴεϖοΫͳDB͕ඞཁͰ ίετ͕ߴ͍ ● શͯͷϝʔϧ͕Ұॹͨ͘ʹѻΘΕΔ ϝʔϧ഑৴ϚΠΫϩαʔϏεͷچΞʔΩςΫνϟ

Slide 18

Slide 18 text

طଘͷϝʔϧαʔϏεͷར༻ঢ়گͷ෼ੳ͔Β࢝Ίͨ ● ϝʔϧͷ഑৴ྔ ○ ཁٻ͞ΕΔ࠷େεϧʔϓοτ͸ʁ ■ ਺ඦRPS͸ඞਢɻকདྷతʹ͸1000RPSҎ্ ○ ഑৴ྔͷมԽ͸Ͳͷ͙Β͍ʁ ■ ೥୯ҐͰ25%Ҏ্૿͍͑ͯΔ ● ϝʔϧͷαΠζ ○ খ͍͞ϝʔϧ͕ଟ͍ͷ͔ɺେ͖ͳϝʔϧ͕ଟ͍ͷ͔ʁ ■ ΄΅શ͕ͯখ͍͞ϝʔϧʢ256KBҎԼʣ ࣮ࡍͷϝʔϧͷར༻ঢ়گͷ෼ੳ

Slide 19

Slide 19 text

ϝʔϧ഑৴ϚΠΫϩαʔϏεͷߏ੒

Slide 20

Slide 20 text

ϝʔϧ഑৴͸ϝοηʔδΩϡʔΛར༻ͨ͠ ඇಉظॲཧͱͳ͍ͬͯΔɻ ΄ͱΜͲͷϝʔϧ͕খ͍͞ͷͰϝʔϧ৘ใ Λ·ͱΊͯϝοηʔδʹ֨ೲ͍ͯ͠Δɻ ͜Ε͸ओʹԼه໨తͷͨΊʹಋೖ ● ෆۉҰͳϝʔϧྔΛ҆ఆͯ͠ѻ͏ ● ഑৴଎౓ͷҰఆԽ ● ϓϩμΫτ΁ͷߴ଎ͳϨεϙϯε ● ૹ৴ॲཧͷ༰қͳϦτϥΠ ϝοηʔδΩϡʔͷར༻

Slide 21

Slide 21 text

SNS΍SQS͸ϝοηʔδαΠζ্ݶ͕ খ͍͞ʢ256KB)ɻ େ͖ͳϝʔϧΛૹ৴͢Δ৔߹͸S3ʹ ϝʔϧ৘ใΛஔ͍͓͖ͯɺͦ͜΁ͷΞΫ ηεύε͚ͩϝοηʔδʹೖΕͯྲྀ͠ ͍ͯΔɻ ※શϝʔϧΛS3΁ྲྀ͢ͷ͸ίετ͕ߴ͍ ϝοηʔδΩϡʔͷར༻

Slide 22

Slide 22 text

SNS͸ෳ਺ͷSQSͱ઀ଓ͠ɺϝʔϧछผ σʔλΛར༻ͯ͠഑৴ઌͷSenderΛܾఆɻ ϝʔϧछผ͝ͱʹεέʔϧΞ΢τՄೳͰ͋ Γɺ഑৴଎౓Λ੍ޚɻ͜ΕʹΑΓ഑৴ظݶ ͷҧ͍Λѻ͏͜ͱ͕Ͱ͖Δɻ Sender͕෼͔Ε͍ͯΔͷͰɺछผ͝ͱʹॲ ཧΛ෼͚ΒΕΔʢ஗ԆDBͷࢀরͳͲʣ ϝʔϧछผ͝ͱʹεέʔϥϒϧͳߏ੒

Slide 23

Slide 23 text

DynamoDBΛར༻ͯ͠ɺϝʔϧͷૹ৴ঢ়ଶ৘ใ Λѻ͍ͬͯΔɻ αʔϏεಛੑ্Write͕ଟ͘ɺ࣌ؒଳ΍೔෇ʹ ΑΓར༻཰͕େ͖͘ҟͳΔɻ →RDBͰ͸
 ɹߴίετ & εέϥʔϏϦςΟෆ଍ ͳ͓ɺଟॏ഑৴Λආ͚ΔͨΊʹCondition expressionsΛར༻ͯ͠ഉଞ੍ޚΛߦ͍ͬͯ Δɻ Key-ValueετΞͷར༻

Slide 24

Slide 24 text

ϢʔβʔͷΈͳ͞Μ΁ਖ਼ৗʹϝʔϧΛ഑৴͠ଓ͚͍ͯ·͢ ● 1ϲ݄ʹ2.5ԯ௨ఔ౓ ○ ൒೔Ͱ࠷େͰ1500ສ௨ఔ౓ ● ࠷େεϧʔϓοτ 1200RPS+ ○ ͜͜·Ͱཁٻ͞ΕΔ͜ͱ͸ݱঢ়ͳ͍ ● ίετ 80%Χοτ ○ ϝʔϧ഑৴ϚΠΫϩαʔϏεͷվमલ/ޙͰࢉग़ Քಇঢ়گ

Slide 25

Slide 25 text

ࠓޙͷల๬

Slide 26

Slide 26 text

● ֤छϝʔϧ෼ੳͷαϙʔτ ○ ϝʔϧ͸ಧ͍ͨ/ό΢ϯε͔ͨ͠ ■ σʔλ͸͋Δ͕ɺϓϩμΫτଆ͕֬ೝͮ͠Β͍ঢ়گ ○ ։෧཰΍ϦϯΫͷΫϦοΫ཰ͳͲͷ֤छϝτϦΫεͷ௥੻ ■ Ұ෦ͷϝʔϧ͸Ͱ͖͍ͯΔ͕ɺશͯͷϝʔϧͰαϙʔτͰ͖ΔΑ͏ʹ͍ͨ͠ ● ಺෦αʔϏεؒͷ࿈ܞͷڧԽ ○ ݩʑผαʔϏεͩͬͨͷͰɺ·ͩඇޮ཰ͳ౷߹͕࢒͍ͬͯΔ ·ͩ·ͩղܾ͍ͨ͠՝୊͸ͨ͘͞Μ

Slide 27

Slide 27 text

·ͱΊ

Slide 28

Slide 28 text

● ϚωʔϑΥϫʔυͷϝʔϧ഑৴ج൫ͷ঺հ ○ ػೳ୯ҐͰͷαʔϏεू໿͸ϝϦοτ͕ଟ͍ ● େྔͷϝʔϧΛࡹͨ͘Ίʹ ○ ࣮ࡍͷར༻ঢ়گʹԠͨ͡ΞʔΩςΫνϟ࠷దԽ ○ ϝοηʔδϯάαʔϏεͷ༗ޮ׆༻ ○ Key-ValueετΞͷ׆༻ ·ͱΊ

Slide 29

Slide 29 text

Thank you!!

Slide 30

Slide 30 text

όοΫΤϯυΤϯδχΞ ੵۃ࠾༻த https://hrmos.co/pages/ moneyforward/jobs/ 1960606981176266893