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
510
Tokyo Gas KubeCon EU 2025 Recap@Kubernetes Meetup Tokyo #70
yussugi
0
360
東京ガスが CNCF End User Supporter に参加した理由とその影響
yussugi
0
190
今はまだ小さい東京ガス内製開発チームが、これからもKubernetesと共に歩み続けるために
yussugi
3
1.8k
140年の歴史あるエンタープライズ企業の内製化×マイクロサービス化への航海
yussugi
2
10k
エンジニアゼロからの挑戦〜ビジネス価値を創造するための取り組みを振り返る〜
yussugi
1
590
AmazonEKSやっていくことを宣言して自らを追い込むLT
yussugi
2
1.7k
Other Decks in Technology
See All in Technology
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
20k
デザインとエンジニアリングの架け橋を目指す OPTiMのデザインシステム「nucleus」の軌跡と広げ方
optim
0
100
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.2k
様々なファイルシステム
sat
PRO
0
240
CNCFの視点で捉えるPlatform Engineering - 最新動向と展望 / Platform Engineering from the CNCF Perspective
hhiroshell
0
140
JSConf JPのwebsiteをGatsbyからNext.jsに移行した話 - Next.jsの多言語静的サイトと課題
leko
2
180
Building a cloud native business on open source
lizrice
0
170
物体検出モデルでシイタケの収穫時期を自動判定してみた。 #devio2025
lamaglama39
0
280
Copilot Studio ハンズオン - 生成オーケストレーションモード
tomoyasasakimskk
0
220
現場の壁を乗り越えて、 「計装注入」が拓く オブザーバビリティ / Beyond the Field Barriers: Instrumentation Injection and the Future of Observability
aoto
PRO
1
320
AIエージェント入門 〜基礎からMCP・A2Aまで〜
shukob
1
170
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.8k
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
A Tale of Four Properties
chriscoyier
161
23k
How STYLIGHT went responsive
nonsquared
100
5.8k
GitHub's CSS Performance
jonrohan
1032
470k
The Pragmatic Product Professional
lauravandoore
36
7k
BBQ
matthewcrist
89
9.9k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.5k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Making Projects Easy
brettharned
120
6.4k
Code Review Best Practice
trishagee
72
19k
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!