Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BtoBスタートアップとサーバーレス / Serverless Architecture fo...
Search
Yosuke Hizen
August 21, 2018
Technology
5
2.3k
BtoBスタートアップとサーバーレス / Serverless Architecture for a BtoB Startup
Yosuke Hizen
August 21, 2018
Tweet
Share
More Decks by Yosuke Hizen
See All by Yosuke Hizen
プロダクト開発チームの紹介 / Engineers at HiCustomer
hizeny
6
370k
サーバーレスとスケーラブルなデータ集計 / Aggregate Processing with Serverless
hizeny
2
12k
サーバーレス失敗談 - DynamoDB編 / Serverless Fails
hizeny
13
10k
サーバーレス・スタートアップ / Serverless Startup
hizeny
1
2.6k
Other Decks in Technology
See All in Technology
"人"が頑張るAI駆動開発
yokomachi
1
100
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
760
[2025-12-12]あの日僕が見た胡蝶の夢 〜人の夢は終わらねェ AIによるパフォーマンスチューニングのすゝめ〜
tosite
0
140
AWSに革命を起こすかもしれない新サービス・アップデートについてのお話
yama3133
0
480
SREが取り組むデプロイ高速化 ─ Docker Buildを最適化した話
capytan
0
130
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
1
390
20251222_サンフランシスコサバイバル術
ponponmikankan
2
140
_第4回__AIxIoTビジネス共創ラボ紹介資料_20251203.pdf
iotcomjpadmin
0
120
20251222_next_js_cache__1_.pdf
sutetotanuki
0
170
[Neurogica] 採用ポジション/ Recruitment Position
neurogica
1
100
[Data & AI Summit '25 Fall] AIでデータ活用を進化させる!Google Cloudで作るデータ活用の未来
kirimaru
0
2.4k
日本Rubyの会: これまでとこれから
snoozer05
PRO
5
220
Featured
See All Featured
Docker and Python
trallard
47
3.7k
Tell your own story through comics
letsgokoyo
0
750
The browser strikes back
jonoalderson
0
120
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
190
Why Our Code Smells
bkeepers
PRO
340
57k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
120
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Typedesign – Prime Four
hannesfritz
42
2.9k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
Speed Design
sergeychernyshev
33
1.4k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
66
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
0
1.8k
Transcript
BtoBελʔτΞοϓͱ αʔόʔϨε B2BελʔτΞοϓΤϯδχΞφΠτ 2018.08.21 HiCustomer inc. ංલ༸༎ @hizeny
• ංલ༸༎ • @hizeny • ڞಉۀऀ VP of Engineering •
ࢁͳͲΛΓ·͢
HiCustomer inc. • 201712݄ۀ • ϑϧλΠϜ3ਓ / ۀҕୗ + ෭ۀ6ਓ
• ϏδωεαΠυ: 2ਓ • σβΠφʔ: 1ਓ • ΤϯδχΞ: 6ਓ • https://hicustomer.jp/
ΧελϚʔαΫηεͷ՝ʹ αʔόʔϨεΞʔΩςΫνϟͰऔΓΉ اۀͰ͢ ɺ
࣍ 1. αʔϏεͷѻ͏υϝΠϯ • ΧελϚʔαΫηεͱ • ϓϩμΫτͷѻ͏ϏδωεϩδοΫ 2. υϝΠϯͷಛੑͱٕज़తΞϓϩʔν •
ॲཧͷྲྀΕ • ߟྀ͖͢͜ͱ • ΞʔΩςΫνϟ • ։ൃݴޠ • ࠓޙͷ՝ • (͓·͚) ౿Έൈ͍ͨαʔόʔϨεΞϯνύλʔϯ
αʔϏεͷѻ͏υϝΠϯ ͳʹΛ࣮ݱ͍ͨ͠ͷ͔
ΧελϚʔαΫηεͱ • ಋೖ࣌ʹιϑτΣΞͷॴ༗ݖΛങ͍औΔ • ΦϯϓϨϛεͰӡ༻ SaaSͷొʹΑΓιϑτΣΞͷఏڙํ๏ͷมԽ • ఆظߪಡ or ैྔ՝ۚ
• αʔϏεͱͯ͠ඞཁͳͱ͖ʹඞཁͳ͚ͩར༻ SaaSҎલ SaaSҎޙ
• ॳظ։ൃ࣌ʹҰؾʹ࡞ΓࠐΉ • ΥʔλʔϑΥʔϧ ։ൃख๏มԽ • ܧଓతΠϯςάϨʔγϣϯ/σϦόϦ • εΫϥϜ /
ΞδϟΠϧ ΧελϚʔαΫηεͱ SaaSҎલ SaaSҎޙ
• ചΓ্͛ͷେ෦ॳظಋೖඅ༻͕ΊΔ • ϚʔέςΟϯά / ηʔϧεʹྗ ൢചઓུಉ༷ʹมԽ • ܧଓར༻/ར༻֦େʹΑΓചΓ্͛ΛੵΈ্͛Δ •
Λ͗ɺ༗ޮ׆༻Λଅ͢͜ͱ͕ॏཁ ΧελϚʔαΫηεͱ SaaSҎલ SaaSҎޙ
ΧελϚʔαΫηεͱɺ ʮΛ͗ɺ༗ޮ׆༻Λଅ͢ʯ׆ಈͷ͜ͱ ൢചઓུಉ༷ʹมԽ ΧελϚʔαΫηεͱ HiCustomerΧελϚʔαΫηεʹඞཁͳใΛऩू͠ɺ ਖ਼͍͠λΠϛϯάͰਖ਼͍͠ΞΫγϣϯΛߦ͏ͨΊͷϓϥοτϑΥʔϜ
࣮ݱ͍ͨ͠ϏδωεϩδοΫ HiCustomerͷ3ͭͷओཁ֓೦ 1. ΧελϚʔ • (BtoB) SaaSϓϩμΫτΛར༻͍ͯ͠Δސ٬اۀ 2. εςʔδ •
ϓϩμΫτͷར༻ϑΣʔζ • e.g. τϥΠΞϧ / ΦϯϘʔσΟϯά / ܖߋ৽લͳͲ 3. ϔϧεείΞ • ΧελϚʔ͕ϓϩμΫτΛ׆༻Ͱ͖͍ͯΔ͔ͷࢦඪ • ֤εςʔδʹ͍ͭͯఆٛͨ͠ཧతͳΧελϚʔͷৼΔ͍ʹରͯ͠Ͳͷఔ͍͔ۙ͠ʹΑΓධՁ͢Δ • e.g. Good / Normal / Bad
࣮ݱ͍ͨ͠ϏδωεϩδοΫ • SaaSϓϩμΫτͷΧελϚʔΛϓϩμΫτͷར༻ϩά͔Βεςʔδʹྨ • εςʔδ͝ͱʹఆٛͨ͠ج४ΛͱʹϔϧεείΞΛࢉग़ • ࢉग़͞Εͨεςʔδ / ϔϧεείΞΛͱʹରԠͷ༏ઌॱҐΛܾఆ •
εςʔδ / ϔϧεείΞͷͱ࣮ࡍͷ/ར༻֦େΛরΒ͠߹ΘͤͯϧʔϧΛνϡʔχϯά
࣮ݱ͍ͨ͠ϏδωεϩδοΫ • SaaSϓϩμΫτͷΧελϚʔΛϓϩμΫτͷར༻ϩά͔Βεςʔδʹྨ • εςʔδ͝ͱʹఆٛͨ͠ج४ΛͱʹϔϧεείΞΛࢉग़ • ࢉग़͞Εͨεςʔδ / ϔϧεείΞΛͱʹରԠͷ༏ઌॱҐΛܾఆ •
εςʔδ / ϔϧεείΞͷͱ࣮ࡍͷ/ར༻֦େΛরΒ͠߹ΘͤͯϧʔϧΛνϡʔχϯά
υϝΠϯͷಛੑͱΞϓϩʔν ϏδωεϩδοΫΛͲͷΑ͏ʹ࣮ݱ͢Δ͔
ॲཧͷྲྀΕ • ֤ࣾͷSaaSϓϩμΫτ͔ΒૹΒΕͯ͘ΔΧελϚʔͷߦಈϩάΛऩू͢Δ • ʮۙnؒͰΠϕϯτA͕mճҎ্ߦΘΕͨʯʮܖߋ৽·ͰnҎʯͳͲͷϧʔϧʹج͖ͮΧελϚʔͷ εςʔλε (είΞ/εςʔδ) Λࢉग़͢Δ • ΧελϚʔͷεςʔλεΛμογϡϘʔυͰՄࢹԽ͢Δ
ߟྀ͖͢͜ͱ αʔϏεͷಛੑ: • ࣌ܥྻσʔλ (ϓϩμΫτͷར༻ϩά) ΛΠϕϯτυϦϒϯʹѻ͏ • Πϕϯτͷछྨ͕ΫϥΠΞϯτʹΑΓେ͖͘ҟͳΔ ੑೳཁ݅: •
ϩάऩूͷՄ༻ੑ/Ϩεϙϯε͕ͬͱॏཁ • ಋೖઌϓϩμΫτنʹΑΓτϥϑΟοΫͷٸ૿͕ߟ͑ΒΕΔ
ΞʔΩςΫνϟ ଟ༷ͳΠϕϯτσʔλΛѻ͏ͨΊͷΞϓϩʔν • SaaSϓϩμΫτ͝ͱʹҟͳΔσʔλܕΛѻ͑ΔΑ͏ɺσʔλετΞʹDynamoDBΛ࠾༻ • σʔλͷॻ͖ࠐΈΛड͚ͯผͷΠϕϯτΛτϦΨʔͰ͖ΔͷͰΠϕϯτυϦϒϯͳΞϓϦέʔγϣϯͱ૬ੑ͕ྑ͍
ΞʔΩςΫνϟ ऩूॲཧͷՄ༻ੑΛߴΊΔΞϓϩʔν • Immutable Tablesॻ͖ࠐΈɺMutable TablesಡΈࠐΈʹ࠷దԽͨ͠ςʔϒϧ (CQRSͷ֓೦) • Immutable TablesʹશͯͷΠϕϯτ͕ه͞ΕΔ
• Immutable Tablesͷॻ͖ࠐΈΠϕϯτΛτϦΨʔʹूܭॲཧ͕Γɺ݁ՌΛMutable Tablesʹه͢Δ • ·ͣॻ͖ࠐΈίετͷ͍ImmutableͳςʔϒϧʹσʔλΛอଘ͢Δ͜ͱͰߴτϥϑΟοΫ࣌ͷσʔλܽଛΛ͙ • ूܭॲཧʹࣦഊͯ͠Immutable Tablesʹσʔλ͕อଘ͞Ε͍ͯΕॲཧΛϦτϥΠͰ͖Δ
։ൃݴޠ ࣌ͷબࢶ: • Python • Node.js • Go • Java
• .NET GoΛબΜͩཧ༝: • ࣮ߦ • ฒྻ • ֶशίετͷ͞ • ૉͳॻ͖ຯ ࣮ߦڥͱͯ͠AWS LambdaΛબͨ࣌͠Ͱ͋ΔఔߜΒΕͨத͔Βબఆ ଞͷݴޠॲཧܥ͔ΒདྷͯΩϟονΞοϓ͍͢͠ͱ͍͏ߟྀͯ͠GoΛબ (Scala/RubyϝΠϯͰͨ͠)
ࠓޙͷ՝ • ετϦʔϜॲཧͷεϩοτϦϯά • DynamoDB Streams4events/secݻఆ • ΑΓॊೈͳόοϑΝϦϯάͷͨΊKinesisΛಋೖ • ςʔϒϧ/ΠϯσοΫεͷΛݮΒ͢
• ςʔϒϧ͕ࢄ͢ΔͱΩϟύγςΟαΠζ࠷దԽͷ໘Ͱෆར • DynamoDBrange keyͰΞΠςϜͷछྨΛදݱ͢ΔΑ͏ʹ͢ΕҟͳΔछྨͷΞΠςϜΛ 1ςʔϒϧͰѻ͏͜ͱ͕Մೳ • ߴͳݕࡧͷ࣮ݱ • DynamoDBͷΈͰݕࡧػೳ͢ΔͷࠔɺιʔτΛ࣮ݱ͢Δ͚ͩͰ1ྻ1index͕ඞཁ • ݕࡧΤϯδϯͱͯ͠ElasticsearchΛಋೖ
(͓·͚) ౿Έൈ͍ͨ αʔόʔϨεΞϯνύλʔϯ • ϢʔεέʔεʹԊΘͳ͍εΩʔϚઃܭ • RDBͱಉ͡Α͏ͳΞϓϩʔνͰ͋Δఔਖ਼نԽͯ͠σʔλϞσϧ͝ͱʹςʔϒϧΛ͚ ͍ͯͨ • DynamoDBͰϢʔεέʔεͷಉ͡σʔλͷςʔϒϧΛ͢Δͱݪࢠੑͱಠཱੑ͕ࣦ
ΘΕɺΩϟύγςΟαΠζ࠷దԽͷ໘Ͱෆར • ݕࡧKVSϕʔεͷNoSQLͰؤுΔ • ଟͷΞΠςϜΛදࣔ͢ΔҰཡը໘ͰͷݕࡧιʔτDynamoDBͰΖ͏ͱ͍ͯͨ͠ • ྻ͕૿͑Δͨͼindex͕૿͑ॻ͖ࠐΈίετ૿Ճ • શจݕࡧͳͲؒҧ͍ͬͨํΛ͢Δͱશ͘ύϑΥʔϚϯε͕ग़ͳ͍ͷͰɺ༻్ʹదͨ͠ ΞʔΩςΫνϟ(͜ͷ߹ElasticsearchͳͲ)Λซ༻͢Δͷ͕ྑ͍
Θ͔ͬͨ͜ͱ • ཁ݅ʹΑΓ͖ෆ͖͕͋Δ (େલఏ) • ΠϕϯτιʔγϯάͳΞϓϦέʔγϣϯͱ૬ੑ͕ྑ͍ • ਖ਼͑͘͠ΞϓϦέʔγϣϯ։ൃʹूதͰ͖Δ • ॻ͖ࠐΈͱಡΈࠐΈͷςʔϒϧΛ͚͓ͯ͘ͱϢʔεέʔε͕มΘͬͯσʔλϞσϧ͕ม
ߋ͍͢͠ • ϓϩμΫτͷํੑ͕શʹఆ·͍ͬͯͳ͍ελʔτΞοϓͰಛʹॏཁ • σʔλετΞͷΞΫηεநԽͯ͠มߋΈ߹ΘͤΛ͍͢͠Α͏ʹ͓ͯ͘͠ͱΑ͍ • ݕࡧElasticsearchͰߦ͏Α͏ʹ͢ΔɺͳͲ͕ޙ͔ΒͰ͖Δ • ཁ্݅ɺRDS͕ඞཁʹͳͬͨͱͯ͠KinesisΛڬΜͰඇಉظ࣮ߦͳͲͰͳΜͱ͔͢Δ͜ͱͰ͖Δ BtoBελʔτΞοϓͱ͍͏จ຺ͰAWS Lambda + DynamoDBΛத৺ͱͨ͠ߏͰͷ ΞϓϦέʔγϣϯ։ൃΛߦͬͨײ
ΧελϚʔαΫηεͷ՝ʹ αʔόʔϨεΞʔΩςΫνϟͰऔΓΉ اۀͰ͢ ɺ
We’re Hiring Engineers! https://www.wantedly.com/companies/hicustomer
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ B2BελʔτΞοϓΤϯδχΞφΠτ 2018.08.21 HiCustomer inc. ංલ༸༎ @hizeny