Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
スタートアップに入ってまずやったインフラTIPS
Search
kotamat
May 30, 2018
Technology
5.2k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
スタートアップに入ってまずやったインフラTIPS
kotamat
May 30, 2018
More Decks by kotamat
See All by kotamat
LLMを用いた対話システムサービスをどうやって立ち 上げていくか? / How to launch a dialogue system service using LLM (Large Language Model)?
kotamat
0
610
ChatGPT×Whisperのプロトタイプと今後の展望 / chatgpt-with-whisper-prototyping-and-future-prospects
kotamat
3
3.8k
プロダクトドリブンにするために行った技術投資 / tech investment for product driven
kotamat
1
990
CTOがなぜPMをやりはじめたのか / Why did the CTO start doing PM
kotamat
0
320
プロダクトを中心に考える#とは / focus on the product
kotamat
1
2.1k
NuxtMeetup#1
kotamat
1
3.3k
Laravel_Nuxtjsでの構成とつまづきポイント
kotamat
1
1.2k
Laravel5.5のアプデ内容を勝手に評価してみた
kotamat
0
690
Laravelでプチマイクロサービスやってみた
kotamat
1
5.8k
Other Decks in Technology
See All in Technology
AIエージェントを最高のパートナーに育てる方法|評価と判断軸を育てる5つのステップ
koichiaoki
1
150
AI de Idea
kawaguti
PRO
2
130
AIは推し活である。
kurazuuuuuu
1
750
負債のメタファと2026年 / Debt Metaphor in Agentic Engineering Age 202609 Edition
twada
PRO
10
4.1k
AI時代、データエンジニアが一番おもろい
genshun9
0
670
aws-iot-platform-architecture-use-cases.pdf
ma2shita
0
340
2026_devsumi_ozono.pdf
o3
3
520
JSONataとAWS Step Functionsで目指すRuntimelessな世界
mu7889yoon
0
190
Azure Serverless 2026:Production-ready な AI エージェント基盤 / Azure Serverless 2026: Production-Ready AI Agent Platform
miyake
2
240
30座EKS, 180次升級淬煉的EKS Upgrade Skill 的歷程
eric8230
0
180
AIによるクリエイティブ生成を行う上での試行錯誤
plaidtech
PRO
0
160
beyond jj: config & tools ecosystem
indirect
0
5.1k
Featured
See All Featured
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
470
KATA
mclloyd
PRO
35
15k
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
For a Future-Friendly Web
brad_frost
183
10k
Mobile First: as difficult as doing things right
swwweet
225
10k
Unsuck your backbone
ammeep
672
58k
Music & Morning Musume
bryan
48
7.4k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
540
Joys of Absence: A Defence of Solitary Play
codingconduct
1
520
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Transcript
ελʔτΞοϓʹೖͬ ͯ·ͣͬͨΠϯϑϥ TIPS 2018/05/30 ελʔτΞοϓ × Πϯϑϥ ʙര։ൃΛߦ͏4ࣾͷ։ൃΛࢧ͑ΔΠϯϑϥઓུʙ @kotamat
ࣗݾհ • SCOUTER CTO • @kotamat • twitter@kotamats •
ຊॳհ໔ڐͳ͠Ͱਓࡐհ͕Ͱ͖Δ ෭ۀܕιʔγϟϧϔουϋϯςΟϯά ݱࡏ ໊͕ొۙ͠ͳస৬رऀΛ ܝࡌاۀʹհ͢Δ͜ͱͰใु͕ൃੜ ਓࡐհձࣾ ϓϩ ͚ΫϥυαʔϏε ࣾͷٻਓ%#Λఏڙ
հྉΛड͚औΕΔ ۀքॳͷ4BB4αʔϏε ̎ͭͷ)35FDIαʔϏεΛల։
4$065&3ͱ ແྉͰ ܝࡌٻਓ ϓϩͷ ΤʔδΣϯτ ࣾ ਓͷΤʔδΣϯτωοτϫʔΫΛ׆༻ͨ͠ਓࡐհ
ͭͷ૭ޱͰ͝հऀͷूஂΛ࠷େԽ͢Δ͜ͱ͕Ͱ͖·͢ ݸਓͷ εΧλʔ ਓ ٻਓΛͤΔ͚ͩʂ
հձࣾͷʹͬͯ૿͑Δཧίετ ࣮ࡍʹհ͕དྷΔͷҰ෦ͷձࣾͷΈ ࣾ ਓ͔ΒҰׅհ ෭ۀΤʔδΣϯτ ϓϩΤʔδΣϯτ ਓࡐհͷޮՌΛ࠷େԽӡ༻ίετΛ࠷খԽ
4$065&3ͱ
Ͱٻਓاۀ ࣾ ٻਓʹ·Ͱத ಋೖࣄྫ
લ৬·Ͱʝ • ιγϟήձࣾͰαʔόʔαΠυΤϯδχΞ • جຊతʹӡ༻ϑΣʔζ͕ओ • ߴෛՙͳαʔϏεͷνϡʔχϯά͕ಘҙ • ৽نࣄۀܥͰɺΠϯϑϥͷߏங͔Β৭ʑͬͯͨ •
ϒϩοΫνΣʔϯΫϥελͷߏɺελʔτΞοϓ ͷAWSߏͳͲ
ೖࣾ࣌ͷSCOUTER • Laravel, Vue.jsΛઌਐతʹऔΓೖΕ͍ͯΔʮٕ ज़తʹΠέͯΔʯձࣾ • ։ൃϑΣʔζ͕͋Δఔམͪண͍͖ͯͯɺӡ ༻ϑΣʔζʹֻ͔͍ࠩͬͯͨ͠ • →ӡ༻ϑΣʔζʹ͓͚Δ։ൃମ੍ͷߏங͕ෆ
͍ͯͨ͠ɻ
։ൃϑΣʔζ
։ൃϑΣʔζ ӡ༻ɾվળ ϑΣʔζ
։ൃϑΣʔζ ӡ༻ɾվળ ϑΣʔζ ͜͜Ͱೖࣾ
։ൃϑΣʔζ ӡ༻ɾվળ ϑΣʔζ ͜͜Ͱೖࣾ ։ൃϑΣʔζ
→ӡ༻ϑΣʔζͷ ΠϯϑϥTips ͠·͢
͢͜ͱ • εςʔδϯά • IaC • ͦͷଞͬͨ͜ͱ • ·ͱΊ
εςʔδϯά
εςʔδϯάͱ • ຊ൪өલʹ࠷ऴ֬ೝ͢ΔͨΊͷຊ൪ͱྨࣅ ͨ͠ςετڥ εςʔδϯά ຊ൪ ≒ Ϣʔβ ࣾһ
εςʔδϯάͱ • ຊ൪өલʹ࠷ऴ֬ೝ͢ΔͨΊͷຊ൪ͱྨࣅ ͨ͠ςετڥ εςʔδϯά ຊ൪ ≒ Ϣʔβ ࣾһ
εςʔδϯάͱ • ຊ൪өલʹ࠷ऴ֬ೝ͢ΔͨΊͷຊ൪ͱྨࣅ ͨ͠ςετڥ εςʔδϯά ຊ൪ ≒ Ϣʔβ ࣾһ
Before
Before • masterϒϥϯνʹϚʔδ͞ΕͨΒଈຊ൪ʹө • ҰԠϑϩϯτ͚ͩHeroku Review App্ཱ͕͕͍ͪͬͯͨ ͕ɺॏ͗ͯ͑͢ͳ͍ʝ • ෆ۩߹ใࠂ͕͋ͬͨͱͯ͠ɺ࠶ݱ·Ͱʹ͕͔͔࣌ؒΔ
or ࠶ݱ Ͱ͖ͳ͍ • ࣾһʹϦϦʔεલʹ֬ೝͯ͠Β͏ͱ͖ɺࣗͷ1$͔Β 0.0.0.0ͰϏϧυͯ͠ϩʔΧϧωοτϫʔΫͰݟͯΒ͏ɻ
σϓϩΠϑϩʔ
σϓϩΠϑϩʔ
push σϓϩΠϑϩʔ
push σϓϩΠϑϩʔ
push CodeDeploy Λىಈ σϓϩΠϑϩʔ
push CodeDeploy Λىಈ S3ʹzip ͰݻΊΔ σϓϩΠϑϩʔ
push CodeDeploy Λىಈ S3ʹzip ͰݻΊΔ σϓϩΠϑϩʔ
push CodeDeploy Λىಈ S3ʹzip ͰݻΊΔ zipΛEC2 ʹల։ σϓϩΠϑϩʔ
push CodeDeploy Λىಈ S3ʹzip ͰݻΊΔ zipΛEC2 ʹల։ σϓϩΠϑϩʔ
After
ߏਤ εςʔδϯά ຊ൪ σΠϦʔͰsync
pushޙ SlackίϚϯυ࣮ߦ σϓϩΠϑϩʔ(εςʔδϯά) hubot͕ݕग़ capistranoىಈ σϓϩΠ
None
ରϒϥϯνΛࢦఆ
ී௨ʁ
匠技
ঊٕ() • ຊ൪ڥ͔ΒεςʔδϯάDBͷγϯΫ࣌ɺ ػີใΛϚεΩϯάͯ͠ಉظ • ϩάΠϯύεϫʔυ։ൃ͕ϩάΠϯՄೳͳܗ ʹܗ • εςʔδϯάσϓϩΠ࣌ or
ਂʹຊ൪ڥ͔ ΒDBγϯΫͰ͖ΔΑ͏ʹ
DBϚεΩϯά • ݸਓใΛӅͨ͢ΊͷγϯΫલॲཧ • ςʔϒϧ໊ɺΧϥϜ໊ɺՃํ๏Λࢦఆͯ͠ϚεΩϯάΛߦ͏ • Ճํ๏ • ࢦఆͨ͠ʹॻ͖͑ •
จࣈྻඌʹsuffixΛՃ • ΛϥϯμϜͳͷʹॻ͖͑ • 3จࣈҎ߱Λଞͷจࣈʹॻ͖͑ • yamlͰઃఆ
yamlྫ - table_name: users columns: - name: email suffix: x
- name: numeric_data calc: true - name: last_name len: 1 - name: tel - name: default default: 18793jjdiaerheihu3qoh4u3qh4u3i2qhu43qh - name: uri conditions: - condition: "`status`='active'" value: some/path/of/uri - condition: "`status`='pending'" value: other/path/of/uri - table_name: companies columns:
ϩάΠϯύεϫʔυͷܗ • Ϣʔβ͔Βͷෆ۩߹ใࠂͷதͰɺ࠶ݱͰ͖ͳ ͍Τϥʔ͕ൃੜ͢Δ͜ͱ͕͋Δɻ • ຊ൪σʔλͱಉ͡σʔλͰϩάΠϯͰ͖Ε ࠶ݱ͕Մೳͳࣄ͕ଟ͍ • ύεϫʔυΛࣾһ͕ΞΫηεՄೳͳܗʹܗ ͓ͯ͘͠
DBͷγϯΫλΠϛϯά • σϓϩΠ࣌ʹຊ൪DBΛ͍ͭͰγϯΫͰ͖ΔΑ ͏ʹ͍ͯ͠Δ • migrationͰͷΤϥʔ͕ൃੜͨ͠ͱͯ͠ɺ ͍ͭͰݩͷঢ়ଶʹͤΔ • ෆ۩߹ௐ͙ࠪ͢ʹ֬ೝ͍ͨ͠ͱ͖ͷͨΊʹɺ σΠϦʔͰຊ൪DB͔ΒͷγϯΫΛߦ͍ͬͯΔ
DBγϯΫ
DBγϯΫ γϯΫ࣌ͷίϚϯυʹ Φϓγϣϯࢦఆ͢Δ͚ͩ
なんという 事でしょう
ͳΜͱ͍͏ࣄͰ͠ΐ͏(·ͱΊ) • ຊ൪ڥͷྨࣅڥʹྨࣅ͍ͯ͠Δ͕ɺใ తʹ҆શͳڥΛඋͰ͖ͨ • ڍಈ֬ೝͷඞཁ࠷ݶΓ͍ͨ͜ͱͷΈ ϑΥʔΧεͰ͖ΔΑ͏ʹͳͬͨ • Ϣʔεέʔεʹ߹ΘͤͯɺҙͷλΠϛϯάͰ ٻΊΔڥΛߏஙͰ͖ΔΑ͏ʹͳͬͨɻ
͢͜ͱ • εςʔδϯά • IaC • ͦͷଞͬͨ͜ͱ • ·ͱΊ
IaC
IaCͱ • Infrastructure as Codeͷུ • ΠϯϑϥߏஙΛίʔυͰهड़͠Α͏ͥ
Before
Before • AWSͷWebίϯιʔϧ্Ͱϙνϙνڥઃఆ • αʔϏε͕૿͑ͯ͘Δͨͼʹಉ͜͡ͱΛ͍ͯͨ͠ɻ • ‥͕ɺґଘαʔϏε͕ଟ͘ɺߏஙʹ͕͔͔࣌ؒΔ • ͞Βʹɺ෦ߏ͕ϒϥοΫϘοΫεԽ͢Δ͜ͱͰҾ ͖ܧ͕͗େมɻ
• ݁Ռ࠷ॳʹߏஙͨ͠ਓ͕୯Ұোʹ
ߏਤ
ߏਤ ×αʔϏε
After
After • AWSͷߏˠTerraformʹҠߦ • EC2ͷϛυϧΣΞͷઃఆˠAnsibleʹҠߦ
匠技
ঊٕ? • ߏͷίʔυ༻ͷϦϙδτϦΛ༻ҙ • αʔϏεؒͰڞ༗͍ͯ͠ΔϦιʔεͱɺαʔ Ϗε͝ͱͷϦιʔεσΟϨΫτϦ͚Δ • Terraformͷڥมgitignore͢Δ • Terraformͷ࣮ߦεΫϦϓτgitʹ͚ͬΔ
ߏͷίʔυ༻ͷϦϙδτϦΛ ༻ҙ • Github্ʹίʔυཧ༻ͷϦϙδτϦΛ༻ҙ • PRϕʔεͰίʔυΛཧ͢Δ͜ͱͰɺͲ͏͍ ͏ҙਤͰͦͷมߋΛߦ͔ͬͨΛՄࢹԽ • ଐਓੑͷഉআ
σΟϨΫτϦߏ ᵓᴷᴷ global ᵓᴷᴷ service1 ᴹ ᵓᴷᴷ ansible ᴹ ᴹ
ᵓᴷᴷ app ᴹ ᴹ ᴹ ᵋᴷᴷ tasks ᴹ ᴹ ᵓᴷᴷ ec2-boot ᴹ ᴹ ᴹ ᵋᴷᴷ tasks ᴹ ᴹ ᵓᴷᴷ ecs ᴹ ᴹ ᴹ ᵋᴷᴷ tasks ᴹ ᴹ ᵓᴷᴷ nginx ᴹ ᴹ ᴹ ᵓᴷᴷ defaults ᴹ ᴹ ᴹ ᵓᴷᴷ handlers ᴹ ᴹ ᴹ ᵓᴷᴷ tasks ᴹ ᴹ ᴹ ᵋᴷᴷ templates ᴹ ᴹ ᵋᴷᴷ php ᴹ ᴹ ᵓᴷᴷ handlers ᴹ ᴹ ᵋᴷᴷ tasks ᴹ ᵋᴷᴷ policies ᵓᴷᴷ service2 ڞ௨෦ͷهड़
σΟϨΫτϦߏ ᵓᴷᴷ global ᵓᴷᴷ service1 ᴹ ᵓᴷᴷ ansible ᴹ ᴹ
ᵓᴷᴷ app ᴹ ᴹ ᴹ ᵋᴷᴷ tasks ᴹ ᴹ ᵓᴷᴷ ec2-boot ᴹ ᴹ ᴹ ᵋᴷᴷ tasks ᴹ ᴹ ᵓᴷᴷ ecs ᴹ ᴹ ᴹ ᵋᴷᴷ tasks ᴹ ᴹ ᵓᴷᴷ nginx ᴹ ᴹ ᴹ ᵓᴷᴷ defaults ᴹ ᴹ ᴹ ᵓᴷᴷ handlers ᴹ ᴹ ᴹ ᵓᴷᴷ tasks ᴹ ᴹ ᴹ ᵋᴷᴷ templates ᴹ ᴹ ᵋᴷᴷ php ᴹ ᴹ ᵓᴷᴷ handlers ᴹ ᴹ ᵋᴷᴷ tasks ᴹ ᵋᴷᴷ policies ᵓᴷᴷ service2 αʔϏεͷUGϑΝΠ ϧͷཧ
σΟϨΫτϦߏ ᵓᴷᴷ global ᵓᴷᴷ service1 ᴹ ᵓᴷᴷ ansible ᴹ ᴹ
ᵓᴷᴷ app ᴹ ᴹ ᴹ ᵋᴷᴷ tasks ᴹ ᴹ ᵓᴷᴷ ec2-boot ᴹ ᴹ ᴹ ᵋᴷᴷ tasks ᴹ ᴹ ᵓᴷᴷ ecs ᴹ ᴹ ᴹ ᵋᴷᴷ tasks ᴹ ᴹ ᵓᴷᴷ nginx ᴹ ᴹ ᴹ ᵓᴷᴷ defaults ᴹ ᴹ ᴹ ᵓᴷᴷ handlers ᴹ ᴹ ᴹ ᵓᴷᴷ tasks ᴹ ᴹ ᴹ ᵋᴷᴷ templates ᴹ ᴹ ᵋᴷᴷ php ᴹ ᴹ ᵓᴷᴷ handlers ᴹ ᴹ ᵋᴷᴷ tasks ᴹ ᵋᴷᴷ policies ᵓᴷᴷ service2 "OTJCMFͷཧ
σΟϨΫτϦߏ ᵓᴷᴷ global ᵓᴷᴷ service1 ᴹ ᵓᴷᴷ ansible ᴹ ᴹ
ᵓᴷᴷ app ᴹ ᴹ ᴹ ᵋᴷᴷ tasks ᴹ ᴹ ᵓᴷᴷ ec2-boot ᴹ ᴹ ᴹ ᵋᴷᴷ tasks ᴹ ᴹ ᵓᴷᴷ ecs ᴹ ᴹ ᴹ ᵋᴷᴷ tasks ᴹ ᴹ ᵓᴷᴷ nginx ᴹ ᴹ ᴹ ᵓᴷᴷ defaults ᴹ ᴹ ᴹ ᵓᴷᴷ handlers ᴹ ᴹ ᴹ ᵓᴷᴷ tasks ᴹ ᴹ ᴹ ᵋᴷᴷ templates ᴹ ᴹ ᵋᴷᴷ php ᴹ ᴹ ᵓᴷᴷ handlers ᴹ ᴹ ᵋᴷᴷ tasks ᴹ ᵋᴷᴷ policies ᵓᴷᴷ service2 ͭҎ߱ͷαʔϏε
ڥมͷgitignore • ϦϙδτϦཧͷ߹্ɺ୭Ͱclone͢Ε ίʔυΛऔಘͰ͖ΔΑ͏ʹͳ͍ͬͯΔɻ • ࣮ߦݖݶAWSͷkeyΛอ༗͍ͯ͠Δඞཁ͕͋ Δ • AWSͷkeyͷσʔλgitཧͤͣɺඞཁͳλ ΠϛϯάͰݸʑਓ͕ઃఆ͢Δඞཁ͕͋Δɻ
Terraformͷ࣮ߦεΫϦϓτgit ʹ͚ͬΔ • SCOUTERࣾPhpStormΛશһ༻͍ͯ͠Δ • PhpStorm༻ͷ࣮ߦεΫϦϓτอଘ͓ͯ͘͠ ͜ͱͰɺ୭Ͱ࣮ߦ͕Մೳͳܗʹ͍ͯ͠Δɻ • ͪΖΜAWSͷkeyඞཁͳਓʹͷΈ༩͠ ͍ͯΔͷͰɺͩΕͰ࣮ߦͰ͖ΔΘ͚Ͱͳ͍
gitignoreJetbrains͕ੜ͢ΔͷΛ༻͢Δ
None
なんという 事でしょう
ͳΜͱ͍͏ࣄͰ͠ΐ͏(·ͱΊ) • IaCʹ͢Δ͜ͱʹΑͬͯɺଐਓੑΛഉআͰ͖Δ • IaC͢Δ߹ͪΖΜ࣮ߦՄೳͳਓΛ੍ݶͰ͖ ΔΑ͏ʹɺgitignoreઃఆ͠Α͏ • ΤσΟλͷ࣮ߦઃఆΛ͢Δ͜ͱͰ • ͍·͙͢IaC͠Ζʂ
͢͜ͱ • εςʔδϯά • IaC • ͦͷଞͬͨ͜ͱ • ·ͱΊ
ͦͷଞͬͨ͜ͱ
ͦͷଞͬͨ͜ͱ • ཧ • ΞΫηεݖݶͷ੍ݶɺཧ • VPNͷඋ • Gsuiteͷ׆༻
·ͱΊ
·ͱΊ • ։ൃϑΣʔζ͔Βӡ༻ϑΣʔζʹมΘΔλΠ ϛϯάͰ৭ʑͱඋͨ͠ɻ • ։ൃޮΛ͞Βʹരʹ͢Δɺ߈ΊͷΠϯϑ ϥͳͷͰɺͬͯͳ͍ͱ͜Ζͬͨ΄͏͕ ͍͍ɻ
࠷ޙʹ SCOUTERࣾͰɺҰॹʹؤுͬͯ͘ΕΔ 匠 Λืू͓ͯ͠Γ·͢ɻ http://bit.ly/scouter-takumi Πϯϑϥ / Nuxt / Vue
/ Laravel