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
Poiboy改善への道
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Daichi Toma
January 23, 2019
Programming
1
940
Poiboy改善への道
Daichi Toma
January 23, 2019
Tweet
Share
More Decks by Daichi Toma
See All by Daichi Toma
さよなら、レガシー画像変換システム
amothic
0
2k
Other Decks in Programming
See All in Programming
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
170
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
Data-Centric Kaggle
isax1015
2
780
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
470
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
330
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
210
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
310
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
180
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
610
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
140
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.4k
Featured
See All Featured
Skip the Path - Find Your Career Trail
mkilby
0
58
Deep Space Network (abreviated)
tonyrice
0
64
Design in an AI World
tapps
0
150
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
52k
How to build a perfect <img>
jonoalderson
1
4.9k
We Are The Robots
honzajavorek
0
170
Docker and Python
trallard
47
3.7k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
240
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
58
50k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Transcript
Poiboyվળͷಓ Matching Dev Meetup#2 - ServerSide January 23, 2019 Daichi
TOMA
About Me ᙛᚸ େઍ @Amothic גࣜձࣾ Diverse ϛΫγΟʹ৽ଔೖࣾ͠ɺmixi ϞϯελʔετϥΠ ΫͷαʔόαΠυ։ൃʹैࣄ
ձࣾͷมߋʹ͍ɺגࣜձࣾDiverseʹస੶ ݱࡏPoiboyͷαʔόαΠυΠϯϑϥͷվળΛ ߦͬͯ·͢
Poiboy • Πέϝϯָ͕͘͠ݟ͔ͭΔϚονϯάΞϓϦ • 2016ϦϦʔε • ձһ100ສਓಥഁ
None
20174݄ Poiboyͷ։ൃʹδϣΠϯɾɹɹ
৽͍͠ΞϓϦͳͷʹ ົʹݹΊ͔͍͠ॴ͕ଟ͍
ؤு͔ͬͯ͢͠ͳ͍
՝ࢁੵΈ
Ͳͷॱ൪Ͱ͍͔ͯ͘͠
վળͷಓ
վળͷಓ 1. (ࢲͷ) ։ൃͷΔؾ͕ͳ͘ͳΔݪҼΛվળ 2. ์ஔ͍ͯ͠ΔͱΠϯγσϯτ͕ى͖ΔՕॴͷ վળ 3. ਝʹ։ൃͰ͖ͳ͍ཧ༝Λվળ
վળͷಓ 1. ։ൃڥΛDockerԽ 2. GitHubҠߦ 3. DBϚΠάϨʔγϣϯπʔϧͷಋೖ 4. ߏཧΛAnsible 5.
ΦϯϓϨϛε͔Βͷ٫ 6. ৫ͷϧʔϧΛม͑Δ (൪֎ฤ)
վળͷಓ 1. ։ൃڥΛDockerԽ 2. GitHubҠߦ 3. DBϚΠάϨʔγϣϯπʔϧͷಋೖ 4. ߏཧΛAnsible 5.
ΦϯϓϨϛε͔Βͷ٫ 6. ৫ͷϧʔϧΛม͑Δ (൪֎ฤ)
։ൃڥͷDockerԽ • ࣮ݩ͔ΒDocker͕ͩͬͨɺ ͳ͔ͥ։ൃڥͷηοτΞοϓʹ1͔͔Δ • DockerΛVMͷΑ͏ʹ͍ͬͯͨͷ͕ݪҼ • DockerVMͰͳ͍ • Ұ൪࠷ॳʹਏ͍ؾ࣋ͪʹͳͬͨͷͰɺ
Ұ൪࠷ॳʹΔ͜ͱʹͨ͠
։ൃڥͷDockerԽ • DockerfileΛ࡞Γ͠ɺDocker Hub ͰࣗಈϏϧυ͢ΔΑ͏ʹ • docker-composeΛ׆༻ɺ1ίϯςφ1αʔϏεʹͳΔΑ͏ʹ ཧ • ϕʔεΠϝʔδʹalpineΛ࠾༻ɺΠϝʔδͷαΠζΛ
3GB → 200MBҎԼʹ (ѹॖαΠζ70MBҎԼ) • ηοτΞοϓʹ1͔͔͍ͬͯͨͷ͕ɺ 15ҎͰऴΘΔΑ͏ʹͳͬͨ
վળͷಓ 1. ։ൃڥΛDockerԽ 2. GitHubҠߦ 3. DBϚΠάϨʔγϣϯπʔϧͷಋೖ 4. ߏཧΛAnsible 5.
ΦϯϓϨϛε͔Βͷ٫ 6. ৫ͷϧʔϧΛม͑Δ (൪֎ฤ)
GitHubͷҠߦ • ݩʑϩʔΧϧڥͷGitLabΛར༻͍ͯͨ͠ • ͋Μ·ΓΠέͯΔUXͰͳ͍ (ݸਓͷΈͰ͢) • GitLabΛࣗલͰϝϯς͢Δίετ͕ߴ͍ • OSSͷίʔυେମGitHubʹ͋Δ
GitHubʹ׳Ε͓ͯ͘ϝϦοτΘΓͱ͋Δ
GitHubͷҠߦ • ઌʹGitLab CI͔ΒCircleCIςετΛҠߦ (దͳDockerԽ͞Ε͍ͯΕ؆୯) • CIΛҠͨ͠λΠϛϯάͰશҠߦ • શࣾͰ։ൃʹར༻ͨ͠ίʔυ͕ࣾ֎ʹެ։͞ΕΔ Α͏ʹͳͬͨ
(ݱࡏɺDiverse ͷ Public Repositoryͷ 23ݸ)
վળͷಓ 1. ։ൃڥΛDockerԽ 2. GitHubҠߦ 3. DBϚΠάϨʔγϣϯπʔϧͷಋೖ 4. ߏཧΛAnsible 5.
ΦϯϓϨϛε͔Βͷ٫ 6. ৫ͷϧʔϧΛม͑Δ (൪֎ฤ)
DBϚΠάϨʔγϣϯπʔϧͷಋೖ • େྔͷsqlϑΝΠϧ͕ϦϙδτϦʹ ஔ͔Ε͍ͯΔ͚ͩͷঢ়ଶͩͬͨ • Ͳ͜·Ͱద༻͔ͨ͠ద༻͍ͯ͠ͳ͍͔ ͔Βͳ͍ • ઈରͦͷ͏ͪࣄނΔ
DBϚΠάϨʔγϣϯπʔϧͷಋೖ • RidgepoleΛಋೖ • SchemafileʹςʔϒϧఆٛΛॻ͍͓ͯ͘ͱ applyίϚϯυͰөͰ͖Δਆπʔϧ • ႈੑ͕͋Γɺ͍͍͢
վળͷಓ 1. ։ൃڥΛDockerԽ 2. GitHubҠߦ 3. DBϚΠάϨʔγϣϯπʔϧͷಋೖ 4. ߏཧΛAnsible 5.
ΦϯϓϨϛε͔Βͷ٫ 6. ৫ͷϧʔϧΛม͑Δ (൪֎ฤ)
ߏཧΛAnsible • ߏཧ͕υΩϡϝϯτʹΑΔਓྗ • Α͋͘Δ͜ͱͳͷͰɺͬ͘͞ͱAnsibleʹ͢Δ • RolesΛ্ख͍͘ɺ࠶ར༻ੑΛߴΊ͓ͯ͘ • ॻ͖ํgeerlingguy͞ΜͷϦϙδτϦΛ ࢀߟʹ͢Δͷ͕ϕετϓϥΫςΟε
(ͩͱࢥ͍ͬͯΔ)
վળͷಓ 1. ։ൃڥΛDockerԽ 2. GitHubҠߦ 3. DBϚΠάϨʔγϣϯπʔϧͷಋೖ 4. ߏཧΛAnsible 5.
ΦϯϓϨϛε͔Βͷ٫ 6. ৫ͷϧʔϧΛม͑Δ (൪֎ฤ)
ΦϯϓϨϛε͔Βͷ٫ • ΦϯϓϨϛεͰಈ͍͍ͯͨ (ਖ਼֬ʹϗεςΟϯάαʔϏε) • ґཔ͢ΔͷʹϝʔϧΛ͛ͯɺ2~3ͭ ඞཁ͕͋Δ • Γ͍ͨ͜ͱΛ͑Δͷ͕େม
ΦϯϓϨϛε͔Βͷ٫ • ਝʹɺ࣮ͦͯ֬͠ʹ։ൃ͢ΔͨΊ AWSҠߦΛܾҙ • ͳΔ͘ϑϧϚωʔδυαʔϏεΛ׆༻͠ ҠߦίετԼ͛Δ
ΦϯϓϨϛε͔Βͷ٫ • Ҡߦ͢Δ͖ͷҰཡ • DNS • Image Server • DB
• memcached • App
ΦϯϓϨϛε͔Βͷ٫ DNS • Route 53Λར༻ • ଞ͔Βͷґଘ͕গͳ͍ͷͰҰ൪༰қ • ͔͠͠ࣄނΔͱ࣮֬ʹࢮ͵ͷͰɺ ςετ͔ͬ͠ΓΔ
ΦϯϓϨϛε͔Βͷ٫ Image Server • ը૾ͷΩϟογϡͱมΛߦ͏ઐ༻ͷαʔό ͕ෳ͋ͬͨ • ΩϟογϡͱมΛ͚ͯߟ͑Δ • Ωϟογϡ
→ CloudFront • ม → DockerԽ͠ɺECSͰӡ༻
ΦϯϓϨϛε͔Βͷ٫ DB • ࣗલӡ༻ͷMySQL͔ΒAuroraҠߦ • AWSͰAuroraΛΘͳ͍ཧ༝͕͋·Γͳ͍
ΦϯϓϨϛε͔Βͷ٫ memcached • ී௨ʹElastiCacheΛ͏
ΦϯϓϨϛε͔Βͷ٫ App • ansibleΛͦͷ··͍͔ͨͬͨͷͰEC2 • ࠓͩͬͨΒFargateʹ͍ͯͨ͠ͱࢥ͍·͢ • ਝͳεέʔϧ͕Մೳʹͳͬͨ (ࠓ·Ͱ ͔͔ͬͨ)
ΦϯϓϨϛε͔Βͷ٫ ͦͷଞ • AWSҠߦͯ͠োରԠ͕ѹతʹݮͬͨ • ίετظ͕ؒඇৗʹ͔͔ΔݟࠐΈͩͬͨͷ ͰɺDirectConnectΘͣਂʹ4࣌ؒ΄Ͳ ఀࢭͯ͠શҠߦͨ͠
վળͷಓ 1. ։ൃڥΛDockerԽ 2. GitHubҠߦ 3. DBϚΠάϨʔγϣϯπʔϧͷಋೖ 4. ߏཧΛAnsible 5.
ΦϯϓϨϛε͔Βͷ٫ 6. ৫ͷϧʔϧΛม͑Δ (൪֎ฤ)
৫ͷϧʔϧΛม͑Δ (൪֎ฤ) • ίϯΣΠͷ๏ଇ γεςϜΛઃܭ͢Δ৫ɺͦͷߏΛͦͬ ͘Γ·ͶͨߏͷઃܭΛੜΈग़ͯ͠͠·͏ • ৫վળ͢Δ͜ͱͰɺγεςϜΛվળͰ͖Δ ˠ ٯίϯΣΠઓུ
৫ͷϧʔϧΛม͑Δ (൪֎ฤ) • ΞδϟΠϧͳ։ൃ͕͚ͨ͠Ε ΞδϟΠϧͳνʔϜʹ͢Δ • ։ൃ͕৫ʹҾͬுΒΕΔ͜ͱଟ͍ • ٕͦͦज़తෛ࠴͕ཷ·ΔݪҼ ৫ͷ͕େ͖͍
վળͷಓ 1. ։ൃڥΛDockerԽ 2. GitHubҠߦ 3. DBϚΠάϨʔγϣϯπʔϧͷಋೖ 4. ߏཧΛAnsible 5.
ΦϯϓϨϛε͔Βͷ٫ 6. ৫ͷϧʔϧΛม͑Δ (൪֎ฤ)
վળͷಓ 1. (ࢲͷ) ։ൃͷΔؾ͕ͳ͘ͳΔݪҼΛվળ 2. ์ஔ͍ͯ͠ΔͱΠϯγσϯτ͕ى͖ΔՕॴͷ վળ 3. ਝʹ։ൃͰ͖ͳ͍ཧ༝Λվળ
վળͷಓ • ্͔ΒཁٻϕʔεͰվળ͕߱Γͯ͘Δ͜ͱ ͋·Γͳ͍ • ࣗࣗͰΛݟ͚ͭɺೳಈతʹղܾͯ͠ ͍͘ඞཁ͕͋Δ • ࠷ۙվળσʔΛઃ͚ͯɺνʔϜΈΜͳͰ ΔΑ͏ʹ͍ͯ͠·͢
Join our team! https://diverse-inc.co.jp/recruit/