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.2k
エネルギープラットフォーマーを目指す東京ガス内製開発チームが始めたKubernetes
CloudNative Days Summer 2024 プレイベント@東京で発表した資料です。
Yusuke Sugiyama
May 22, 2024
Tweet
Share
More Decks by Yusuke Sugiyama
See All by Yusuke Sugiyama
今はまだ小さい東京ガス内製開発チームが、これからもKubernetesと共に歩み続けるために
yussugi
3
1k
140年の歴史あるエンタープライズ企業の内製化×マイクロサービス化への航海
yussugi
2
7.1k
エンジニアゼロからの挑戦〜ビジネス価値を創造するための取り組みを振り返る〜
yussugi
1
320
AmazonEKSやっていくことを宣言して自らを追い込むLT
yussugi
2
1.4k
Other Decks in Technology
See All in Technology
OCI Success Journey OCIの何が評価されてる?疑問に答える事例セミナー(2025年2月実施)
oracle4engineer
PRO
2
150
クラウド食堂とは?
hiyanger
0
110
Snowflakeの開発・運用コストをApache Icebergで効率化しよう!~機能と活用例のご紹介~
sagara
1
450
NFV基盤のOpenStack更新 ~9世代バージョンアップへの挑戦~
vtj
0
350
Visualize, Visualize, Visualize and rclone
tomoaki0705
9
83k
Share my, our lessons from the road to re:Invent
naospon
0
140
1行のコードから社会課題の解決へ: EMの探究、事業・技術・組織を紡ぐ実践知 / EM Conf 2025
9ma3r
11
3.8k
【Findy】「正しく」失敗できる チームの作り方 〜リアルな事例から紐解く失敗を恐れない組織とは〜 / A team that can fail correctly by findy
i35_267
5
880
AIエージェント入門
minorun365
PRO
31
18k
Exadata Database Service on Cloud@Customer セキュリティ、ネットワーク、および管理について
oracle4engineer
PRO
2
1.5k
【詳説】コンテンツ配信 システムの複数機能 基盤への拡張
hatena
0
240
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
180
Featured
See All Featured
Building Adaptive Systems
keathley
40
2.4k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
A designer walks into a library…
pauljervisheath
205
24k
Adopting Sorbet at Scale
ufuk
74
9.2k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
Designing for humans not robots
tammielis
250
25k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.3k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
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!