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
エネルギープラットフォーマーを目指す東京ガス内製開発チームが始めたKubernetes
Search
Yusuke Sugiyama
May 22, 2024
Technology
2
980
エネルギープラットフォーマーを目指す東京ガス内製開発チームが始めたKubernetes
CloudNative Days Summer 2024 プレイベント@東京で発表した資料です。
Yusuke Sugiyama
May 22, 2024
Tweet
Share
More Decks by Yusuke Sugiyama
See All by Yusuke Sugiyama
エンジニアゼロからの挑戦〜ビジネス価値を創造するための取り組みを振り返る〜
yussugi
1
220
AmazonEKSやっていくことを宣言して自らを追い込むLT
yussugi
2
1.1k
Other Decks in Technology
See All in Technology
Binary Authorizationと友達になろう / Let's be friends with Binary Authorization
iselegant
2
130
Namespace, Now and Then
tagomoris
0
170
分野に潜むツールの紹介
pojiro
1
330
自社開発した大規模言語モデルをどうプロダクションに乗せて運用していくか〜インフラ編〜
pfn
PRO
4
680
なぜクラウドサービスで Web コンソールを提供するのか
shuta13
4
1.3k
すぐに始めるAWSコスト削減。短期でできる改善策と長期的な運用負荷軽減への取り組み方を解説
ncdc
1
120
HolidayJp.jl を作りました
mrkn
0
110
疎通2024
sadnessojisan
4
490
Practical GenAI with Go - Elastic and Golang Sydney
adriancole
0
130
Building Static Websites with Sculpin
opdavies
0
1.4k
Discover Your Tailored Platform Strategy with Real-World Practice
hhiroshell
1
130
Dive Deep in Cloud Run: Automatic Base Image update
aoto
PRO
0
900
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
354
29k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.9k
The Invisible Customer
myddelton
119
13k
WebSockets: Embracing the real-time Web
robhawkes
59
7.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
38
9.1k
A better future with KSS
kneath
235
17k
Art, The Web, and Tiny UX
lynnandtonic
294
20k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
103
47k
What's new in Ruby 2.0
geeforr
340
31k
Typedesign – Prime Four
hannesfritz
38
2.3k
Build The Right Thing And Hit Your Dates
maggiecrowley
29
2.2k
GraphQLとの向き合い方2022年版
quramy
43
13k
Transcript
ΤωϧΪʔϓϥοτϑΥʔϚʔΛ ࢦ͢౦ژΨε։ൃνʔϜ͕ ࢝Ίͨ ,VCFSOFUFT ݄ ౦ژΨεגࣜձࣾ ਿࢁ༞հ $MPVE/BUJWF%BZT 4VNNFSϓϨΠϕϯτ!౦ژ
ࣗݾհ q໊લ ਿࢁ༞հ :VTVLF4VHJZBNB qॴଐ ౦ژΨεϦϏϯάઓུ෦σδλϧϓϩμΫτਪਐάϧʔϓ ΤϯδχΞϦϯάϚωʔδϟʔ ݉ 43&5FBN-FBE qܦྺ
4* "84 4" ݄ΑΓݱ৬ q͖ 4VJDBϖϯΪϯ 'BTIJPO @yus_sugiyama
ຊ͓͢Δ͜ͱ ౦ژΨεͷΑ͏ͳຊͷ౷తاۀ +5$ ͕ɺΫϥυωΠςΟϒͳ։ൃνʔϜΛ࡞ͬ ͓ͯ٬͞·Ձͷ্ʹऔΓΜͰ͍Δ༷ࢠʹ͍͓ͭͯ͠·͢🚀 தͷਓ͕ͨͪؤுͬͯΓ͖ͳ͕Βɺ+5$Ϟμϯͳ։ൃʹνϟϨϯδͯ͠ΔΜͩͳʂ ͱ͍͏͜ͱΛͬͯΒ͍͍ͨͰ͢💪 ·ͨɺൃੜͨ͠՝ʹ͍ͭͯγΣΞͰ͖ͨΒͱࢥ͍ͬͯ·͢ɻ ͜Ε͔Βಉ͡Α͏ͳڥͰ ,VCFSOFUFTʹνϟϨϯδ͍ͯ͜͠͏ͱ͞Ε͍ͯΔํʹͱͬͯ
͜ͷ͓͕গ͠ͰࢀߟʹͳΕ͍Ͱ͢ʂ
౦ژΨεͬͯʁ
ͷྺ࢙ͱࣈͰΈΔ౦ژΨεάϧʔϓ ʢ໌࣏ ɺ౦ژΨεʮຊࢿຊओٛͷʯͰ͋Δ໌࣏࣌ͷ࣮ۀՈɾौ ӫҰʹΑཱͬͯ͞Ε·ͨ͠ɻ ΤωϧΪʔधཁͷ૿େʹ͍ɺΫϦʔϯͰߴޮͳΤωϧΪʔͱͯ͠ɺɺຊͰॳ Ίͯ -/( ӷԽఱવΨε Λಋೖɻ ͓٬͞·ΞΧϯτ
ສ݅ ࢢΨεࠃൢചγΣΞˋࠃ/Pɻ খചిྗൢച݅ສ݅ ʹ౸ୡɺ৽ిྗ/Pͱͳ͍ͬͯ·͢ɻ ࣈͰݟΔ౦ژΨεάϧʔϓc౦ژΨε UPLZPHBTDPKQ ΨεɾిؾɾαʔϏεԆܖ ݄࣌ ݄࣌
Ոఉ༻ࣄۀ͕ஔ͔Ε͍ͯΔݱঢ় ݄ʹిྗɺ݄ʹࢢΨε͕খചશ໘ࣗ༝ԽͱͳΓɺՈఉ༻ͷʹ͓͍ͯɺΤωϧΪʔձࣾ ͓٬͞·͔ΒબΕΔଘࡏʹͳΓ·ͨ͠ɻͦͷ݁ՌɺσδλϧʹΑΔ͓٬͞·ͷ֫ಘɾ͓٬͞·ମݧͷ্͕ٸ ͱͳ͍ͬͯ·͢ɻ ݄ ిྗখചࣗ༝Խελʔτ ʲಛผߴѹʳ େنɾେنΦϑΟεϏϧ ిྗ ࢢ
Ψε ݄ ࢢΨεখചࣗ༝Խελʔτ ʲؒສNҎ্ʳ ݄݄ ࣗ༝ԽྖҬ֦େ ʲߴѹʳ தখنɾதখϏϧ ݄d݄ ࣗ༝ԽྖҬ֦େ ʲؒສNҎ্ʳ ݄ શ໘ࣗ༝Խ ʲѹʳ ݄ શ໘ࣗ༝Խ ʲؒສNҎ্ʳ ҰൠՈఉͳͲ
ιϑτΣΞͷྗͰ৽ͨͳ࣌ߤւ։࢝ʂ ϦΞϧ -/(λϯΧʔΛʂ σδλϧ ,VCFSOFUFTΛʂ ϦΞϧͷڧΈΛ׆͔ͯ͠ σδλϧΛڧԽ͢Δߤւ💪
ੈքٿಅԽͷ࣌ ɺٿԹஆԽͷਐߦΛ͢Δݴ༿ͱͯ͠ʮٿಅԽʯ͕৽ޠɾྲྀߦޠେʹϊ ϛωʔτ͞Ε·ͨ͠ɻಛʹԽੴ೩ྉͷ೩ম͕େ͖ͳӨڹΛ༩͓͑ͯΓɺੈքతʹͬͨͳ ͠ͷঢ়گͱͳ͍ͬͯ·͢ɻ࣋ଓՄೳͳࣾձͷ࣮ݱʹߩݙ͢ΔͨΊʹɺ(9 άϦʔϯτϥϯ εϑΥʔϝʔγϣϯ ͪΖΜɺ%9Ҿ͖ଓ͖ॏཁͳཁૉͰ͢ɻ %9ΤϯδχΞ͕ ߩݙͰ͖Δʂ
ʮ౦ژʯʮΨεʯͷΛ͑Δ ʮ౦ژʯͷΛ͑Δɻ ʮΨεʯͷΛ͑Δɻ ͦͯ͠ʮΤωϧΪʔϓϥοτϑΥʔϚʔʯΛࢦ͢ɻ ͦͷͨΊʹࢲͨͪ։ൃνʔϜؤு͍ͬͯ·͢ʂ
౦ژΨε։ൃνʔϜͱ
౦ژΨε։ൃνʔϜͱ ͓٬͞· ։ൃνʔϜྖҬ όοΫΤϯυ جװγεςϜ #'' ϑϩϯτΤϯυ Λ୲ʂ ౦ژΨε$9ਪਐ෦σδλϧϚʔέςΟϯάάϧʔϓ ࣌
ʹൃͨ͠ ࣗࣾϓϩμΫτΛ։ൃ͢ΔνʔϜͰ͢ɻ ݄࣌ͰϦϏϯάઓུ෦ʹॴଐ ओʹ NZ50,:0("4 ͱݺΕΔձһαΠτͷ։ൃΛߦ͍ͬͯ·͢ɻ
myTOKYOGAS ͬͯʁ NZ50,:0("4 ຖ݄ͷΨεిؾͷ༻ྔɾྉۚΛ֬ೝͰ͖Δ ొແྉͷձһαʔϏεͰ͢ɻ ΨεɾిؾΛܖ͢Δଟ͘ͷํʹ͝ར༻͍͍͓ͨͩͯΓ·͢ɻ
ͪͳΈʹ NZ50,:0("4 ݄ϦχϡʔΞϧΦʔϓϯ͠·ͨ͠ʂ ։ൃνʔϜ͕୲͢ΔϑϩϯτΤϯυϑϧϦϓϨΠε💪 👉ϦϓϨΠεޙͷٕज़ελοΫ /FYUKT3FBDU/FTU+4(SBQI2-3FEJT.POHP%#1PTUHSF42- PO"[VSF
ͩ͜Θ͍ͬͯΔͱ͜Ζ ࢲͨͪ։ൃνʔϜʮࣄۀ৫ʯʹൃ͠·ͨ͠ɻ άϧʔϓϚωʔδϟʔٴͷʮ͓٬͞·͕ٻΊΔʹॊೈ͔ ͭૉૣ͘ରԠͰ͖Δମ੍ʹ͢Δඞཁ͕͋Δʯͱ͍͏ࢥ͍͔Β ࢝·͍ͬͯ·͢ɻτοϓμϯͰઐͷ৫Λ্ཱͪ͛Δ έʔεଟ͍ͱࢥ͍·͕͢ɺզʑʮࣄۀͱͷڑײ͕͍ۙ ͜ͱʯʹͩ͜Θ͍ͬͯ·͢ɻ σδλϧઌਐاۀͷΑ͏ʹػೳׂ͢Δ΄ͲͷϦιʔε͕ͳ ͍தɺڑײͷ͍ۙ #J[Y%FWͰͷϓϩμΫτ։ൃ͕ԿΑ
Γॏཁͩͱߟ͍͑ͯ·͢ʂ ࢲ͕࡞Γ·ͨ͠ ٴ౦ژΨεੜ͑ൈ͖ͷ ਓࡐͰ͢ʂ
8IZ,VCFSOFUFT
Why Kubernetes? ͔͍͍͔ͬ͜Β NZ50,:0("4๊͕͑Δ՝ΛΫϦΞ͍ͨ͠ʂ
NZ50,:0("4ͷ՝ ྫɿܖΛՃ͍ͨ͠έʔε ݱࡏͷձһใΛऔಘ "1* "1*Λݺͼग़͢ ܖใΛՃ "1*Λݺͼग़͢
ձһجຊใΛมߋ "1*Λݺͼग़͢ ݸਓผܖใΛߋ৽ "1*Λݺͼग़͢ όοΫΤϯυ #'' "1* "1* "1* "1* "1*
NZ50,:0("4ͷ՝ ܖͱɾɾɾʁ ྫɿܖΛՃ͍ͨ͠έʔε ݱࡏͷձһใΛऔಘ "1* "1*Λݺͼग़͢ ܖใΛՃ "1*Λݺͼग़͢
ձһجຊใΛมߋ "1*Λݺͼग़͢ ݸਓผܖใΛߋ৽ "1*Λݺͼग़͢ όοΫΤϯυ #'' "1* "1* "1* "1* "1*
NZ50,:0("4ͷ՝ ྫɿܖΛՃ͍ͨ͠έʔε ݱࡏͷձһใΛऔಘ "1* "1*Λݺͼग़͢ ܖใΛՃ "1*Λݺͼग़͢
ձһجຊใΛมߋ "1*Λݺͼग़͢ ݸਓผܖใΛߋ৽ "1*Λݺͼग़͢ υϝΠϯ͕ཧ ͞Ε͍ͯͳ͍ όοΫΤϯυ #'' "1* "1* "1* "1* "1*
NZ50,:0("4ͷ՝ 'BU#'' 8&# .PCJMF %PNBJO-BZFS $POUSBDU 1PJOUT .FNCFST ɾ ɾ
ɾ 'PS8&# YͬͬͬY ܖՃ DSFBUF0OF "EEB$POUSBDU "EEB$POUSBDU $IBSHFT 1SPDFTT-BZFS 6* ɾ ɾ ɾ "EEB$POUSBDU 'PS.PCJMF"QQ ɾ ɾ ɾ ɾ ɾ ɾ 'PS&YUFSOBM47$ ܖՃ DSFBUF0OF #''Ͱٵऩʜ 'BU#''ʜ ιʔείʔυ ෦Ͱͷʜ ϦχϡʔΞϧ࣌Ͱ ͜Ε͕࠷దղͩͬͨ ݄ϦϦʔε͕ඞਢͩͬͨͨΊʜ
NZ50,:0("4ͷ՝ 'BU#'' 8&# .PCJMF %PNBJO-BZFS $POUSBDU 1PJOUT .FNCFST ɾ ɾ
ɾ 'PS8&# YͬͬͬY ܖՃ DSFBUF0OF "EEB$POUSBDU "EEB$POUSBDU $IBSHFT 1SPDFTT-BZFS 6* ɾ ɾ ɾ "EEB$POUSBDU 'PS.PCJMF"QQ ɾ ɾ ɾ ɾ ɾ ɾ 'PS&YUFSOBM47$ ܖՃ DSFBUF0OF ൃੜ͢Δ ֎෦͚ʹ ͍ͨ͜͜͠ͳ ͍͍ ܖʹӨڹग़ͪΌ͏
NZ50,:0("4ͷ՝ 'BU#'' 8&# .PCJMF %PNBJO-BZFS $POUSBDU 1PJOUT .FNCFST ɾ ɾ
ɾ 'PS8&# YͬͬͬY ܖՃ DSFBUF0OF "EEB$POUSBDU "EEB$POUSBDU $IBSHFT 1SPDFTT-BZFS 6* ɾ ɾ ɾ "EEB$POUSBDU 'PS.PCJMF"QQ ɾ ɾ ɾ ɾ ɾ ɾ 'PS&YUFSOBM47$ ܖՃ DSFBUF0OF ൃੜ͢Δ ʢ͋ͬ֎෦͚ʹ ͨͭ͠ ୭ʂʁ 8&#յͨ͠ͷʂ
NZ50,:0("4ͷ՝ 'BU#'' 8&# .PCJMF %PNBJO-BZFS $POUSBDU 1PJOUT .FNCFST ɾ ɾ
ɾ 'PS8&# YͬͬͬY ܖՃ DSFBUF0OF "EEB$POUSBDU "EEB$POUSBDU $IBSHFT 1SPDFTT-BZFS 6* ɾ ɾ ɾ "EEB$POUSBDU 'PS.PCJMF"QQ ɾ ɾ ɾ ɾ ɾ ɾ 'PS&YUFSOBM47$ ܖՃ DSFBUF0OF ൃੜ͢Δ Ϗοάόϯ मਖ਼ೖΓ·ͨ͠
͜ΕΑ͘ݟΔͭͩɾɾɾ ˞όοΫΤϯυ७ਮͳϦϑτ
͞Βʹਂ͋Δ 'BU#'' 8&# .PCJMF %PNBJO-BZFS $POUSBDU 1PJOUT .FNCFST ɾ ɾ
ɾ 'PS8&# YͬͬͬY ܖՃ DSFBUF0OF "EEB$POUSBDU "EEB$POUSBDU $IBSHFT 1SPDFTT-BZFS 6* ɾ ɾ ɾ "EEB$POUSBDU 'PS.PCJMF"QQ ɾ ɾ ɾ ɾ ɾ ɾ 'PS&YUFSOBM47$ ܖՃ DSFBUF0OF ਂ ؔ࿈γεςϜ
͞Βʹਂ͋Δ 'BU#'' 8&# .PCJMF %PNBJO-BZFS $POUSBDU 1PJOUT .FNCFST ɾ ɾ
ɾ 'PS8&# YͬͬͬY ܖՃ DSFBUF0OF "EEB$POUSBDU "EEB$POUSBDU $IBSHFT 1SPDFTT-BZFS 6* ɾ ɾ ɾ "EEB$POUSBDU 'PS.PCJMF"QQ ɾ ɾ ɾ ɾ ɾ ɾ 'PS&YUFSOBM47$ ܖՃ DSFBUF0OF ਂ ؔ࿈γεςϜ ྺ࢙͋ΔاۀͰϨΨγʔͳ γεςϜͱͷର͕ඞཁ
՝ΛΓӽ͍͑ͯͨ͘Ίʹ
։ൃνʔϜͷϛογϣϯ ։ൃνʔϜͷϛογϣϯʮ͓٬͞·ʹૉૣ͘ՁΛಧ͚Δʯ͜ͱɻ ݱʹ͓͚Δ͓٬͞·ͷཁৗʹมԽ͢ΔதɺγεςϜ͕มԽʹ͑ΒΕͳ͍ঢ়گʜ ˠϛογϣϯͷୡ͕ࠔʂΞδϟΠϧਅͷ %FW0QTʹࢸΕͳ͍ʜʂ
։ൃνʔϜͷϛογϣϯ ։ൃνʔϜͷϛογϣϯʮ͓٬͞·ʹૉૣ͘ՁΛಧ͚Δʯ͜ͱɻ ݱʹ͓͚Δ͓٬͞·ͷཁৗʹมԽ͢ΔதɺγεςϜ͕มԽʹ͑ΒΕͳ͍ঢ়گʜ ˠϛογϣϯͷୡ͕ࠔʂΞδϟΠϧਅͷ %FW0QTʹࢸΕͳ͍ʜʂ ϞϊϦεΛϚΠΫϩαʔϏεʹ ͍ͯ͘͜͠ͱΛܾҙʂ💪
։ൃνʔϜͷϛογϣϯ ։ൃνʔϜͷϛογϣϯʮ͓٬͞·ʹૉૣ͘ՁΛಧ͚Δʯ͜ͱɻ ݱʹ͓͚Δ͓٬͞·ͷཁৗʹมԽ͢ΔதɺγεςϜ͕มԽʹ͑ΒΕͳ͍ঢ়گʜ ˠϛογϣϯͷୡ͕ࠔʂΞδϟΠϧਅͷ %FW0QTʹࢸΕͳ͍ʜʂ ϞϊϦεΛϚΠΫϩαʔϏεʹ ͍ͯ͘͜͠ͱΛܾҙʂ💪 ͜Ε·ͨखஈ తͰͳ͍
ࠓɺޫͷઓ͕࢜ٻΊΒΕ͍ͯΔ 'BU#'' 8&# .PCJMF %PNBJO-BZFS $POUSBDU 1PJOUT .FNCFST ɾ ɾ
ɾ 'PS8&# YͬͬͬY ܖՃ DSFBUF0OF "EEB$POUSBDU "EEB$POUSBDU $IBSHFT 1SPDFTT-BZFS 6* ɾ ɾ ɾ "EEB$POUSBDU 'PS.PCJMF"QQ ɾ ɾ ɾ ɾ ɾ ɾ 'PS&YUFSOBM47$ ܖՃ DSFBUF0OF ਂ ؔ࿈γεςϜ
ড়Խ ϦΞʔΩςΫνϟޙͷΠϝʔδ 8&# .PCJMF "QQT .JDSP 4FSWJDFT ҰྫͰ͢ $POUSBDU 1PJOUT
.FNCFST ɾ ɾ ɾ #''GPS8&# "EEB$POUSBDU $IBSHFT ɾ ɾ ɾ "EEB$POUSBDU ɾ ɾ ɾ #''GPS&YUFSOBM 4FSWJDFT "EEB$POUSBDU ɾ ɾ ɾ #''GPS.PCJMF "QQT ܖՃ DSFBUF0OF ܖՃ DSFBUF0OF /FX 4FSWJDF ؔ࿈γεςϜ܊ %PNBJO-BZFS υϝΠϯΛ ɾཧ
ϦΞʔΩςΫνϟޙͷΠϝʔδ 8&# .PCJMF "QQT .JDSP 4FSWJDFT ҰྫͰ͢ $POUSBDU 1PJOUT .FNCFST
ɾ ɾ ɾ #''GPS8&# "EEB$POUSBDU $IBSHFT ɾ ɾ ɾ "EEB$POUSBDU ɾ ɾ ɾ #''GPS&YUFSOBM 4FSWJDFT "EEB$POUSBDU ɾ ɾ ɾ #''GPS.PCJMF "QQT ܖՃ DSFBUF0OF ܖՃ DSFBUF0OF /FX 4FSWJDF ؔ࿈γεςϜ܊ %PNBJO-BZFS ,VCFSOFUFT ͷ࠾༻ʂ
ϦΞʔΩςΫνϟޙͷΠϝʔδ 8&# .PCJMF "QQT .JDSP 4FSWJDFT ҰྫͰ͢ $POUSBDU 1PJOUT .FNCFST
ɾ ɾ ɾ #''GPS8&# "EEB$POUSBDU $IBSHFT ɾ ɾ ɾ "EEB$POUSBDU ɾ ɾ ɾ #''GPS&YUFSOBM 4FSWJDFT "EEB$POUSBDU ɾ ɾ ɾ #''GPS.PCJMF "QQT ܖՃ DSFBUF0OF ܖՃ DSFBUF0OF /FX 4FSWJDF ؔ࿈γεςϜ܊ %PNBJO-BZFS ৽نαʔϏεʹ ׆༻Ͱ͖ΔΑ͏ʹ💪 ˞#$͚ͷίϯςΩετΛҙࣝ
ϦΞʔΩςΫνϟޙͷΠϝʔδ 8&# .PCJMF "QQT .JDSP 4FSWJDFT ҰྫͰ͢ $POUSBDU 1PJOUT .FNCFST
ɾ ɾ ɾ #''GPS8&# "EEB$POUSBDU $IBSHFT ɾ ɾ ɾ "EEB$POUSBDU ɾ ɾ ɾ #''GPS&YUFSOBM 4FSWJDFT "EEB$POUSBDU ɾ ɾ ɾ #''GPS.PCJMF "QQT ܖՃ DSFBUF0OF ܖՃ DSFBUF0OF /FX 4FSWJDF ؔ࿈γεςϜ܊ %PNBJO-BZFS มԽʹڧ͓͘٬͞·ʹ ૉૣ͘ՁΛಧ͚ΒΕΔ ΞʔΩςΫνϟ
"OTXFS8IZ,VCFSOFUFT ϚΠΫϩαʔϏεΛΓ͍ͨ ,VCFSOFUFTΛબʂͷલʹ લड़ͨ͠՝ղܾͷखஈͱͯ͠ϚΠΫϩαʔϏεΛબͱ͍͏ͷ͕͋Γ·͢ɻ ˠϚΠΫϩαʔϏεʹ ,VCFSOFUFT૬ੑൈ܈🤝 ίϯςφͷεέδϡʔϦϯάɾηϧϑώʔϦϯάʹΑΔ҆ఆͨ͠αʔϏεఏڙͷ࣮ݱ ࣗಈԽ͞ΕͨϩʔϧΞτͰͷߴසͳαʔϏεߋ৽ͷରԠ
நԽ͞ΕͨΫϥελʔʹΑΔϚγϯΛҙࣝ͠ͳ͍ίϯςφͷσϓϩΠ ϚχϑΣετͰͷཧʹΑΔ౷੍͞Εͨӡ༻ *B$(JU0QT BOENPSF
νʔϜߏॏཁ ࢲͨͪܦݧऀ࠾༻ͷΤϯδχΞͨͪυϝΠϯ ʹؔ͢Δ͕ࣝෆ͍ͯ͠·͢ɻ ͦͷͨΊάϧʔϓձࣾͰ͋Δ౦ژΨε Jωοτ ͷํʹྗΛିͯ͠Β͍͍ͨʂ ˠNZ50,:0("4͓ΑͼυϝΠϯ༗ࣝऀΛν ʔϜʹΈೖΕͯ͘ΕΔॊೈ͕͋͞Γ·ͨ͠😭 υϝΠϯΛཧ͠ͳ͕Β։ൃਪਐ💪 .JDSP
4FSWJDFT ҰྫͰ͢ $POUSBDU 1PJOUT .FNCFST ɾ ɾ ɾ $IBSHFT ؔ࿈γεςϜ܊ %PNBJO-BZFS
࣮ࡍͲΜͳײ͡ͳͷʁ
શମߏਤ AWS Cloud VPC ALBC Istio-Ingress Gateway Virtual Service EKS
Karpenter TGW DX Route 53 ACM GitHub Actions
"84"NB[PO&,4 νʔϜͷଟ͘ͷΤϯδχΞ͕ "84ʹ׳Ε͠ΜͰ͍ͨ͜ͱ͔Β "84Λ࠾༻ɻ "84͕ఏڙ͢ΔίϯςφΦʔέετϨʔλʔ "NB[PO&$4͋Γ·͕͢ɺ(JU0QTͰσ ϓϩΠͷΈΛγϯϓϧʹ͍ͨ͠ͱ͍͏Ϟνϕʔγϣϯ͕ڧ͘ɺ·ͨ *TUJPͳͲͷ๛ ͳΤίγεςϜ܈͔ΒɺνʔϜʹ߹ٕͬͨज़Λબఆ͍ͯ͘͜͠ͱ͕ग़དྷΔͷେ͖͍ͱ அͯ͠
&,4࠾༻Λܾஅ͠·ͨ͠ɻ ·ͨɺޙड़ͷ ,BSQFOUFSY(SBWJUPOΛ࠾༻͔ͨͬͨ͠ͱ͍͏ͷ͋Γ·͢ɻ
"SHP$% (JU0QT લϖʔδͰ৮Εͨͱ͓Γɺ(JU0QTͷ࠾༻ܾΊ͓ͯΓɺͦͷதͰΑΓଟ͘ͷಋೖࣄྫ ͱ࣮͕͋Δ "SHP$%Λબ͠·ͨ͠ɻಛʹ "SHP$%6* 43&νʔϜͰͳ͍ "QQ %FWFMPQFSTʹͱͬͯײతͰ͔Γ͘͢ɺརศੑ͕ߴ͍ͱड͚ࢭΊ͍ͯ·͢ɻ ·ͨɺ,VTUPNJ[FͱΈ߹ΘͤΔ͜ͱͰɺෳڥͷσϓϩΠ
EFWFMPQ TUBHJOH QSPEVDUJPO ʹରԠͰ͖Δ͜ͱେ͖͍Ͱ͢ɻݱࡏɺঝೝϑϩʔΛೖΕΔͨΊʹ "SHP $%*NBHF6QEBUFSಋೖΛݕূதʜ App Repo Manifest Repo
*TUJP"84-PBE#BMBODFS$POUSPMMFS Ϛωʔδυ ,VCFSOFUFTαʔϏεΛར༻͢Δʹ͋ͨͬͯݕ౼͕ඞཁͱͳΔ *OHSFTTʹ "84-PBE#BMBODFS$POUSPMMFSΛ࠾༻ɻ͞Βʹ /BNFTQBDFΛ·͍ͨͩϧʔςΟϯά Λ࣮ݱ͢ΔͨΊɺ·ͨαʔϏεؒ௨৴ͷൃੜݟਾ͑ͨαʔϏεϝογϡͷԸܙΛड͚Δ ͨΊʹ *TUJPૣʑʹಋೖ͠·ͨ͠ɻ ˞ຊ
(BUFXBZ"1*͕ཉ͍͠ͷͰ͕͢ɺ71$-BUUJDF༻్͕ҧ͓ͬͯΓʜকདྷతʹ *TUJP͕αϙʔτ͢Δ (BUFXBZ"1*ʹҠߦ༧ఆɻ *TUJP,VCFSOFUFT(BUFXBZ"1*
*TUJP"84-PBE#BMBODFS$POUSPMMFSߏ 7JSUVBM4FSWJDF͔Β֤ϚΠΫϩαʔϏεͷ 4FSWJDFʹϧʔςΟϯά͍ͤͯ͞·͢ɻ (BUFXBZΛར༻ͨ͠ 4IBSFEHBUFXBZͷύλʔϯΛ࠾༻ɻ
5FSSBGPSN ݩʑ NZ50,:0("4ϑϩϯτΤϯυͰ׆༻͓ͯ͠ΓɺҾ͖ଓ͖࠾༻ɻϑϩϯτΤϯυ "[VSFͰ͕ͨ͠ɺࠓճ "84ͱ͍͏͜ͱ͋ΓɺͲͪΒʹద༻Մೳ͔ͭ %BUBEPHͳͲͷࢹπʔϧఆٛͰ͖ΔڧΈΛ׆͔͍ͨ͠ͱஅ͠·ͨ͠ɻ ,VCFSOFUFT "SHP$%
(JU0QT "84 5FSSBGPSN ͷೋஈߏ͑Ͱߏங͍ͯ͠·͢ɻ
ΤωϧΪʔاۀͱͯ͠େʹ͍ͨ͜͠ͱ
ΤωϧΪʔޮͷྑ͍ϚγϯΛબ ΤωϧΪʔޮͷྑ͍ϚγϯΛબ͢Δ͜ͱͰফඅిྗͷݮʹߩݙ͍ͨ͠ʂ "84(SBWJUPO ʮಉͷ &$Πϯελϯεͱൺֱͯ͠ɺಉ͡ύϑΥʔϚϯεͰ࠷େ গͳ͍ΤωϧΪʔΛ༻ʯ͢Δ͜ͱͰೋࢎԽૉഉग़ྔͷݮʹߩݙՄೳɻ ˠϚΠΫϩαʔϏεΛߏங͢ΔαʔϏεͷݴޠ (PMBOHΛར༻͓ͯ͠ΓɺΫϩείϯύ ΠϧͰ
"3.ΠϯελϯεΛબՄೳʹʂ "84(SBWJUPO &$ʹ࠷ྑͷྉۚͱύϑΥʔϚϯεΛఏڙc"84 BNB[PODPN
,BSQFOUFSʹΑΔϫʔΧʔϊʔυͷཧ Ϝμͷͳ͍Πϯελϯεར༻Ͱίετ͚ͩͰͳ͘ফඅిྗͷݮʹߩݙ͍ͨ͠ʂ ࠷ॳʹߏங͢ΔαʔϏεෛՙ͕ಡΈͮΒ͍ͨΊɺϊʔυͷબఆʹ໎͍͕ʜ͞Βʹࠓޙͷ ిྗɾΨεͷαʔϏεͨͪ͞ΒʹಡΈͮΒ͍ͷʹͳΔ͜ͱ͕ఆ͞Ε͍ͯ·ͨ͠ɻ ,BSQFOUFS ͋Β͔͡Ίར༻͢ΔൣғͷϊʔυछผΛఆ͓ٛͯ͘͜͠ͱͰߴʹϊʔυ ͕ىಈɺϓϩϏδϣχϯά͞ΕΔͨΊɺ·͞ʹئͬͨΓͳιϦϡʔγϣϯͰͨ͠ɻଟͷ ϊʔυάϧʔϓఆٛΛهड़͠ͳͯ͘ྑ͍ͷ͕خ͠Έʜʂ ˞4MBDLࣾಋೖͨ͠ͱ "84#MPHʹͯެ։͞Ε͍ͯ·͢
.": )PX4MBDLBEPQUFE,BSQFOUFSUPJODSFBTF0QFSBUJPOBMBOE$PTU&GGJDJFODZc$POUBJOFST BNB[PODPN
(SBWJUPOY,BSQFOUFS લड़ͨ͠Α͏ʹ ΤωϧΪʔޮͷྑ͍Ϛγϯ Ϝμͷͳ͍Πϯελϯεར༻ ΛΈ߹ΘͤΔ͜ͱͰɺ౦ژΨε͕ܝ͛Δ ʮຊͷΤωϧΪʔاۀͱͯ͠ॳΊͯͷ $0ωοτɾθϩͷઓએݴʯʹΤϯδ χΞͱͯ͠ߩݙ͠·͢💪
༨ஊ ॳӡ༻ʹ͋ͨͬͯϝϯόʔগͳ͍͜ ͱ͔Β 'BSHBUFͷબఆߟ͍͑ͯ·ͨ͠ɻ ͔͠͠ɺ࣮ίετׂ͕ߴʹͳΓ͕ͪͳ͜ͱ ɺ࠷৽ੈͷΠϯελϯεׂ͕ΓͯΒΕ ͳ͍ ίϯτϩʔϧͰ͖ͳ͍ ͜ͱ͔ΒɺϚω ʔδυϊʔυάϧʔϓΛબ͢Δ͔͠ͳ͍
ʜͱߟ͍͑ͯͨதͰͷ ,BSQFOUFSຊʹ ͋Γ͕͍ͨଘࡏͰͨ͠ʂ ྑ͍ײ͡ʹϓϩϏδϣχϯάʂ
͜ΕͰզʑΫϥυωΠςΟϒʁ
ΫϥυωΠςΟϒ Ϋϥυɾ044ͬͯ·͢ʁ $MPVE/BUJWF$PNQVUJOH'PVOEBUJPO $/$' ओಋͷ 044Λͬͯ։ൃͯ͠Δ͜ͱʁ "84 (PPHMF$MPVE "[VSFΛར༻͍ͯ͠Δ͜ͱʁ
ΫϥυωΠςΟϒ Ϋϥυɾ044ͬͯ·͢ʁ $MPVE/BUJWF$PNQVUJOH'PVOEBUJPO $/$' ओಋͷ 044Λͬͯ։ൃͯ͠Δ͜ͱʁ "84 (PPHMF$MPVE "[VSFΛར༻͍ͯ͠Δ͜ͱʁ ͦΕͦ͏͔͠Εͳ͍ɾɾɾ
ͨͩ͠ʮωΠςΟϒʯͳͷͰʮͨΓલͷΑ͏ʹ͍ͬͯΔʯঢ়ଶͰ͋Δͱཧղɻ ͨΓલʹ͍͜ͳ͠ɺࣄۀ՝ΛΫϦΞ͍ͯ͘͜͠ͱ͕ॏཁͰ͋Δͱߟ͍͑ͯ·͢ɻ
ߤߦॱ෩ຬൕɾɾɾʁ
࣮ࡍͬͯΈͯͷॴײ ࣮ࡍʹߏஙΛ͍ͯ͘͠தͰ͠͞ͱπϥϛൃੜɻ Ͳ͜·Ͱ͕ ,VCFSOFUFTͳͷ͔ "84ͳͷ͔ʜ&,4Λ͍ͬͯΔͷ͔ "84Λ͍ͬͯΔ ͷ͔͔Βͳ͘ͳΔ FH*34"*". 4FSWJDF"DDPVOU3#"$͕ʜ
&,4ϓϨʔϯʹ͍ۙͷ͕ചΓ ͩͱࢥ͍ͬͯΔɾݸਓతݟղͰ͢ ͷͨΊɺϝτϦΫεαʔ όʔσϑΥϧτͰಋೖ͞Ε͍ͯͳ͍ɻ)1"͕ػೳ͠ͳͯ͘ؾ͍ͨʜ ʮ(,&ʙʯͱಉ྅͔ΒΤϐιʔυΛฉ͘ͱʮͳΔ΄Ͳʯͱࢥ͏ͷɻ ࠷ۙΫϥελʔ "1*ͷೝূཧ͕ $POGJH.BQΦϯϦʔͰͳ͘ͳͬͨͷϋοϐʔ ˠΫϥελʔΛ (JU)VC"DUJPOTͷϩʔϧͰ࡞͢Δͱ (6*͔ΒΞΫηεෆՄͩͬͨ BOENPSF
͍͞͝ʹ
͍͞͝ʹ ,VCFSOFUFTࠓͰपʂ🎉🎂 զʑେ͍ʹελʔτ͕ग़ΕͨνʔϜɾɾɾ ͔͠͠ࣄΛ࢝ΊΔͷʹ͗͢Δ͜ͱͳ͍ͣʂ ͜ͷߤւΛޙչʹม͑ͳ͍ͨΊʹɺશલਐ🏃 +5$Ͱ͋ͬͯɺগͣͭ͠ΫϥυωΠςΟϒͳ৫ɾɾɾʂ ͦͯ͜͠ͷΑ͏ͳίϛϡχςΟʹগ͠ͰؐݩͰ͖ͨΒͱࢥ͍ͬͯ·͢💪
Thank you!