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
Engine Yard Cloud 入門
Search
Yusuke Ando
April 08, 2013
Programming
320
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Engine Yard Cloud 入門
Yusuke Ando
April 08, 2013
More Decks by Yusuke Ando
See All by Yusuke Ando
CakePHP3でアプリ開発
yandod
1
430
Shimokita.Unity パーティクルでエフェクト
yandod
0
870
CakePHP3の明るい未来
yandod
1
290
Testing your app with Selenium on Travis CI
yandod
8
3.3k
Testing your app with Selenium on Travis CI
yandod
0
190
Inputで入力を扱う
yandod
0
730
Detonatorで爆発させる勉強会をした報告
yandod
0
2.5k
Mecanimでアニメーション - Shimokita.Unity
yandod
0
790
パリの街をUnityで駆ける
yandod
1
3.5k
Other Decks in Programming
See All in Programming
スマートグラスで並列バイブコーディング
hyshu
0
270
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
260
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
220
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
200
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.5k
LaravelLive Japan の裏方のすべて — 第188回 PHP勉強会@東京 (2026-06-24)
suguruooki
2
130
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
4.7k
Lessons from Spec-Driven Development
simas
PRO
0
230
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
210
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
170
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
250
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.4k
Featured
See All Featured
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
180
The browser strikes back
jonoalderson
0
1.3k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
200
Producing Creativity
orderedlist
PRO
348
40k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
It's Worth the Effort
3n
188
29k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
190
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
Designing for Performance
lara
611
70k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
880
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
Transcript
&OHJOF:BSE$MPVEೖ
Agenda • αϯϓϧͷσϓϩΠ • &OHJOF:BSE$MPVEͷ֓ཁ • σϓϩΠͱϚΠάϨʔγϣϯ • ֤छϩάใͷ֬ೝ •
όοΫΞοϓͱεφοϓγϣοτ • εέʔϧΞτ • Πϯελϯεͷ44) • &OHJOF:BSE$-* • $IFGΛར༻ͨ͠ڥͷΧελϚΠζ
αϯϓϧͷσϓϩΠ
αϯϓϧͷσϓϩΠ • օ͞ΜͷΞΧϯτͰσϓϩΠ͠·͢ • ·ͣઌʹྲྀΕΛͻͱ௨Γ͓ݟ͔ͤͯ͠Βɺ֤ࣗʹͬͯ ͖·͢ • Ϋϥυ্ʹαʔόΛߏங͢Δͷʹ10ఔͷͪ࣌ؒ ͕ൃੜ͠·͢
Engine Yard Cloudͱ 5
Copyright © 2013 Engine Yard. All Rights Reserved. 6 2006ɿ
Engine Yard ઃཱ (Ruby࣮ߦڥͷఏڙ։࢝) 2008ɿ Amazon༷͕Engine Yardʹग़ࢿΛൃද 2009ɿ AWSج൫ͷϓϥοτϑΥʔϜΛఏڙ։࢝ ࠷େڃͷAWSϦηʔϥʔʹ 2011ɿ PHP࣮ߦڥͷఏڙ։࢝ 2012ɿ Engine Yard ຊ๏ਓઃཱ Node.js࣮ߦڥͷఏڙ։࢝ എܠ: Engine Yard, Inc.ͷϏϧ(ӈख)͕ݐͭ1929ͷαϯϑϥϯγεί Engine YardͷาΈ
PaaS IaaS SaaS ΞϓϦέʔγϣϯ σʔλ ϥϯλΠϜ ϛυϧΣΞ OS ԾԽ αʔόʔ
ετϨʔδ ωοτϫʔΫ ΞϓϦέʔγϣϯ σʔλ ΞϓϦέʔγϣϯ σʔλ ϥϯλΠϜ ϛυϧΣΞ OS ԾԽ αʔόʔ ετϨʔδ ωοτϫʔΫ ΦϯϓϨϛε ΞϓϦέʔγϣϯ σʔλ ϥϯλΠϜ ϛυϧΣΞ OS ԾԽ αʔόʔ ετϨʔδ ωοτϫʔΫ ϋʔυΣΞɺϛυϧ ΣΞɺΞϓϦέʔ γϣϯͷͯ͢Λॴ༗ ͢Δܗଶ ωοτϫʔΫαʔ όʔϚγϯͳͲͷΠϯ ϑϥΛαʔϏεͱͯ͠ ఏڙ͢Δܗଶ ΞϓϦέʔγϣϯͷ ػೳΛαʔϏεͱ͠ ͯఏڙ͢Δܗଶ ϥϯλΠϜ ϛυϧΣΞ OS ԾԽ αʔόʔ ετϨʔδ ωοτϫʔΫ ΞϓϦέʔγϣϯ࣮ߦ ڥɾ։ൃڥΛαʔ Ϗεͱͯ͠ఏڙ͢Δܗ ଶ PaaS Πϊϕʔτ Ξτιʔε • ࣗ༝ʹબʗ։ൃΛ ͢Δ͜ͱ͕Մೳɻ • બʗઃఆʗ։ൃ ͕͔͔Δɻ • Πϊϕʔτ͕૿͑ Δ΄Ͳ૿Ճɻ • ॴ༗ʗ։ൃίετ͕ ͔͔ΒͣʹࡁΉɻ • Πϊϕʔτʹूத Ͱ͖Δɻ • Ξτιʔεຖʹ બ෯͕ݶఆ͞Εͯ ͍Δɻ
Engine Yard ͷఏҊ͢Δ PaaS ΞϓϦέʔγϣϯͱσʔλͷ Πϊϕʔγϣϯʹूத ʹ PaaS ͷڧΈ
ͳΜ͔ͩΑ͘Θ͔Γ·ͤΜͶ ͏͢͜͠۩ମతʹ ߟ͑ͯΈ·͠ΐ͏
Ұൠతͳ2Ϋϥελߏ Application Server Application Server Application Server Master Database Slave
Database LB
વग़དྷ·͢ΑͶʁ Application Server Application Server Application Server Master Database Slave
Database LB •Ϋϥελߏͷڍಈͷཧղ •͜ͷߏͷγεςϜηοτΞοϓ •͜ͷߏͷγεςϜͷӡ༻
Ͱ࣭Ͱ͢ ઌ΄ͲͷߏͷγεςϜΛ ͲΕ͘Β͍ͷ࣌ؒ ͰߏஙͰ͖·͔͢ʁ
Ͱ࣭Ͱ͢ ઌ΄ͲͷߏͷγεςϜΛ 10ηοτΛ ͲΕ͘Β͍ͷ࣌ؒ ͰߏஙͰ͖·͔͢ʁ
ؤுΓ·ͨ͠
Ͱ࣭Ͱ͢ ઌ΄ͲͷߏͷγεςϜΛ ࠷৽൛ͷߋ৽Λ ͲΕ͘Β͍ͷ࣌ؒ ͰྃͰ͖·͔͢ʁ
Ͱ࣭Ͱ͢ ઌ΄ͲͷߏͷγεςϜΛ Քಇঢ়گͷࢹମ੍ ༻ҙͰ͖·͔͢ʁ
Ͱ࣭Ͱ͢ Πϯϑϥʹڧ͍ ΤϯδχΞ͕ܧଓతʹ ྗ͢Εग़དྷΔ
͔͠͠ɺΠϯϑϥ࡞ۀ͕Λѹഭ 18 Πϯϑϥཁһ ։ൃཁһ
Engine Yard Cloud ͋ͳͨͷҝͷ ੌΠϯϑϥΤϯδχΞ
࠷ઌͷࣗಈԽɾٕज़ελοΫ
μογϡϘʔυCLI͔Βͷߴͳӡ༻ σϓϩΠ όοΫΞοϓ ΫϥελϦϯάߏ NoSQL εϨʔϒDB Ϋϩʔϯ ϦόʔεϓϩΩγ Cron δϣϒ
৽نߏங ύοέʔδಋೖ ΞϓϦέʔγϣϯӡ༻ γεςϜཧ μογϡϘʔυ͔Β ༷ʑͳγεςϜΛਝʹߏ
σϓϩΠ
VNOCͰࢹߦ͍·͢ 23 Virtual Network Operation Center ্ͰαϙʔτνʔϜ͕ 24/365 ࢹ
શͯͷϦιʔεΛ։ൃʹೖʂ ։ൃཁһʂ ʢ50%૿ʣ Πϯϑϥ ͓·͔ͤ
25 PaaSΛར༻͢ΔࣄͰ ͋ͳͨํͷϦιʔεͰͷ ։ൃΛ࠷େݶʹ
σϓϩΠͱϚΠάϨʔγϣϯ 26
σϓϩΠͱϚΠάϨʔγϣϯ • ϫϯΫϦοΫσϓϩΠ ඪ४తͳΞϓϦέʔγϣϯΛϫϯΫϦοΫͰσϓϩΠ • ϚΠάϨʔγϣϯ σʔλϕʔεͷεΩʔϚใͷߋ৽ΛࣗಈԽ
σϓϩΠ Gentoo Linux (EC2 Instance) ιʔείʔυ Gemfile rake db:migrate ઃఆϑΝΠϧੜ
/data/{appname}/ releases/{datetime} ಛఆͷύεʹରͯ͠ ࣗಈσϓϩΠ
֤छϩάͷऔಘ 29
౷ܭ߲ cpuσΟεΫͳͲͷ ΦʔιυοΫεͳࢹ
όοΫΞοϓͱεφοϓγϣοτ 31
εέʔϧΞτ • όοΫΞοϓ σʔλϕʔεͷσʔλͷμϯϓ • εφοϓγϣοτ σΟεΫͷ༰ͷશͯͷίϐʔ
εφοϓγϣοτɾόοΫΞοϓ Gentoo Linux (EC2 Instance) EBS αʔόΛఀࢭ͢Δͱ ফ͑ΔྖҬ ҙʗࣗಈͰόοΫΞοϓ࡞ /data
/db ӬଓԽ͞ΕͨྖҬ (όοΫΞοϓͳͲ)
Ϋϩʔϯ 34 ຊ൪ڥͷෳΛ ඞཁͳ͚࣌ͩ࡞ʂ
εέʔϧΞτ 35
εέʔϧΞτ • ֤छαʔόʔΛՃՄೳ • ϩʔυόϥϯαʔͷొͳͲࣗಈతʹߦΘΕΔ • ࣌ؒΛܾΊͯαʔόͷ૿ݮΛ͢ΔͳͲͷࣗಈԽαϙʔ τ༧ఆ
Ճ͞ΕͨΠϯελϯεΛࣗಈͰෛՙࢄ 37 ϩʔυόϥϯα HA Proxy ϩʔυόϥϯα Elastic Load Balancing Availability
Zone A Availability Zone B EC2 EC2 EC2
ΠϯελϯεͷSSH 38
ެ։伴ͷొ 39
deploy ϢʔβͰͷSSH 40 sudo Ͱ͖·͢ʂ
SSH ଓͷҙ • ΠϯελϯεΛఀࢭɾىಈ͢Δͱϗετ伴͕มΘΔ • sudo ͯ͠ڥʹมߋΛՃ͑ͯఀࢭɾىಈͰফࣦ • Root ͕औΕΔͱ͍͏ҙຯͰIaaSͱಉ༷ͷࣗ༝
ҙ IaaSͱͯ͠͏ͱ ࣗಈԽͷԸܙ͕ແ͘ͳΔ
CLI 42
CLI ΫϥΠΞϯτ • ίϚϯυϥΠϯ͔ΒEngine Yard Cloud ʹΞΫηε • gem install
engineyard • ey deploy σϓϩΠΛ࣮ߦ • ey rebuild ڥͷ࠶ߏங • ey web disable / enable WebΞΫηεͷແޮԽɾ༗ޮԽ • ey recipes ΧελϜ Chef Ϩγϐͷ࣮ߦ ΞϓϦέʔγϣϯͷ ϧʔτͰ࣮ߦ͢Δ
ChefʹΑΔڥͷΧελϚΠζ 44
ύοέʔδߋ৽ • શͯͷߏஙChefͷϨγϐ • ԿͰ࠶ߏஙͳͷͰ࠷৽ͷϛ υϧΣΞΛਵ࣌ಋೖՄೳ • ΧελϚΠζͰ͖Δ • Engine
YardϛυϧΣΞͷ ݕূΛਵ࣌ߦͳ͍ͬͯ·͢ Amazon EC2 Cloud cookbook ΧελϜϨγϐ Your App ΞυΦϯ
ChefͷΫοΫϒοΫͷྫ 46
Chef Ϩγϐͷ࣮ߦ • https://github.com/engineyard/ey-cloud-recipes • ϑΥʔΫͨ͠ϧʔτɾσΟϨΫτϦͰίϚϯυ࣮ߦ ey recipies upload -e
ENV ey recipes apply -e ENV • ΧελϜϨγϐ࠶ߏங࣌ʹࣗಈ࣮ߦ • ఀࢭɾ࠶։ͰࣦΘΕͳ͍ߏมߋશͯϨγϐͰߦ͏