˙ 0QFO4UBDLΛ༻͍ͨϓϥΠϕʔτΫϥυ /ZBI
w ݄ݱࡏɺϕΞϝλϧ͕ඞཁͳ෦Λআ͍ͯ/ZBI্ͰαʔϏεΛӡ༻
w Ұ෦ύϒϦοΫΫϥυ1BB4ར༻
˙ ΫϥυԽʹ͍ϦʔυλΠϜݮ
˙ ཧαʔόʔͷཧΛू͢Δ͜ͱͰޮ61
!13
$MPVE&SB
IUUQTTQFBLFSEFDLDPNUONUTIPVMEXFQSFQBSFPXOQBBTΑΓ
Slide 14
Slide 14 text
˙ ԾԽ͞Ε͍ͯΔͱ͍͑ɺઃܭɾߏஙʹ͕͔͔࣌ؒΔ
w ઐ͡Όͳ͍ΤϯδχΞ͕͔Βઃܭɾߏங͢ΔͷͦΕͳΓʹ͍͠
˙ ΤϯδχΞͷΞαΠϯҾ͖ଓ͖՝
w ʮ999ೖΕ͍ͨΜͰߏங͓ئ͍͠·͢ʯʮٸʹݴΘΕ͕ͯ࣌ؒʙʯ
˙ ߏυϦϑτɺϊʔϑϨʔΫαʔόͷൃੜ
w ઃఆࠩҟɺଞͱઃఆ͕ҟͳΔαʔόʔ
!14
͕ͩɺ͔͠͠ʜ
IUUQTTQFBLFSEFDLDPNUONUTIPVMEXFQSFQBSFPXOQBBTΑΓ
Slide 15
Slide 15 text
˙ ਓ͕հࡏ͢ΔՕॴ͕ϘτϧωοΫ
˙ ेʹࣗಈԽͰ͖͓ͯΒͣɺΦϖϨʔγϣϯ͕ൃੜ͍ͯ͠Δ
w ͜ΕʹΑΓߏυϦϑτεϊʔϑϨʔΫαʔόʔ͕ੜ·ΕΔ
˙ ͜͜Λղফ͠ͳ͍ͱࠜຊతͳ՝ղܾʹͳΒͳͦ͞͏
!15
ΫϥυԽͯ͠ଘࡏ͢Δ՝
˙ *BB4ͷ··ࣗಈԽΛਐΊΔ
w ྫɿ0QFO4UBDL)FBUͷΑ͏ͳΦʔέετϨʔγϣϯπʔϧ
w ॳظஈ֊ͷαʔόʔߏஙඞཁ
˙ *BB4ΛӅṭ͢ΔΑ͏ͳϓϥοτϑΥʔϜΛಋೖ͢Δ
w ྫɿ$BB4
1BB4ͳͲ
w ཧରͱͳΔϨΠϠʔ͕૿͑Δ
!17
՝ʹରͯ͠ଧͯΔखʁ
Slide 18
Slide 18 text
$IBMMFOHF
Slide 19
Slide 19 text
˙ *BB4ΑΓڧ੍ྗͷڧ͍ϓϥοτϑΥʔϜ
w 1BB4ͳͲʹൺΔͱࣗ༝ߴ͍
˙ αʔόʔιϑτΣΞՃͷϦʔυλΠϜΛେ෯ʹݮͰ͖Δ
w αʔόʔՃ,VCFSOFUFTͷϊʔυΛՃ͢Δ͚ͩͰ0,
w ιϑτΣΞՃίϯςφԽ͞Ε͍ͯͨΒ͙͢ʹಋೖͰ͖Δ
˙ ߏυϦϑτɺεϊʔϑϨʔΫαʔόʔ͕ൃੜ͠ʹ͍͘Έ
w ఆٛʹج͍ͮͯࣗಈతʹͦͷঢ়ଶʹભҠ͢Δ
!19
,VCFSOFUFTͷಋೖΛࢦ͢
Slide 20
Slide 20 text
ͱ͍͑ʜ
Slide 21
Slide 21 text
,VCFSOFUFTͬͯ
ӡ༻େมͳΜͰ͠ΐ
Slide 22
Slide 22 text
˙ ͜Ε·Ͱݟฉ͖ͨ͠ใͩͱ͔֬ʹେมͦ͏
w ӡ༻Ͱർฐͯ͠ɺຊ࣭తͳ՝ղܾΛߦ͑ͳ͘ͳΒͳ͍͔ʁ
˙ ͔͠͠ɺνϟϨϯδͰ͋Δ͕ɺແବʹͳΒͳ͍ͣ
w αʔϏεͷ,VCFSOFUFTରԠϙʔλϏϦςΟͷ্
w ಘͨݟ࣮ࢪͨ͠վળ׆༻Ͱ͖Δ
w ΑΓྑ͍ϓϥοτϑΥʔϜΛ࡞ΔͨΊͷϓϥοτϑΥʔϜʹͳΔ
!22
ͱ͍͑,VCFSOFUFTͬͯӡ༻େมͳΜͰ͠ΐ
!34
ಋೖલͷߏ
MC
MC
MC
BQJ
nginx+consul-templateͰ
ಈతʹupstreamͱͯ͠apiͷΞυϨεΛऔಘ
NJOOFDPN
BQJTFSWJDF
BQJ BQJ BQJ
Slide 35
Slide 35 text
˙ طଘγεςϜͰαʔϏεσΟεΧόϦʹ$PTVMΛར༻
˙ OHJOYDPTVMUFNQMBUFͰಈతʹVQTUSFBNΛߋ৽
!35
4FSWJDF%JTDPWFSZPONJOOF
nginx
consul-template
api
api
api
get api address
update nginx.conf and reload
Slide 36
Slide 36 text
!36
7.ͱ,VCFSOFUFTΛฒߦՔಇ͢Δ
LTMC
MC
MC
BQJ
NJOOFDPN
BQJTFSWJDF
BQJ BQJ BQJ BQJ
,VCFSOFUFT
BQJTFSWJDF
consul-templateͰnginxͷupstreamʹ
apiͷΞυϨεΛઃఆ
Slide 37
Slide 37 text
,VCFSOFUFTͰ$POTVM͑Δͷʁ
Slide 38
Slide 38 text
!38
ͳΜͱ͑·͢
Slide 39
Slide 39 text
˙ $POTVMΛ,VCFSOFUFT্Ͱಈ͔͢
˙ $POTVMͷαʔϏεͱ,VCFSOFUFTͷαʔϏεΛ૬ޓʹಉظ͢Δ
w 1PE͕ಈ͍͍ͯΔ/PEFͷ*1ΞυϨεͱ/PEF1PSUΛ$POTVM͔ΒऔಘͰ͖Δ
˙ $POTVM$POOFDUTJEFDBSQSPYZΛ1PEʹΠϯδΣΫγϣϯ͢Δ
!39
$POTVM,VCFSFUFT*OUFHSBUJPO
˙ ,VCFSOFUFTΫϥελʔΛࣗલͰߏஙɾӡ༻Ͱ͖ΔΑ͏ʹͳͬͨ
w ,VCFSOFUFTগ͚ͩ͠Θ͔͖ͬͯͨ
˙ ͚ࣾڞ༻ΫϥελʔͰ͋Ε͜Εಈ͔࢝͠Ίͨ
w ,VOFSOFUFTͷར༻Ϣʔβʔ͕ࣾʹ૿͖͑ͯͨ
˙ NJOOFʹΛಋೖ͠ɺຊ൪ڥͰՔಇ࢝͠Ίͨ
w σϓϩΠϩʔϧຖͷϦιʔεྔΛ,VCFSOFUFTͷΈʹͤΒΕͨ
!74
͜͜·Ͱͬͨ͜ͱ ଞʹ৭ʑ͋Δ͚Ͳ
˙ நԽ͞ΕͨϓϥοτϑΥʔϜͷఏڙɾߟ͑ํͷܒ
w ϚωʔδυαʔϏεΛͬͨͱͯ͠ߟ͑ํΛม͑Δ͜ͱඞཁ
˙ ϓϥοτϑΥʔϜͷཪଆͷཧղ
w ҰͭҰͭཧղ͍͔ͯ͘͠͠ͳ͍
!83
ج൫αΠυͷΤϯδχΞͱͯ͠
Slide 84
Slide 84 text
˙ நԽ͞ΕͨϓϥοτϑΥʔϜͷఏڙɾߟ͑ํͷܒ
w ϚωʔδυαʔϏεΛͬͨͱͯ͠ߟ͑ํΛม͑Δ͜ͱඞཁ
˙ ϓϥοτϑΥʔϜͷཪଆͷཧղ
w ҰͭҰͭཧղ͍͔ͯ͘͠͠ͳ͍
!84
ج൫αΠυͷΤϯδχΞͱͯ͠
େม͚ͩͲָ͍͠
Slide 85
Slide 85 text
˙ 0QFO4UBDLଆͷϊΠδʔωΠόʔ
w ΠϯελϯεϩʔϧͰͳ͘ͳͬͨͷͰݪҼͷಛఆ͕͞Βʹ͘͠ͳͬͨ
˙ αʔϏεͰൃੜͨ͠ͷௐ͕͍ࠪ͠
w ,VCFSOFUFTΫϥελʔଆͳͷ͔ɺΞϓϦέʔγϣϯଆͳͷ͔ʁ
˙ Ϋϥελʔͷ͚ͩӡ༻͕͋Δ
w ΫϥελʔͷΞοϓσʔτ
w ΫϥελʔϨΠϠʔͰͷোରԠ
!85
,VCFSOFUFTಋೖʹΑΔ৽͍͠՝
Slide 86
Slide 86 text
˙ 0CTFSWBCJMJUZͷڧԽ
w Օॴͷਝͳಛఆʹܨ͕ΔΑ͏ʹ͍ͨ͠
˙ ,VCFSOFUFTपลʹؔ৺͕͋ΔϝϯόʔΛ૿͢
w ϋϯζΦϯͳͲ
˙ ίʔυΛॻ͍ͯࣗಈԽ͢Δ
w ,VCFSOFUFTͦͷͨΊͷϓϥοτϑΥʔϜͱͯ͠ར༻͍͢͠
!86
ࠓޙͷऔΓΈ