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
スタートアップに入ってまずやったインフラTIPS
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kotamat
May 30, 2018
Technology
5.1k
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
590
ChatGPT×Whisperのプロトタイプと今後の展望 / chatgpt-with-whisper-prototyping-and-future-prospects
kotamat
3
3.7k
プロダクトドリブンにするために行った技術投資 / tech investment for product driven
kotamat
1
970
CTOがなぜPMをやりはじめたのか / Why did the CTO start doing PM
kotamat
0
300
プロダクトを中心に考える#とは / focus on the product
kotamat
1
2.1k
NuxtMeetup#1
kotamat
1
3.3k
Laravel_Nuxtjsでの構成とつまづきポイント
kotamat
1
1.2k
Laravel5.5のアプデ内容を勝手に評価してみた
kotamat
0
680
Laravelでプチマイクロサービスやってみた
kotamat
1
5.8k
Other Decks in Technology
See All in Technology
RAG を使わないという選択肢
tatsutaka
1
200
2026 TECHFRESH 畢業分享會 - 開發日常大解密!從領域驅動到企業級上線
line_developers_tw
PRO
0
870
フロンティアAIのゲート化と地政学リスク
nagatsu
0
130
protovalidate-es を導入してみた
bengo4com
0
170
Android の公式 Skill / Android skills
yanzm
0
130
DevOps Agentで始めるAWS運用 〜フロンティアエージェントが変える運用の現場〜
nyankotaro
1
390
AIはどのように 組織のアジリティを変えるのか?
junki
1
520
なぜ Platform Engineering の土台に Kubernetes を選ぶのか
r4ynode
2
590
Microsoft Build Keynoteふりかえり
tomokusaba
0
120
Claude Code×Terraform IaC テンプレート駆動開発
itouhi
1
510
新しいVibe Codingと”自走”について
watany
6
300
Amazon Bedrock AgentCore ワークショップ JAWS UG TOHOKU / amazon-bedrock-agentcore-workshop-jawsug-tohoku-2026
gawa
9
750
Featured
See All Featured
Being A Developer After 40
akosma
91
590k
Agile that works and the tools we love
rasmusluckow
331
21k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
720
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
22k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
200
The Curious Case for Waylosing
cassininazir
1
380
Documentation Writing (for coders)
carmenintech
77
5.4k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
970
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
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