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
日々の運用をconsulで楽にし隊
Search
tjinjin
February 21, 2016
Technology
490
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
日々の運用をconsulで楽にし隊
社内勉強会の資料です
tjinjin
February 21, 2016
More Decks by tjinjin
See All by tjinjin
Severlessでslack botを作る会
tjinjin
0
1.6k
Other Decks in Technology
See All in Technology
FinOps Agentが生んだ技術負債:コスト自動調査の落とし穴と解消までの道のり
oasis1994liveforever
1
120
スプシの手作業からの解脱 ~更新はClaude Codeに、見せ方と使い方はGASアプリに任せる~
kentarofujii
0
160
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.7k
自作バイナリを動かす「入口」8選
puhitaku
2
1.3k
Tofu-Controller lightning talk @ Containerday 2026
gionn
0
120
React改造してみた
tsukina_7mochi
0
100
AIにシークレットを見せない、WSL2で安全な開発環境
yazm
0
310
Code for Security プロジェクト紹介 2026年10月
yu23ki14
0
110
Webの常識が通じないHTMLメールのダークモード
teamlab
PRO
0
130
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
3
590
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
4
1.4k
Browser Spec: Testing Hotwire with Ruby
takahashim
1
130
Featured
See All Featured
Believing is Seeing
oripsolob
1
240
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
940
Making Projects Easy
brettharned
120
6.8k
Between Models and Reality
mayunak
4
500
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
WENDY [Excerpt]
tessaabrams
14
40k
Designing Experiences People Love
moore
143
24k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
600
Transcript
ʑͷӡ༻ΛConsulͰָʹ͠ୂ ~एऀເΛݟΔ~ 2016/2/19 tjinjin
Who? • feedforce, Inc. • Infrastructure engineer • twitter :
cross_black777 • github : tjinjin
φͰϠϯάͳڥΛ ࡞Γ·͢ʢʆΣ´ʣ
ࠓͷ͓ • Consulͷجૅ • σϓϩΠͷ • ϓϩϏδϣχϯάͷ • ʑͷӡ༻ͷ •
σϞʁ
ࠓ͞ͳ͍͜ͱ • ࠓظΠνΦγΞχϝͷ • γϦίϯόϨʔࣜμΠΤοτͷ • SHIROBAKOʹ͓͚ΔٶकͷϓϩϑΣογϣ φϦζϜͱ
Consulͷجૅ
Consulͱ • Hashicorp • αʔόಉ࢜ͰΫϥελΛΜͰɺͦͷΫϥελ ʹର͍͠ΖΜͳ͜ͱ͕Ͱ͖Δ
͏গ͠ৄ͘͠ • ىಈ࣌ͷΦϓγϣϯͰServer/ClientϞʔυʹ ͔ΕΔ • ServerͰىಈͨ͠Consulͷத͔ΒLeaderΛબ ग़͢Δɻ • ͦͷLeaderΛத৺ʹΫϥελ͕ػೳ͢Δ
https://www.consul.io/docs/internals/architecture.html
ઃఆϑΝΠϧ { "server": true, "client_addr": "0.0.0.0", "bootstrap_expect": 3, "data_dir": "/var/consul/data",
"watches": [ { "type": "event", "name": "deploy_bastion_development", "handler": "stretcher" } ] }
bootstrap-expect • consulΫϥελʹServerϊʔυ͕͜ͷࢦఆΛ ͨ͠ʹୡͨ࣌͠ʹLeaderͷબग़͕ߦΘΕ Δɻ
consul watch • ಛఆͷมԽΛݕͯ͠ɺॲཧΛ࣮ߦ͢Δ • event/nodes/serviceͳͲͳͲɽɽɽ
Ϋϥελͷ࡞Γํ
Ϋϥελͷ࡞Γํ • Ϋϥελͷؔʹ͍ͨ͠αʔόʢͲͪΒͰ ՄʣͰconsul joinίϚϯυୟ͘ • ىಈ࣌ʹstart_joinΦϓγϣϯΛࢦఆ͢Δͱࣗ ಈͰΫϥελʹjoin͞ΕΔ
None
ʁ
͍͠ɽɽɽ
ਓؒؔͰߟ͑Α͏
͜͜ʹήʔϜ͖΅͕ͬͪ3ਓ ͍Δͱ͢Δ
None
%2# ͓Ζʔ .)9 Ϋοι͆͆͆ ࣌ 'BMMPVU
ҰॹʹϓϨΠͰ͖ͳ͍…
͜ͷ··͡Ό΅ͬ ͪͷ··ʜ
ؒʢΫϥελʣ ʹͳΖ͏ͥ consul join hoge fuga
ϦʔμܾΊΑ͏ consul join hoge fuga ϦʔμܾΊΑ͏ ϦʔμܾΊΑ͏
͍͑͢ɺΏ͋ ͍Ͷ͢ ΦϨϦʔμͰΑ ͍ʁ :P ΫϥελԽ raftʹΑΓϦʔμ͕બग़͞Ε·͢
ΫϥελԽ ༑ୡͷ༑ୡ༑ୡ
͓̺ ύϫϓϩΔͧ ʢDPOTVMFWFOUʣ ͓̺ ΫϥελԽ
ͪͳΈʹjoinٯՄೳ
ؒʢΫϥελʣ ʹͳΖ͏ͥ consul join bar consul join bar ؒʢΫϥελʣ ʹͳΖ͏ͥ
ConsulΛ͑༑ୡ͕Ͱ͖Δ ͧʂʂʂ
start_join༮ͳ͡Έతͳͷ
σϓϩΠͷ
ैདྷΞϓϦέʔγϣϯͷ σϓϩΠ
capistranoΛͬͨ pushܕσϓϩΠ
http://tech.feedforce.jp/stretcher-consul-capistrano.html
ͪΐͬͱਐԽͨ͠σϓϩΠ
Consul + StretcherΛͬͨ pullܕσϓϩΠ
http://tech.feedforce.jp/stretcher-consul-capistrano.html
ϝϦοτ • ΞϓϦέʔγϣϯαʔόͷSSHଓߟ͑ͳ ͍͍ͯ͘ʢ͕૿͑ͯӨڹͳ͍ʂʣ • ຊ൪αʔόͰbundle installͳͲͷॏ͍ॲཧ͠ ͳͯ͘Α͍
ͱ͍͏ΛઌʑिͷษڧձͰ ͨ͠
hogeʮbuildαʔόͷӡ༻Ί ΜͲ͍ͳ͊ɻSPOFͳΔ͡Ό Μʯ
fugaʮCircleCIͰbuildͱ͔Ͱ ͖ͳ͍ͷʁʯ
fooʮ͜ΕRailsΞϓϦલఏͩ ΑͶʁϑϩϯτΤϯυʁʯ ※capistrano-stretcher-npmΛ͍͍͔͑
barʮσϓϩΠ͕ඇಉظʹͳ ΔͷͰ௨Ͳ͏͢Δͷʁʯ
tjinjinʮ…ʯ
http://jigokuno.com/eid_679.html
࡞ͬͨ
ɾrake-stretcher ɾrake-stretcher-rails npmؒʹ߹Θͳ͔ͬͨ
Կ͕Ͱ͖Δ • buildαʔόͳ͠ͰϩʔΧϧͰͷbuildΛՄೳʹ • consul eventͷൃՐΛHTTP APIϕʔεͰͰ͖ ΔΑ͏ʹ • 1ੈલͷrollbackͰ͖ΔΑ͏ʹ
σϓϩΠͷΠϝʔδ
গ͠γϯϓϧʹͳͬͨʁ
APIͰͷΠϕϯτൃՐ • ΫϥελͰίϚϯυୟ͘ඞཁ͕ͳ͍ • SSHͳ͠ͰσϓϩΠͰ͖Δ • AWS lambdaͬͯslack͔ΒσϓϩΠ࣮ߦ Ͱ͖Δʂʁ •
CircleCI͔ΒσϓϩΠͰ͖Δʁ
ເ͕ͻΖ͕ΓΜ͙ (∩´∀ʆ)∩ƂŖŘ
σϓϩΠ௨slack͔ consul-kv-dashboard
ϓϩϏδϣχϯάͷ
hogeʮpullܕσϓϩΠͰ͖Δ ͷΘ͔͚ͬͨͲɺͲ͏ͬ ͯͦͷঢ়ଶʹ͢ΔΜʁʯ
tjinjinʮ…ʯ
http://jigokuno.com/eid_679.html
pullܕσϓϩΠ͢ΔͨΊʹʁ • αʔό͕ىಈ͍ͯ͠Δ • ConsulΫϥελΛطʹܗ͍ͯ͠Δ • σϓϩΠʹඞཁͳϛυϧΣΞ͕Πϯετʔ ϧ͞Ε͍ͯΔʢstretcherͱ͔Ͷʣ
tjinjinʮஈ֊Λ͚࣮ͯݱ͠ Α͏ʂʯ
Phase1 ڥߏஙˍConsulΫϥελԽ • αʔόߏஙͨ͠λΠϛϯάͰConsulΫϥελ Խ͍ͤͨ͞ • ࣍ϖʔδͷਤͷߏΛఆ
શମߏਤ
Packer & Terraform
Packerͱ • HashiCorp • AWSΛىಈ͢Δͱ͖ʹ༻͢ΔAMIΛΧελ ϚΠζ͕؆୯ʹͰ͖Δ • AWSҙ֎ରԠͯ͠ΔΑʂ
stretcher/consul/awscliΛಋೖ
PackerͰ͍ͬͯΔ͜ͱ • stretcherಋೖ • awscliಋೖ • consulಋೖ
࣍
PackerͰ࡞ͬͨΧελϜAMI ΛͬͯTerraformͰڥߏ ங͢Δ͍ͧʂ
͍ͧ…ʁ
None
Terraformͱ • Hashicorp • αʔόڥͳͲΛίʔυͰநԽͰ͖Δ • ϘλϯҰͭͰڥͷߏஙɾഁյ͕Ͱ͖ɺॾਕ ͷ
ConsulΫϥελΛΉͨΊʹ • αʔόىಈޙʹ୭͔͕consul joinΛൃߦ͢Ε Α͍ • start_joinΛઃఆ͓͖ͯ͠ɺىಈޙʹjoinͤ͞ Ε͍͍͔
start_joinʹઃఆ͢ΔIP Ͳ͏͢Δʁ
Ͳ͜ʹjoin͢Δ͔ • AWSͰجຊతʹࢦఆ͞ΕͨIPϨϯδͰɺ։ ͍͍ͯΔIP͔ΒదͳͷΛબΜͰىಈ͢Δ • αʔόͷIPݻఆͯ͠ɺઃఆϑΝΠϧݻఆ͢Δ ͜ͱͰ͖Δ͚Ͳʢεέʔϧ͠ͳͦ͏…ʣ
TerraformͷTemplateΛར༻ ͢Δ
Template provider • TerraformͰ࡞ͨ͠ϦιʔεͷมΛར༻Ͱ ͖Δ • ࠓճͰݴ͏ͱbastionαʔόͷprivate_ipΛऔ ಘͯ͠ɺͦͷଞαʔό͕bastionαʔόʹ consul join͢ΔઃఆΛ࡞Δ
None
boot-consul.sh.tpl
Phase2 ΞϓϦʹඞཁͳϛυϧΣ Ξͷ४උ • ΞϓϦΛಈ͔ͨ͢ΊͷϛυϧΣΞΛಋೖ͠ ͍ͨ
ैདྷknife-soloʢchefʣΛ ͬͯͬͯͨ
knife-soloΠϝʔδ http://www.creationline.com/lab/6401 ΑΓҾ༻
ࠓճchef-soloΛͬͯ stretcherͰ
࡞ͬͨ ɾrake-stretcher-chef
Կ͕Ͱ͖Δʁ • chefͷϦιʔεΛtarballʹݻΊͯS3Ξοϓ ϩʔυ • APIϕʔεͰͷeventͷൃՐ
rake-stretcherΛ෦Ͱར༻ ͯ͠Δ͚ͩɻ
͜͜·ͰͰڥߏஙɾσϓϩ ΠͰ͖Δ४උ͕ྃͨ͠
Ͱɺڥ࡞ͬͯ ऴΘΓ͡Όແ͍
ӡ༻ͷ
ਓؒੜ͖͍ͯΕ͍ΖΜͳ͜ ͱ͕͋Γ·͢…
ӡ༻தͷαʔόಉ͡ʂʂ
Α͋͘Δͭ • ϛυϧΣΞͷηΩϡϦςΟΞοϓσʔτ • εέʔϧΞοϓ/μϯ • εέʔϧΞτ/Πϯ
None
Կ͕͋ͬͯαʔϏεͱΊ ͪΌ͍͚ͳ͍
҆શʹؾܰʹΓ͍ͨ
ࠓࢥ͍ඳ͍͍ͯΔߏ
εέʔϧΞτɾΠϯ
ࣈΛมߋ͢Δ͚ͩ
εέʔϧΞοϓ εέʔϧμϯ ηΩϡϦςΟΞοϓσʔτ
Blue greenతͳͭͰ
Blue-Green deployment • > ՔಇதͷBlueʹରͯ͠ԿͤͣɺผͷΠϯ ελϯεͰ৽͍͠ϦϏδϣϯͷGreenΛ࡞ͬ ͯɺҙͷઓུʹԊͬͯશମΛGreenʹΓସ ͍͑ͯ͘ http://aws.typepad.com/sajp/2015/12/what-is-blue-green-deployment.html
None
None
None
͜ΕΛTerraformͰ؆୯ɾ҆ શʹΓ͍ͨ
ʢ5ׂͰ͖ͯΔʣ
None
None
None
՝ • υϝΠϯͷΓସ͑ࠓͷͱ͜ΖखͰ ʢRoute53ͷϦιʔεͬͯྑ͍ʣ • Γସ͑ʹͨͬͯtfϑΝΠϧΛԿมߋ͠ ͳ͍ͱ͍͚ͳ͍͔…
·ͱΊ
՝ • ϑϩϯτͷσϓϩΠඋ • chef-solo͔Βͷ٫ • ͦͷଞpullܕσϓϩΠͱͷൺֱ • ʑͷӡ༻Λߟ͑ͯͷΑΓϕλʔͳͷΛ୳ ͢
ࣗಈԽ·ͰͷಓͷΓ ·ͩ·ͩԕ͍
ҰͭҰͭղܾ͍͖͍ͯͨ͠ʂ