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
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
ELYZA_Findy AI Engineering Summit登壇資料_AIコーディング時代に「ちゃんと」やること_toB LLMプロダクト開発舞台裏_20251216
elyza
2
920
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
930
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
39
26k
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
140
クラウドに依存しないS3を使った開発術
simesaba80
0
210
The Art of Re-Architecture - Droidcon India 2025
siddroid
0
160
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
310
Findy AI+の開発、運用におけるMCP活用事例
starfish719
0
2k
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
700
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
4
1.1k
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
150
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
430
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
46
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
76
Facilitating Awesome Meetings
lara
57
6.7k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
360
Mind Mapping
helmedeiros
PRO
0
45
How STYLIGHT went responsive
nonsquared
100
6k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
35
Skip the Path - Find Your Career Trail
mkilby
0
37
Design in an AI World
tapps
0
110
Making Projects Easy
brettharned
120
6.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
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/