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
Blue/Green deploymentへの道のり
Search
Hirokazu Sugiuchi
October 20, 2016
Technology
160
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Blue/Green deploymentへの道のり
2016/10/07 社内勉強会で発表した資料です
Hirokazu Sugiuchi
October 20, 2016
More Decks by Hirokazu Sugiuchi
See All by Hirokazu Sugiuchi
FFLT_12.pdf
critical_alert
0
110
AWS認定 ソリューションアーキテクトアソシエイトを受けてきた話
critical_alert
1
420
Hue で始める おうちハック入門
critical_alert
1
2.3k
入門Let's Encrypt
critical_alert
2
2.6k
Mackerelでサーバ監視はじめた話
critical_alert
0
1.7k
Other Decks in Technology
See All in Technology
Oracle Database Security 詳細解説
oracle4engineer
PRO
1
110
Devin プロモコードの受け取りと適用(2026.10.27)
kinopeee
1
700
構造で守らせる データ・法務・セキュリティ・開発チームとつくる AI時代のデータガバナンスとデータ基盤のリアル
legalontechnologies
PRO
2
650
AI駆動開発におけるハーネスエンジニアリングの勘所
tsukuboshi
1
840
Don't write the architecture only in the prompt.
neohsu
0
230
cdk deployとcdkd deploy、実際にデプロイして5倍速近くの差を実測した
yama3133
1
110
ビジネス部門からPOを迎えての半年間の進歩と課題
zozotech
PRO
0
160
Adversary Infrastructure Hunting101
disconinja
0
170
Claude for Google Workspaces ポン出し/claude-for-google-workspace-slide-conversion
emiki
0
13k
200人の配信コメント、 全部Jevが仕分けます 〜 マサカリガードを作ってみた 〜
katayamatg
1
420
デザインレビューは自動化できるのか?─ Flutter × Figma で UI 品質保証を考える
techiro
2
550
正解のない研修に放り出されて / Being thrown into a training program with no right answers
ohnoeight
1
160
Featured
See All Featured
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
320
New Earth Scene 8
popppiees
4
2.7k
My Coaching Mixtape
mlcsv
0
370
Visualization
eitanlees
153
17k
Marketing to machines
jonoalderson
1
5.9k
We Are The Robots
honzajavorek
0
410
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
420
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
580
The Language of Interfaces
destraynor
162
27k
Embracing the Ebb and Flow
colly
88
5.2k
Statistics for Hackers
jakevdp
799
230k
Paper Plane (Part 1)
katiecoart
PRO
2
12k
Transcript
Blue/Green deploymentͷಓͷΓ 2016/10/07 feedforce Inc. / Hirokazu Sugiuchi
࠷ۙBlue/Green deployment ʹڽͬͯ·͢
ࢥ͍ΛͤΔ͏ͪʹௐͨΓ ͨ͜͠ͱଟ͘ͳ͖ͬͯͨͷ Ͱ͜ͷลͰ Blue/Green deploymentɹ ͱԿ͔ɺ ͲΜͳํ๏Ͱ࣮ݱͰ͖Δͷ͔ ·ͱΊ͓ͯ͜͏ͱࢥ͍·ͨ͠
τϐοΫ • Blue/Green deployment ͱԿ͔ • AWSʹ͓͚Δ Blue/Green ͷํ๏͍Ζ͍Ζ •
Blue/Green deployment ͷಓͷΓ • ʓʓ • ·ͱΊ
Ͱɺͦͦ Blue/Green deployment ͬͯͳΜͩ
Blue/Green deploymentͱ deployͷʹ৽͍͠ڥΛ ༻ҙͯ͠Γସ͑Δํ๏
Blue/Green deployment • Martin FowlerࢯʹΑΔϒϩάΤϯτϦ͕༗໊ • http://martinfowler.com/bliki/ BlueGreenDeployment.html • ຊ൪ڥΛೋͭ(blueڥɺgreenڥɺ)༻ҙͯ͠
৽͍͠όʔδϣϯͷΞϓϦέʔγϣϯ/αʔόΛยํ ͷڥʹσϓϩΠ͠τϥϑΟοΫΛΓସ͑Δɺͱ͍ ͏ϦϦʔεํ๏
AWSʹ͓͚Δ Blue/Green ͷ ํ๏͍Ζ͍Ζ
DNSΓସ͑ํࣜ • DNSϨίʔυͷ͖ઌΛBlue͔ΒGreenεΠον ͢Δ • round robinͰঃʑʹΣΠτΛௐ͠εΠον͢Δ • (ऑ) TTL
ʹҾͬுΒΕΔͷͰίϯτϩʔϧͮ͠Β ͍
ELB + ASG Γସ͑ํࣜ • DNSͻͱͭͷELBΛࢦͨ͠··ͰELBʹͿΒԼ͛Δ ASG ΛεΠον͢Δ • Auto
Scaling ࠷ۙॻ͍ͨQiitaهࣄΛࢀরͯͩ͘͠ ͍͞ • ͜Ε https://feedforce.qiita.com/critical-alert/items/ 1a39749d838d29b5631a
ECSΓସ͑ํࣜ • ίϯςφΛ͏ • ࠓ͞ͳ͍
ҙࣝ
͍·ͷࢲʹ͋Γ͕ͪͳ͜ͱ • Χʔωϧʹ੬ऑੑ͕...ύονͯͨ͋ͱ࠶ىಈ͠ͳ͍ͱ • 1ͮͭ ELB ͔ΒΓ͠ → 1ͮͭͤͬͤͱ yum
update → ࠶ىಈ → ELB ʹ͢ • όοναʔόͦΖͦΖ͍ͬͺ͍͔ͩΒΠϯελϯε1૿͠·͠ΐ͏ • ΠϯελϯεىಈˠChefͰϓϩϏδϣχϯάˠΞϓϦέʔγϣϯίʔυͷσϓϩΠɻ खಈͰΔͷ໘͍ͩ͠... • OSͷΞοϓσʔτ͕͍ͨ͠ • Ξοϓσʔτͯ͠ಈ͔ͳ͘ͳͬͨͲ͏͠Α͏ • ৽͘͠αʔό૿ͨ͠Βͦͷ yum update ͢Δʁ
ͳͥBlue/Green͍͔ͨ͠ • ELBͷ͖ઌΛม͑Δ͚ͩ • θϩμϯλΠϜϦϦʔε • ͕͋Εݩͷڥʹ͢ͱϩʔϧόοΫ • ൿͷλϨΛࢭ͢Δ •
(Immutable Infrastructure)
λϨͷ݅ • Chef Ͱίʔυཧ͞Ε͍ͯͯɺServerspe Λॻ͍ ͍ͯͯ·৽͘͠αʔόཱͯͨΒͪΌΜͱಈ͘ͷ͔ʁ ͱ͍͏ෆ͕͖҆ͭ·ͱ͏ɻ(පؾ͔͠Εͳ͍) • Blue/Green ͩͱڧ੍తʹ৽͍͠αʔόΛཱͯΔ͜ͱ
ʹͳΔͷͰҟৗ͕͋ͬͨͱͯ͠ݪҼٻ͕͍͢͠ • ͍εύϯͰԿཱͯΔ͜ͱͰλϨԽΛ͙
ΠϯελϯεΛࣺͯ͘͢͢Δ • ΠϯϑϥͷίʔυԽ(࠶ݱ͘͢͠Δ) • ૄ݁߹ʹ͓ͯ͘͠ • ফ͑ͯࠔΔϑΝΠϧϩά֎ʹอଘ͢Δ • ࣗಈԽ͕ඞਢ
Blue/Green deploymentɹ ͷಓͷΓ
Γӽ͑ͳ͍ͱ͍͚ͳ͍՝
ʓʓ • AMIͲ͏͢Δ • ΞϓϦέʔγϣϯͷσϓϩΠͲ͏͢Δ • ϩάͲ͏͢Δ
DockerԽ͠·͢
ऴ
!
αʔϏεΠϯ·Ͱͷϓϩηε(ݱࡏ) • 1.ΠϯελϯεΛىಈ͢Δ • 2.ChefͰϓϩϏδϣχϯάΛ͢Δ • 3.CapistranoͰΞϓϦέʔγϣϯίʔυΛɹɹɹ σϓϩΠ͢Δ • 4.ELBʹΠϯελϯεΛͿΒԼ͛Δ
2ͱ3͕͍ɻ ͢ΔͱAMIΛ࡞ΓࠐΉ͔ɹɹ ͱ͍͏ʹͳΔɻ
AMIͲ͏͢Δ • શ෦ೖΓ • OS,ϛυϧΣΞઃఆ,ΞϓϦέʔγϣϯίʔυ • ௨শΰʔϧσϯΠϝʔδ • ͚ͩઃఆࡁΈ •
OS,ϛυϧΣΞͷΈઃఆࡁΈ(ChefͰϓϩϏδϣχϯά͚ͩ͢Δ) • ࠷খߏ(͍·͜͜) • OSͷΈ
શ෦ೖΓ • ҡ࣋͢Δϋʔυϧ͕ߴ͍ • ىಈ͢Δ͚ͩͰαʔϏεΠϯՄೳ͕ͩɹɹɹ ΞϓϦέʔγϣϯίʔυ͕ߋ৽͞ΕΔͨͼʹ AMIΛ࡞Δඞཁ͕͋Δ
͚ͩઃఆࡁΈ • Chef ͰϓϩϏδϣχϯάΛࡁ·ͤͨঢ়ଶͰAMIΛ࡞ ͢Δ • ΞϓϦέʔγϣϯίʔυΑΓߋ৽සগͳ͍ • ىಈ͖ͯͨ͠ΒΞϓϦέʔγϣϯίʔυΛσϓϩΠ͠ ͯαʔϏεΠϯ
• ͳ͔ͳ͔ݱ࣮తͳϥΠϯ
AMIԽPackerΛ͏ https://www.packer.io/
ΞϓϦέʔγϣϯͷσϓϩΠɹ Ͳ͏͢Δ
ΞϓϦέʔγϣϯͷσϓϩΠɹ Ͳ͏͢Δ • ͔ͤͬ͘ϓϩϏδϣχϯάࡁΈͷΠϯελϯε͕ىಈ ͯ͠ίʔυ͕ແ͍ͱαʔϏεΠϯͰ͖ͳ͍ • CapistranoΛखಈͰ࣮ߦ͔… • Auto Scaling
Ͱىಈͨ͠ΒखಈͰ࣮ߦͳΜͯͬͯΒ Εͳ͍ • ࣗ͜͜ಈԽ͠ͳ͍ͱ͍͚ͳ͍
Πϯελϯε͕ىಈͨ͠Βɹ ࣗͰΞϓϦέʔγϣϯίʔ υΛ࣋ͬͯ͘ΔΑ͏ʹ͍ͨ͠
PullܕDeploy • Consul + stretcher (dragonͰ࠾༻) • AWS Code Deploy(֯ߴΊ/MakerͰͬͯ
ͨʁ) • EC2 Run Command(ະௐ͍͍ࠪͱ͜Ζ)
·ͩ·ͩݕ౼தɻ
ϩάͲ͏͢Δ • Fluentd ͓͚͍͍ͬͯ • ࠷ۙͷྲྀΕ Fluentd ܦ༝Ͱ Big Query
• ͔Βͷ Re:dash ͰՄࢹԽͰ͠ΐ͏͔
͜͜·ͰΕ৸ͯΔؒʹ Auto Scaling ͰΠϯελϯε ͕૿͑ͯউखʹαʔϏεΠ ϯͯ͘͠ΕΔ
ࠓ Auto Scaling ಋೖͯ͠Δ ͱ͜ΖͰ͢
Α͏͘ͷ΅Γ͡Ί͔ͨ Γ͔ͩΒͳ ͜ͷͯ͠ͳ͘ɹ ԕ͍Blue/GreenࡔΛΑ (͜ͷΜʹը૾)
͓·͚
ͦΕDockerͰry
ͦΕDockerͰͰ͖ΔΑ • Ҏ্ͷΑ͏ͳ͜ͱΛߟ͍͑ͯΔͱ Docker ͷϙʔλ ϏϦςΟΰΠεʔͬͯؾ࣋ͪʹͳͬͯ͘Δ • ΞϓϦέʔγϣϯίʔυͱΞϓϦέʔγϣϯ࣮ߦ ڥΛίϯςφʹ·ͱΊΔ͜ͱͰ͚ͯߟ͑ͳ͍ͯ͘ ͍Α͏ʹྑ͘ͳΔͷΠΠ
• ΰʔϧσϯΠϝʔδઓ๏ΛͬͯEC2͕ىಈ͢Δ ࣌ؒΛॖ͢Δ͜ͱ΄΅ෆՄೳʹ͍ۙ
·ͱΊ
·ͱΊ • DockerΛ͑ʂ • ΞϓϦέʔγϣϯରԠͰ͖ΔͳΒΔՁ͋Δ • ͋ͱ࠷ॳ͔Β Docker લఏͰ࡞Δ •
Blue/Green deployment ͱԿ͔આ໌ͨ͠ • αʔόΛࣺͯ͘͢͢ΔʹͲ͏͢Δ͔આ໌ͨ͠ • ͍Ζ͍Ζͳ͕͋Δ͜ͱΛઆ໌ͨ͠