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
ペパボにおけるOpenStackHacks!
Search
Kazuhiko Yamashita
July 04, 2015
Technology
5
3.8k
ペパボにおけるOpenStackHacks!
GMO Pepabo.incのOpenStack運用事例です。
Kazuhiko Yamashita
July 04, 2015
Tweet
Share
More Decks by Kazuhiko Yamashita
See All by Kazuhiko Yamashita
新しい職場の CI が 20 分かかっていたらあなたならどうする?
pyama86
1
1.3k
事業を差別化する技術を生み出す技術
pyama86
4
1.7k
Re:Define 可用性を支える モニタリング、パフォーマンス最適化、そしてセキュリティ
pyama86
9
8.4k
AI時代におけるSRE、 あるいはエンジニアの生存戦略
pyama86
6
1.7k
Tuning GraphQL on Rails
pyama86
2
2k
ttlcacheのここがスゴい
pyama86
1
170
クラウドサービスの 利用コストを削減する技術 - 円安の真南風を感じて -
pyama86
3
630
実践ARMアーキテクチャ移行
pyama86
2
2.5k
リモートワーク時代の守護神 PHP開発者のためのセキュリティ強化術
pyama86
3
1.3k
Other Decks in Technology
See All in Technology
PHPからはじめるコンピュータアーキテクチャ / From Scripts to Silicon: A Journey Through the Layers of Computing
tomzoh
2
330
QAを早期に巻き込む”って どうやるの? モヤモヤから抜け出す実践知
moritamasami
2
130
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
18k
全部AI、全員Cursor、ドキュメント駆動開発 〜DevinやGeminiも添えて〜
rinchsan
10
5.4k
SREのためのeBPF活用ステップアップガイド
egmc
2
1.4k
セキュアなAI活用のためのLiteLLMの可能性
tk3fftk
1
420
ObsidianをLLM時代のナレッジベースに! クリッピング→Markdown→CLI連携の実践
srvhat09
6
5.3k
Microsoft Fabric ガバナンス設計の一歩目を考える
ryomaru0825
1
140
(HackFes)米国国防総省のDevSecOpsライフサイクルをAWSのセキュリティサービスとOSSで実現
syoshie
5
560
ABEMAの本番環境負荷試験への挑戦
mk2taiga
5
1.4k
RapidPen: AIエージェントによる高度なペネトレーションテスト自動化の研究開発
laysakura
1
290
安定した基盤システムのためのライブラリ選定
kakehashi
PRO
3
140
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
Building Applications with DynamoDB
mza
95
6.5k
Writing Fast Ruby
sferik
628
62k
Building an army of robots
kneath
306
45k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Unsuck your backbone
ammeep
671
58k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.2k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
700
Git: the NoSQL Database
bkeepers
PRO
431
65k
Gamification - CAS2011
davidbonilla
81
5.4k
Transcript
dͱՆΛҰॹʹτΡΪϟβʔ͠·ઐՊʂʂฤd GMO Pepabo, Inc. Pࢁ 2015/07/04 Pepabo Tech Conference in
Fukuoka ϖύϘʹ͓͚Δ 0QFO4UBDL)BDLT
Ͳɺ΅͘Ͱ͢ 1ࢁ (.01FQBCP*OD !QZBNB UFOTOBQPODPN
"HFOEB 0QFO4UBDLJT /ZBIJT IBDLT ࠓͬͯΔ͜ͱ
0QFO4UBDLJT Ϋϥυج൫ 7.Λཧ͢ΔͨΊͷ ιϑτΣΞ܈
ߏਤ /PWB"1* )PSJ[PO ,FZTUPOF /PWB$PNQVUF ཧϗετ /FVUSPO $JOEFS HMBODF ͜Μͳ7.࡞Γ͍ͨ
͜ͷϢʔβʔݖݶ ͋Δʁ ༻͢ΔΠϝʔδ 04͜Ε σΟεΫ͜͜Λ ͏ $16ɼϝϞϦ ͜Ε ༻͢ΔωοτϫʔΫ͜Ε ΦϨΦϨʂԶͩΑʂ
ϖύϘ͕ղܾͨ͠ ͔ͬͨ͜ͱ
ݸʑͷαʔϏεͰಠࣗʹΠϯϑϥΛߏங
αʔόΛؾܰʹ࡞Γ͍ͨ ຐ๏ͷΑ͏ʹ؆୯ʹ αʔό࡞Γ͍ͨΘ͊ɻɻ
“2014/05/01 Issueݐઃ αʔϏε͝ͱͰͳ͘ɺ શࣾڞ௨ͷΠϯϑϥج൫Λ࡞Δͧʂʂʂʂ
/ZBI
/ZBIJT ϖύϘͷԾج൫Πϯϑϥ ͜Ε·ͰαʔϏε͝ͱʹઃ͚͍ͯͨ ΠϯϑϥΛ0QFO4UBDLͰ౷߹
/ZBIJT IUUQXXXTMJEFTIBSFOFUVNF@QCUDCPC IUUQTXXXZPVUVCFDPNXBUDI W(618.;CP1T6
/ZBIͷ༝དྷ /PBIʹܾ·Δ தೋපͬΆ͍ͬͯͳΔ Ұจࣈม͑ͯ/ZBIʹ͠Α͏ͥͬͯͳΔ ޙͰ͔͍͍ͬͯ͜ࣈߟ͑Α͏ͥͬͯͳΔ /ZBIJTZFUBOPUIFSIPTUJOH
/ZBI αʔϏε͝ͱʹςφϯτΛ ׂ͠ɺݖݶ ϦιʔεΛཧ
ߏཧ
“ http://techlife.cookpad.com/entry/2015/05/12/080000
JUBNBF $JOEFS /PWB $PNQVUF /FVUSPO /PWB $PNQVUF /PWB $PNQVUF /PWB
$PNQVUF (JUͰόʔδϣϯཧ OPWBDPOG ʜ OFVUSPODPOG ʜ DJOEFSDPOG ʜ TFSWJDFOPWBSFTUBSU TFSWJDFOFVUSPOSFTUBSU TFSWJDFDJOEFSSFTUBSU
JUBNBF OPWBOPEF CBTFSPMF NBDLFSFMSFDJQF OPWBSPMF DPNQVUFSFDJQF BQJSFDJQF CVOEMFFYFDJUBNBFTTIIOPWBQCDMPVEDPNa OPEFKTPOOPEFOPWBKTPOCPPUTUSBQSC
JUBNBF TFSWJDFPQFOTUBDLOPWBDPNQVUF SFNPUF@pMFFUDOPWBOPWBDPOGEP OPUJpFTSFTUBSU TFSWJDF<PQFOTUBDLOPWBDPNQVUF> FOE
JUBNBF TFSWJDFPQFOTUBDLOPWBDPNQVUF SFNPUF@pMFFUDOPWBOPWBDPOGEP OPUJpFTSFTUBSU TFSWJDF<PQFOTUBDLOPWBDPNQVUF> FOE
ࢹ
.BDLFSFM ͯͳ͕ࣾఏڙ͢Δαʔό ࢹαʔϏε .BDLFSFMḉ ϩʔϧͰࢹઃఆΛଋͶΔ͜ͱ͕ Մೳ
.BDLFSFM NBDLFSFM\ SPMFOZBIOFVUSPOOPEF DPOG\ NPOJUPS< \ OBNFQMVHJODIFDLTOFVUSPOTFSWFS DPNNBOEVTSMJCOBHJPTQMVHJOTDIFDL@QSPDTBOFVUSPOTFSWFSD
^ \ OBNFQMVHJODIFDLTOFVUSPO DPNNBOEVTSMJCOBHJPTQMVHJOTDIFDL@UDQ)MPDBMIPTUQXD ^ ʜ > ^ ^
.BDLFSFM /FVUSPO JUBNBFNBDLSFMSC SPMFT<OZBIOFVUSPOOPEF> <QMVHJODIFDLTOFVUSPOTFSWFS> DPNNBOEVTSMJCOBHJPTQMVHJOTDIFDL@QSPDTBOFVUSPOTFSWFSD <QMVHJODIFDLTOFVUSPO>
DPNNBOEVTSMJCOBHJPTQMVHJOTDIFDL@UDQ)MPDBMIPTUQXDz ʜ NBDLFSFMḉ ࢮ׆ɺ͖͍͠ࢹ
.BDLFSFM
.BDLFSFM ઃఆϗετଆ͚ͩͰ*1ΞυϨεؾʹ ͠ͳ͍͍ͯ͘ ઃఆϑΝΠϧ͕γϯϓϧͰཧ͍͢͠ ࢹఆٛ(6*ͰαΫαΫΕΔ͔ͭɺ ҰೖΕͯ͠·͑͋ͱಉ͡ϩʔϧ ʹࢀՃͤ͞Δ͚ͩ
/ZBI·ͱΊ 0QFO4UBDLͬͯ·͢ ϖύϘͷϓϥΠϕʔτΫϥυ αʔϏε୯ҐͰϦιʔεཧ ߏཧJUBNBF
ࢹNBDLFSFM
)BDLT
य़
େମग़དྷͨ
͡Ό͋ɺ৮ͬͯΈͯ ͍͍͔͢ʂʂʂ
)PSJ[PO 7.ཧ /8ཧ ηΩϡϦςΟʔཧ Ϣʔβʔཧ
Ϧιʔεཧ
0QFO4UBDL$MJFOU 1ZUIPOͷΫϥΠϯτ OPWBMJTU OFVUSPOQPSUMJTU LFZTUPOFFOEQPJOUMJTU IUUQEPDTPQFOTUBDLPSHKBVTFSHVJEFDPOUFOUJOTUBMM@DMJFOUTIUNM
GNʜ ͡Ό͋ɺԿʁ ϗετ࡞Δͷʹճ 8*ૢ࡞ͨ͠ΓɺίϚϯυ ͛ͳ͖Ό͍͚ͳ͍Θ͚Ͱ͔͢ʁ
ͬͯΒΜͳ͍ʂʂʂ
)BDLT LBOBNFϢʔβʔཧ LBLJOFηΩϡϦςΟάϧʔϓཧ OZBIDMJ7.࡞ 1FD7.T࡞
Ϣʔβʔཧ
LBOBNF ϖύϘͰਓͷΤϯδχΞ͕ ෳͷαʔϏεʹܞΘΔ )PSJ[POͩͱมߋཤྺ͕ཧͰ͖ͳ͍ ূ͕Βͳ͍
LBOBNF ઃఆϑΝΠϧΛZBNMͰఆٛ ઃఆϑΝΠϧΛ(JUʹू ʮ୭͕ɺ͍ͭɺͲͷݖݶʯΛอ͔࣋ͨ͠Λཧ QZBNB FNBJMlQZBNB!QFQBCPDPNl UFOBOUT NVVNVVlDJUZCPZ
EFWFMPQlBENJOz UBOBLB FNBJMlUBOBLB!QFQBCPDPN UFOBOUT EFWFMPQNFOUNFNCFS
LBOBNF ొ༰ ,FZTUPOF QZBNB FNBJMlQZBNB!QFQBCPDPNl UFOBOUT NVVNVVlDJUZCPZ EFWFMPQlBENJOz UBOBLB FNBJMlUBOBLB!QFQBCPDPN
UFOBOUT EFWFMPQNFOUNFNCFS (JU)VC13 ɹొ༰ʹޡΓ͕ͳ͍͜ͱΛ ɹ֬ೝ͢Δ (JU)VCͰͷϨϏϡʔྃޙɺొ
ηΩϡϦςΟཧ
DPNQVUFOPEF ཧϗετ JOUFSGBDF 4FDVSJUZ(SPVQ Ϝʔ7. /PWB"QJ /FVUSPO Ϝʔ7.ʹΦϑΟε͔Βͷ 44)ڐՄ͍ͨ͠ Ϝʔ7.ʹ44)ڐՄ
JQUBCMFTఆٛ 7.Ͱͳ͘DPNQVUFOPEFʹ JQUBCMFTఆٛ
LBLJOF ઃఆϑΝΠϧΛZBNMͰఆٛ ઃఆϑΝΠϧΛ(JUʹू ηΩϡϦςΟઃఆͷϨϏϡʔ͕ՄೳʹͳΓɺ ·ͨɺొɺΓ͠ͷख͕ؒେ෯ʹݮ JOUFSOBM@QFSNJU SVMFT
EJSFDUJPOJOHSFTT QSPUPDPM FUIFSUZQF*1W QPSU SFNPUF@JQ EFTDSJQUJPOΠϯλʔφϧઢͷ௨৴ΛશͯڐՄ
LBLJOF طଘઃఆͷऔಘɾฤूɾొ /PWB"QJ JOUFSOBM@QFSNJU SVMFT EJSFDUJPOJOHSFTT QSPUPDPM FUIFSUZQF*1W QPSU SFNPUF@JQ
EFTDSJQUJPOΠϯλʔφϧઢͷ௨৴ΛશͯڐՄ ొ͞Εͨ༰Λө ࠷৽ొ༰Λ(JUཧ /PWB$PNQVUF /PWB$PNQVUF /PWB$PNQVUF
Πϯελϯε࡞
JNBHF
JNBHF TVEPϢʔβʔͷ࡞ TTIαʔόʔͷ࣮ߦ DMPVEJOJU PQFOTUBDLBQJDMJFOU QZUIPO ͷ Πϯετʔϧ σΟεΫ࠷খԽͱΠϯελϯεىಈ࣌ʹࣗಈ֦ு ωοτϫʔΫॳظԽ
ϑΝΠΞΥʔϧͷແޮԽ ຊ࣌ؒΛઃఆ ىಈ࣌ͷTMBDL௨
JNBHF $FOU04 XJUIDIFGQVQQFU 6CVOUV
XJUIDIFGQVQQFU $PSF04ͳͲͳͲ
JOTUBODF JNBHF CBTF &TTFODF QVQQFU DIFG DMPVEJOJU
“Πϝʔδͷىಈ࣌ʹ͞Εͨuser-dataʹج͖ͮ OSʹରͯ͠ઃఆΛߦ͑ΔΈ $MPVE*OJU DMPVEJOJU DMPVEDPOpH ϦϑΝϨϯε IUUQT[FUUBJPOCIKFMQDPNNVOJUZBSUJLMFSPHPQQMBFSJOHDMPVEJOJUSFGFSFODF
$MPVE*OJU IPTUOBNFQZBNBEFNP GREOQZBNBEFNPDPN SFQP@SFMFBTFWFS VTFST OBNFQZBNB HSPVQTQZBNB TIFMMCJOCBTI TVEP<"-- "--
/01"448%"--> TTIBVUIPSJ[FELFZT TTISTB'%"%'"%#/[B$ZD&GEMGKBTE&"R6+WTW,H)3.)E CPPUDNE FDIPSPPUQZBNBcDIQBTTXE
/ZBI$MJ (PͰ։ൃ͞Εͨ"1*ϥούʔίϚϯυ ίϚϯυҰൃͰ7.Λىಈ VTFSEBUBʹରԠ͍ͯ͠ΔͷͰҙͷઃఆ͕ىಈޙʹ ߦΘΕΔ *1ΞυϨεઃఆΛࣗಈԽ
VE[VSBOZBIDMJ 8SBQQFSPG/ZBIUIF8SBQQFSPG0QFO4UBDL OZBIJOTUBODFTUEFWOZBIa JDFOUPTOQZBNBUFTUQQZBNBQBTTa OFUXPSLFYUOFUFYU JOUOZBIa GNTNBMMVTFSEBUBVTFSEBUBZNM
1FD ઃఆϑΝΠϧʹج͖ͮෳͷ7.Λ Ұׅىಈɾఀࢭ VTFSEBUBͷςϯϓϨʔτԽΛαϙʔτ QZBNBUFTU UFOBOUQFQBCP JNBHFDFOUPT@DIFG@QVQQFU qBWPSNTNBMM
OFUXPSLT FUI CPPUQSPUPTUBUJD JQ@BEESFTT HBUFXBZ EOT TFDVSJUZ@HSPVQ EFGBVMU TTI UFNQMBUFT CBTFZBNM XFCTFSWFSZBNM
)BDLT·ͱΊ ϢʔβʔཧΛূΛͭͭ͠ ָʹʂʂ ηΩϡϦςΟʔཧΠϯελϯε ࡞ͷखؒΛίʔυͰղܾ
ࠓͬͯΔ͜ͱ
*1Λҙࣝ͠ͳ͍ ΠϯϑϥΛίʔυͰ ࡞Γ͖Δ
Α͋͘Δ%/4γεςϜ -# -# %/4 %/4 %/4 WJQ SJQ SJQ SJQ
SJQ SJQ
“)BTIJ$PSQࣾͷϓϩμΫτ *(.1Λར༻͠ಉ͡άϧʔϓͷϝϯόʔͷՃ ΛΠϕϯτ௨͠ɺεΫϦϓτͳͲͷ ࣮ߦ͕Մೳ
4FSG TFSGNFNCFST MCEFWMPDBMBMJWFSPMFMC EOTEFWMPDBMBMJWFSPMFEOT EOTEFWMPDBMBMJWFSPMFEOT DBUBHFOUMPH BHFOU&WFOUNFNCFSKPJOEOTEFWMPDBMEOTSPMFEOT ಉ͡άϧʔϓʹॴଐ͍ͯ͠Δϗετ ৽͘͠ϝϯόʔ͕Ճ͞Εͨ
ࣗಈԽ4UFQ $IFG 7. TFSGNFNCFSKPJO -#ϨγϐΛྲྀ͢ -# 7.ͷىಈͱಉ࣌ʹ ɹDMPVEJOJUͰTFSGΠϯετʔϧ Ϩγϐ͕ྲྀΕͯ-#ͷΠϯετʔϧ͕ྃ
ࣗಈԽ4UFQ -# -# %/4 %/4 %/4 WJQ SJQ SJQ
ࣗಈԽ4UFQ $IFG 7. EOTϨγϐΛྲྀ͢ %/4 Ϩγϐ͕ྲྀΕͯEOTͷΠϯετʔϧ͕ྃ -# TFSGͷNFNCFSKPJO %/4αʔϏεͷ7*1ʹKPJOͨ͠%/4Λ ɹϝϯόʔՃ
7.ͷىಈͱಉ࣌ʹ ɹDMPVEJOJUͰTFSGΠϯετʔϧ TFSGNFNCFSKPJO
ࣗಈԽ4UFQ -# -# %/4 %/4 %/4 WJQ SJQ SJQ SJQ
SJQ SJQ
ࣗಈԽ4UFQ $IFG 7. EOTϨγϐΛྲྀ͢ %/4 Ϩγϐ͕ྲྀΕͯEOTͷΠϯετʔϧ͕ྃ -# TFSGͷNFNCFSKPJO %/4αʔϏεͷ7*1ʹKPJOͨ͠%/4Λ ɹϝϯόʔՃ
7.ͷىಈͱಉ࣌ʹ ɹDMPVEJOJUͰTFSGΠϯετʔϧ TFSGͷNFNCFSKPJO
/BNJOPSJ 4FSG -WTͷϥΠϒϥϦ αʔϏεͷϔϧενΣοΫͰ͖Δ ϝϯόʔͷՃআΛ4MBDL௨ #! /usr/bin/env
ruby require 'rubygems' require 'naminori' Naminori::Notifier::Configure.instance.set({ webhook_url: "https://hooks.slack.com/services/XXXXXX", channel: "#pyama", user: "#naminori" }) service_options = { vip:"192.168.77.9" } case when Naminori::Serf.role?("dns") Naminori::Service.event("dns", "lvs", service_options) when Naminori::Serf.role?("lb") Naminori::Lb.health_check("dns", "lvs",service_options) end
·ͱΊ
શମ·ͱΊ ϓϥΠϕʔτΫϥυΛαʔϏε͝ͱʹς φϯτཧ͠ӡ༻͍ͯ͠·͢ ߏཧࢹࣗಈԽ ख͕͔͔ؒΔ͜ͱɺཧ͕ඞཁͳ͜ͱࣗ ͨͪͰίʔυॻ͍ͯղܾ
αʔϏεΛҠߦ͢Δ͚ͩͰͳͯ͘ɺΫϥ υΒ͍͜͠ͱ࢝Ίͯ·͢
͜͜Ͱঁੑਞ͔Β ࣭͕ࡴ౸͢Δ
͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠
Ҡߦࣄྫ
/ZBIͰಈ͍͍ͯΔαʔϏε ֤αʔϏεӶҙҾͬӽ͠த
None
4UFQ Ҡߦݩ -# 1SPYZ 8&# 5IF*OUFSOFU
4UFQ Ҡߦݩ -# 1SPYZ 8&# -# 1SPYZ 8&# 5IF*OUFSOFU
4UFQ Ҡߦݩ -# 1SPYZ 8&# -# 1SPYZ 8&# 5IF*OUFSOFU
ϜʔϜʔυϝΠϯ ΠϯϑϥΛͯ͢$IFGͰίʔυԽ յΕͨΒࣺͯͯɺ࡞Γ͢ -#ͷ%JSFDU3PVUJOHߏ͕ Ίͳ͍ʜ
%3ߏΊͳ͍ /PWB$PNQVUFεςʔτϑϧʹஅ͠ *OWBMJE1BDLFUΛഁغ͢Δ 5$1XBZϋϯυγΣΠΫཱ͕͠ͳ͘ͳͬͨ IPTU# IPTU" TZO TZO
BDL BDL σʔλ௨৴ͷ։࢝
DPNQVUF DPNQVUF %3ߏΊͳ͍ -# 1SPYZ TZO TZO TZO BDL TZO
BDLΛฦͨ͠ͷDPNQVUF DMJFOU
DPNQVUF DPNQVUF %3ߏΊͳ͍ -# 1SPYZ BDL DMJFOU
DPNQVUF DPNQVUF /"5ߏʹͨ͠ -# 1SPYZ TZO TZO TZO BDL DMJFOU
ϜʔϜʔυϝΠϯҠߦࣄྫ·ͱΊ Πϯϑϥͯ͢$IFGͰίʔυԽ 7.ͷσʔλͯ͢$PNQVUF OPEF ཧϗετ ͷϩʔΧϧ σΟεΫͷͨΊɺյΕͨΒ࡞Γͳ͓ ͢
-#ͷ%3ߏΊͳ͍