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
1.4k
エネルギープラットフォーマーを目指す東京ガス内製開発チームが始めたKubernetes
CloudNative Days Summer 2024 プレイベント@東京で発表した資料です。
Yusuke Sugiyama
May 22, 2024
Tweet
Share
More Decks by Yusuke Sugiyama
See All by Yusuke Sugiyama
Tokyo Gas KubeCon Japan 2025 Recap
yussugi
1
380
Tokyo Gas KubeCon EU 2025 Recap@Kubernetes Meetup Tokyo #70
yussugi
0
330
東京ガスが CNCF End User Supporter に参加した理由とその影響
yussugi
0
180
今はまだ小さい東京ガス内製開発チームが、これからもKubernetesと共に歩み続けるために
yussugi
3
1.6k
140年の歴史あるエンタープライズ企業の内製化×マイクロサービス化への航海
yussugi
2
9.4k
エンジニアゼロからの挑戦〜ビジネス価値を創造するための取り組みを振り返る〜
yussugi
1
550
AmazonEKSやっていくことを宣言して自らを追い込むLT
yussugi
2
1.7k
Other Decks in Technology
See All in Technology
ユーザー課題を愛し抜く――AI時代のPdM価値
kakehashi
PRO
1
130
自治体職員がガバクラの AWS 閉域ネットワークを理解するのにやって良かった個人検証環境
takeda_h
0
270
AIに目を奪われすぎて、周りの困っている人間が見えなくなっていませんか?
cap120
1
700
プロダクトエンジニアリングで開発の楽しさを拡張する話
barometrica
0
210
リモートワークで心掛けていること 〜AI活用編〜
naoki85
0
190
プロジェクトマネジメントは不確実性との対話だ
hisashiwatanabe
0
130
LLM 機能を支える Langfuse / ClickHouse のサーバレス化
yuu26
9
2.6k
LTに影響を受けてテンプレリポジトリを作った話
hol1kgmg
0
380
Kiro と Q Dev で 同じゲームを作らせてみた
r3_yamauchi
PRO
1
120
事業特性から逆算したインフラ設計
upsider_tech
0
220
Amazon GuardDuty での脅威検出:脅威検出の実例から学ぶ
kintotechdev
0
130
Mackerel in さくらのクラウド
cubicdaiya
1
130
Featured
See All Featured
A designer walks into a library…
pauljervisheath
207
24k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
How GitHub (no longer) Works
holman
314
140k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
The Cost Of JavaScript in 2023
addyosmani
53
8.8k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Making Projects Easy
brettharned
117
6.3k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
The Pragmatic Product Professional
lauravandoore
36
6.8k
How STYLIGHT went responsive
nonsquared
100
5.7k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
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!