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
CircleCIを活用して AWSへの継続的デリバリーを 実践する
Search
coconala_engineer
March 27, 2024
Programming
1
310
CircleCIを活用して AWSへの継続的デリバリーを 実践する
https://trident-qa.connpass.com/event/310009/
のイベントの登壇資料です。
coconala_engineer
March 27, 2024
Tweet
Share
More Decks by coconala_engineer
See All by coconala_engineer
事業会社におけるセキュリティ・ ITガバナンス強化への道のり
coconala_engineer
0
9
徹底解説!Insight SQL Testingを活用したデータベース移行の実践ポイント
coconala_engineer
0
110
人材・モチベーション・情報システムの融合とエンゲージメント
coconala_engineer
0
83
Macインスタンスを活用したアプリE2Eテストの実現
coconala_engineer
1
310
スケーラビリティの課題解決に向けたココナラのデータベース移行戦略
coconala_engineer
1
570
IPO準備企業必見!ココナラから学ぶ上場前後でのセキュリティ改革プロセス
coconala_engineer
0
140
IaC運用を続けて出会うイシューたち
coconala_engineer
0
110
CDN+αの利活用でサイトの高速化を実現してみた
coconala_engineer
0
170
SIEMを用いて、セキュリティログ分析の可視化と分析を実現し、PDCAサイクルを回してみた
coconala_engineer
0
570
Other Decks in Programming
See All in Programming
企業向け生成AIアプリの 開発から得られた知見
takaakikakei
0
310
Folding Cheat Sheet #7
philipschwarz
PRO
0
150
I/O Extended Android in Korea 2024 ~ Whats new in Android development tools
pluu
0
250
유연한 Composable 설계
l2hyunwoo
0
380
最古の関数型言語「Lisp」ことはじめ / lisp_in_kamiyama
uhooi
1
190
さきがけから振り返るアーキテクチャ刷新 / Reflecting on the Architectural Renewal from the Vanguard
nrslib
2
770
Jetpack for KMP
fornewid
1
290
Trial
cairolibrary720
1
130
Exploring the Gradually Lost Technical Skills in the Cloud Native Era
hwchiu
2
3.9k
AHC035解説
terryu16
0
710
なぜ宣言的 UI は壊れにくいのか / Why declarative UI is less fragile
uenitty
29
13k
Play Billing Library 7.0.0 変更点まとめ@potatotips#88
kako351
0
160
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.3k
Large-scale JavaScript Application Architecture
addyosmani
506
110k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Adopting Sorbet at Scale
ufuk
71
8.8k
Web Components: a chance to create the future
zenorocha
307
41k
Designing the Hi-DPI Web
ddemaree
276
34k
No one is an island. Learnings from fostering a developers community.
thoeni
17
2.8k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
17
1.5k
Automating Front-end Workflow
addyosmani
1362
200k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
16
1.6k
Building Your Own Lightsaber
phodgson
101
5.9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
24
1.8k
Transcript
Copyright coconala Inc. All Rights Reserved. CircleCIΛ׆༻ͯ͠ AWSͷܧଓతσϦόϦʔΛ ࣮ફ͢Δ ΠϯϑϥɾSREνʔϜ
TeamManager ٢ݟ
Copyright coconala Inc. All Rights Reserved. 2 ࣗݾհ ٢ݟʢΑ͔͠Θ ͨ͘Έʣ
• ੜ·Ε ੩Ԭ → จܥେֶ͔ΒΤϯδχΞ • ܦྺ ۚ༥SIer → ελʔτΞοϓ → ίίφϥ • झຯ ϥΠϒɾΠϕϯτʹߦ͘
Vision Ϗδϣϯɺϛογϣϯʹج͍ͮͨࣄۀΛల։ νʔϜ͕ߏங͍ͨ͠ͱࢥ ͏࠷ྑͳະདྷͷΠϝʔδ νʔϜ͕ߏங͍ͨ͠ͱࢥ ͏࠷ྑͳະདྷͷΠϝʔδ Mission νʔϜ͕࣮ݱ͍ͨ͠த৺ తͳతʢଘࡏҙٛʣ ҰਓͻͱΓ͕ʮࣗͷετʔϦʔʯΛੜ͖͍ͯ͘ੈͷதΛ࡞Δ
ݸਓͷࣝɾεΩϧɾܦݧΛՄࢹԽ͠ɺ ඞཁͱ͢Δͯ͢ͷਓʹ݁ͼ͚ͭɺ ݸਓΛΤϯύϫʔϝϯτ͢ΔϓϥοτϑΥʔϜΛఏڙ͢Δ ࣝɾεΩϧɾܦݧͷϚονϯάαʔϏεΛల։ ࣄۀ༰ 3
ϚονϯάαʔϏε ֓ཁ 4
Copyright coconala Inc. All Rights Reserved. 5 ΞδΣϯμ • CI/CDͱ
◦ ͳͥඞཁͳͷ͔ • CircleCIͷಛ • ίίφϥͰͷར׆༻ ◦ ͪΐͬͱͨ͠ςΫχοΫ
Copyright coconala Inc. All Rights Reserved. 6 CI/CDͱ
Copyright coconala Inc. All Rights Reserved. 7 CI/CDͱ • ݫີʹCIͱCDผͰ͋Δ͕ɺͻͱ͘͘ΓͰઆ໌͞ΕΔ͜ͱ͕ଟ͍
◦ CIɿܧଓతΠϯςάϨʔγϣϯ ◦ CDɿܧଓతσϦόϦʔ
Copyright coconala Inc. All Rights Reserved. 8 CI/CDͱ • ݫີʹCIͱCDผͰ͋Δ͕ɺͻͱ͘͘ΓͰઆ໌͞ΕΔ͜ͱ͕ଟ͍
◦ CIɿܧଓతΠϯςάϨʔγϣϯ ◦ CDɿܧଓతσϦόϦʔ • ͷͬ͘͘͢͟͝ΓҰݴઆ໌͢Δͱ ◦ CIɿࣗಈςετ ◦ CDɿࣗಈσϓϩΠ ɹ→ Ұ࿈ͷྲྀΕʢύΠϓϥΠϯʣ͕͋Δ
Copyright coconala Inc. All Rights Reserved. 9 ͳͥCI/CDύΠϓϥΠϯ͕ ඞཁͳͷ͔
Copyright coconala Inc. All Rights Reserved. 10 ͳͥCI/CDύΠϓϥΠϯΛΉͷ͔
Copyright coconala Inc. All Rights Reserved. 11 ͳͥCI/CDύΠϓϥΠϯΛΉͷ͔ ɾϑΥʔϚοτਖ਼͍͠ʁ ɾςετ͞Ε͍ͯΔʁ
ɾϏϧυͰ͖Δʁ
Copyright coconala Inc. All Rights Reserved. 12 ͳͥCI/CDύΠϓϥΠϯΛΉͷ͔ ɾϑΥʔϚοτਖ਼͍͠ʁ ɾςετ͞Ε͍ͯΔʁ
ɾϏϧυͰ͖Δʁ ։ൃऀϨϏϡΞʔ ෛ୲͕େ͖͍
Copyright coconala Inc. All Rights Reserved. 13 ͳͥCI/CDύΠϓϥΠϯΛΉͷ͔ push͢Δ͚ͩͰࣗಈ࣮ߦ →
݁ՌΛ֬ೝ͢Δ͚ͩͰ OK
Copyright coconala Inc. All Rights Reserved. 14 ͳͥCI/CDύΠϓϥΠϯΛΉͷ͔ • ίʔυ࣭ͷ্
◦ खಈ࡞ۀΛ͕શͯࣗಈԽ͢Δ͜ͱʹΑΔώϡʔϚϯϦεΫɾίετͷݮ ◦ ςετϓϩηεΛ௨͢͜ͱʹΑΔόάͷൃݟ • ϦϦʔεαΠΫϧͷߴԽ ◦ ϝΠϯϒϥϯνͷঢ়ଶͰରڥʹϦϦʔε͞ΕΔ
Copyright coconala Inc. All Rights Reserved. 15 ͳͥCI/CDύΠϓϥΠϯΛΉͷ͔ • ίʔυ࣭ͷ্
◦ खಈ࡞ۀΛ͕શͯࣗಈԽ͢Δ͜ͱʹΑΔώϡʔϚϯϦεΫɾίετͷݮ ◦ ςετϓϩηεΛ௨͢͜ͱʹΑΔόάͷൃݟ • ϦϦʔεαΠΫϧͷߴԽ ◦ ϝΠϯϒϥϯνͷঢ়ଶͰରڥʹϦϦʔε͞ΕΔ ɹ ։ൃੜ࢈ੑͷ্
Copyright coconala Inc. All Rights Reserved. 16 CircleCIͱ
Copyright coconala Inc. All Rights Reserved. 17 ଟछଟ༷ͳCI/CDπʔϧ
Copyright coconala Inc. All Rights Reserved. 18 CircleCIͰओʹͰ͖Δ͜ͱ • ੩తղੳʢLintʣ
• ୯ମςετʢTestʣ • ϦιʔεϏϧυʢBuildʣ • ίʔυͷσϓϩΠʢReleaseʣ etc…
Copyright coconala Inc. All Rights Reserved. 19 CircleCIͷಛ 1. ΫϥυαʔϏεͷͨΊ࣮ߦڥΛཧ͢Δඞཁ͕ͳ͍
• ࣗಈϏϧυɺςετΛ࣮ߦ͢ΔͨΊʹαʔόΛ༻ҙ͢Δඞཁͳ͍ ◦ ઃఆϑΝΠϧΛهड़͢Εɺ࣮ߦ͞ΕΔΑ͏ʹͳΔ • ͨͩ͠ηΩϡϦςΟͷ߹্ɺΫϥυNGͱ͍͏߹ ◦ Self Hosted Runner·ͨEnterpriseϓϥϯͰରԠՄೳ 1. ͞·͟·ͳVCSʢόʔδϣϯίϯτϩʔϧγεςϜʣʹରԠ • GithubɺGitLabɺBitbucket • ྫ͑GithubActionsΛ͍͍ͨ߹GithubΛ͍ͬͯΔඞཁ͕͋Δ͕ɺ ɹɹCircleCIͰͦͷΑ͏ͳ੍΄ͱΜͲͳ͍
Copyright coconala Inc. All Rights Reserved. 20 CircleCIͷಛ 3. άάϥϏϦςΟ͕ͳ͔ͳ͔ߴ͍
• 2013ࠒ͔Β಄͍ͯ͠Δ&ݸਓͰແྉར༻ՄೳͳͷͰใ͕๛ • ࠷ۙGithubActions͔... 4. σϑΥϧτͰsshσόοάػೳ͋Γ • ઃఆϑΝΠϧΛهࡌͯ͠ɺ ࢥ͏Α͏ʹಈ͔ͳ͍ͱ͖ʹศར • printσόοάΈ͍ͨͳ͜ͱ͕ෆཁ • GithubActionsͰઐ༻ActionsΛΈࠐΉ ඞཁ͕͋Δ
Copyright coconala Inc. All Rights Reserved. 21 CircleCIͷಛ 5. Insightػೳ
• ϦϙδτϦ͝ͱͷޭɺύΠϓϥΠϯͷ࣮ߦ࣌ؒͷ֓ཁΛ֬ೝͰ͖Δ ◦ Ͳ͕͍͜ͷ͔ɺվળ༨͕͋Δͷ͔͕ҰͰΘ͔Γ͍͢
Copyright coconala Inc. All Rights Reserved. 22 CircleCIͷ֓೦ ύΠϓϥΠϯʢ㲈ϫʔΫϑϩʔʣʢԼਤͦͷͷʣ |–
δϣϒʢԼਤͷϒϩοΫʣ |– εςοϓʢӈਤͷϒϩοΫʣ |– ίϚϯυ
Copyright coconala Inc. All Rights Reserved. 23 CircleCIͷઃఆ yamlϑΝΠϧ1ͭͰ݁ʂ
Copyright coconala Inc. All Rights Reserved. 24 ίίφϥͰͷར׆༻ࣄྫ ͱςΫχοΫ
Copyright coconala Inc. All Rights Reserved. 25 πʔϧ༻ 90%ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ10% ओཁαʔϏεྨͷςετɾσϓϩΠ
ࣾ༻πʔϧɺPRૢ࡞ܥ
Copyright coconala Inc. All Rights Reserved. 26 CircleCIΛ༻͍ͯAWSσϓϩΠ͢Δ ίίφϥͰEC2ɺECSɺLambdaͷσϓϩΠʹCircleCIΛ׆༻ •
developϒϥϯνϚʔδʹΑΓεςʔδϯάɺ masterϒϥϯνϚʔδʹΑΓຊ൪ࣗಈతʹσϓϩΠ͞ΕΔ • CircleCI্ͰLint→test→build→deploy ͕جຊϑϩʔ
Copyright coconala Inc. All Rights Reserved. 27 ͪΐͬͱͨ͠ςΫχοΫ • AWSGCPσϓϩΠ͢ΔͨΊʹΞΧϯτΩʔ͕ඞཁɾɾɾʁ
◦ ͩͬͨͷલ·Ͱͷ ◦ ݱࡏͰOpenIDConnectͱ͍͏ΈͰೝূ͢Δ͜ͱͰΩʔϨε͕Մೳ ◦ ৄ͘͠ϒϩάΛࢀর͍͖͍ͨͩͨ
Copyright coconala Inc. All Rights Reserved. 28 ͪΐͬͱͨ͠ςΫχοΫ • OrbsΛͲΜͲΜར༻
◦ OrbsͱδϣϒίϚϯυΛύοέʔδԽͨ͠ͷ ▪ ຊདྷेߦʹΔίϚϯυͳͲΛγϯϓϧʹهࡌͰ͖Δ ◦ ࣗͨͪઐ༻ʹPrivate OrbΛ࡞͢Δ͜ͱՄೳ ɹɹ ɹ→aws-cliΛར༻͍ͨͨ͠ΊΠϯετʔϧ͍ͨ͠ɻ ɹ ௨ৗwgetʙtarʙmvͳͲهࡌ͢Δඞཁ͕͋Δ͕ ɹ ͜Ε͕ͨͬͨ1ߦʢaws-cli/installʣͰࡁΜͰ͍Δ
Copyright coconala Inc. All Rights Reserved. 29 ͪΐͬͱͨ͠ςΫχοΫ • ςετฒྻԽͯ͠ߴԽ
◦ CI࣮ߦ࣌ؒͷଟ͘ͷׂ߹ΛΊΔͷ͕ςετఔ ◦ CircleCIͰࢄ࣮ߦͷઃఆ͕Մೳ ◦ ৄ͘͠ϒϩάΛࢀর͍͖͍ͨͩͨ ↓ ྻ࣮ߦͰ30͔͔͍ͬͯͨͷ͕τʔλϧ6ఔʹ
Copyright coconala Inc. All Rights Reserved. 30 CircleCIͰ CI/CDύΠϓϥΠϯΛ͑ շదͳ։ൃऀϥΠϑΛʂ
We are hiring!! ࠾༻ϗʔϜϖʔδ https://coconala.co.jp/recruit ΤϯδχΞ࠾༻ϗʔϜϖʔδ https://coconala.co.jp/recruit/engineer ίίφϥͷਓͱ৫Λ͑Δϒϩά ίίφϥLIVE https://blog.coconala.co.jp/m/m4e4abe8b17e5
ਓੜͷՄೳੑΛ͛ͨϢʔβʔετʔϦʔ Θͨ͠ͷεΩϧղ์ه https://blog.coconala.co.jp/m/me8a586112ad2 ίίφϥʹॴଐ͢ΔΤϯδχΞʹΑΔϒϩά ςοΫϒϩά https://zenn.dev/coconala 31