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
SideCIのインフラ構築を自動化した話
Search
Kazuma Watanabe
June 29, 2016
Programming
1
2.2k
SideCIのインフラ構築を自動化した話
エンジニア向けサービスを支える技術
Kazuma Watanabe
June 29, 2016
Tweet
Share
More Decks by Kazuma Watanabe
See All by Kazuma Watanabe
SmartHRにおけるBiTemporal Data Modelの実践のその後 / After the practice of BiTemporal Data Model in SmartHR
wata727
1
3.7k
PHPを検査するPHPを書く / Write PHP inspection by PHP
wata727
1
2.4k
快適なコードレビューを目指して / For a comfortable code review
wata727
1
680
現実世界でのコンテナの運び方
wata727
3
1.2k
Lintの付き合い方とPahoutのご紹介
wata727
0
190
Querlyで始めるコードレビューの自動化
wata727
2
470
コンテナをSpot Fleetで起動するという選択肢
wata727
2
1.1k
エンジニア向けSaaSを支えるInfrastructure as Code
wata727
5
2.5k
Other Decks in Programming
See All in Programming
Ruby x Terminal
a_matsuda
7
580
Takumiから考えるSecurity_Maturity_Model.pdf
gessy0129
1
120
RubyとGoでゼロから作る証券システム: 高信頼性が求められるシステムのコードの外側にある設計と運用のリアル
free_world21
0
210
「やめとこ」がなくなった — 1月にZennを始めて22本書いた AI共創開発のリアル
atani14
0
350
SourceGeneratorのマーカー属性問題について
htkym
0
150
あなたはユーザーではない #PdENight
kajitack
4
300
NOT A HOTEL - 建築や人と融合し、自由を創り出すソフトウェア
not_a_hokuts
2
570
朝日新聞のデジタル版を支えるGoバックエンド ー価値ある情報をいち早く確実にお届けするために
junkiishida
1
370
オブザーバビリティ駆動開発って実際どうなの?
yohfee
3
690
AIとペアプロして処理時間を97%削減した話 #pyconshizu
kashewnuts
1
200
nuget-server - あなたが必要だったNuGetサーバー
kekyo
PRO
0
170
文字コードの話
qnighy
43
17k
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
6k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
370
A Tale of Four Properties
chriscoyier
162
24k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Into the Great Unknown - MozCon
thekraken
40
2.3k
The Cult of Friendly URLs
andyhume
79
6.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Tell your own story through comics
letsgokoyo
1
830
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
63
Measuring & Analyzing Core Web Vitals
bluesmoon
9
770
Speed Design
sergeychernyshev
33
1.6k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
280
Transcript
SideCIͷΠϯϑϥ ߏஙΛࣗಈԽͨ͠ ΤϯδχΞ͚αʔϏεΛࢧ͑Δٕज़
ࣗݾհ • ᬒҰਅ (@wata727_) Engineer in Actcat, Inc. ओʹΠϯϑϥ৮ͬͯ·͢
SideCI (https://sideci.com)
SideCIͱ • ίʔυϨϏϡʔΛࢧԉ͢ΔαʔϏε • Ruby, PHP, PythonͳͲͷݴޠΛαϙʔτ • ։ൃϑϩʔͷதʹ͙͢ʹΈࠐΊΔʂ ίʔσΟϯά
ίʔυϨϏϡʔ ࣗಈςετ ϦϦʔε
ࣗಈίʔυϨϏϡʔ
ղੳڥΛࢧ͑Δٕज़
ղੳڥͷίϯςφԽ • πʔϧɺιʔείʔυ͝ͱʹ͍ࣺͯՄೳͳ ίϯςφΛDockerͰఏڙ EPDLFS Ubuntu Host
ղੳαʔόͷϓϥΠϕʔτԽ • ղੳαʔόΛดͨ͡ωοτϫʔΫʹஔ͘ • NATήʔτΣΠܦ༝ͰͷΈ௨৴͕Մೳ • αʔόؒͷ௨৴ͯ͢ϓϥΠϕʔτ
SideCIͷΠϯϑϥཧ
ࠓ·Ͱͷ
खಈӡ༻ͷݶք • νʔϜͷਓ͕૿͑Δʹैͬͯʮ͋Εʙ͞ Μ͕ͬͯΔʯ͕૿͑ͨ • ଞͷਓ͕มߋͨ͠ҙਤ͕هʹΒͣɺΘ͔ Βͳ͘ͳΔ
खಈӡ༻ਏ͍ • ୭͕ԿΛม͑ͨͷ͔ɺԿͷͨΊʹม͑ͨͷ͔ ه͕Γʹ͍͘ • ࠷ॳʹڥΛ࡞ͬͨਓ͔͠ಉ͡ڥΛ ෳͰ͖ͳ͘ͳΔ ଐਓԽͷ༧ײ
ࣗಈԽͷͨΊͷπʔϧબ
Packer
Packerͱ • αʔόͷݩʹͳΔϚγϯΠϝʔδΛࣗಈͰ࡞ Δ͜ͱʹಛԽͨ͠πʔϧ • ઃఆϑΝΠϧΛݩʹίϚϯυҰൃͰߏங • AWS, GCP, VirtualBox,
DockerͳͲෳͷϓ ϥοτϑΥʔϜʹରԠ
࠾༻ཧ༝ • ϚελʹͳΔϚγϯΠϝʔδΛ࡞ͬͯɺͦΕ ΛݩʹαʔόΛ૿͢ํͰਐΊΔͨΊ • ͞·͟·ͳछྨͷProvisionerΛαϙʔτͯ͠ ͓ΓɺॊೈʹߏஙͰ͖ΔʢBash, Chef, Ansible, etc…ʣ
࠾༻͠ͳ͔ͬͨखஈ • Docker in Docker • DockerϗετͷதͰDockerίϯτϩʔϧ ͢Δͷେม… • ίϯςφԽ͢Εىಈ͕ૣ͘ͳΔͷͰॊೈ
ͳมߋೖΕସ͑ʹڧ͘ͳΔ͔
Terraform
Terraformͱ • AWSͳͲͷαʔϏε ʢEC2ͳͲʣΛίʔυԽ ͯ͠࡞ɺมߋ͢Δπʔϧ • ઃఆϑΝΠϧΛݩʹίϚϯυҰൃͰߏங • ࣮ࡍͷར༻ঢ়گͱઃఆϑΝΠϧͷࠩΛݟͯɺ ඞཁͳมߋ͚ͩΛߦͬͯ͘ΕΔ
࠾༻ཧ༝ • dry-runͰมߋ༰ͷ֬ೝ͕ࣄલʹͰ͖Δ • ҙਤͤ͵มߋ͕ൃੜ͢Δલʹ͛Δ • ઃఆϑΝΠϧ͕ॻ͖͘͢ಡΈ͍͢ • ίϝϯτɺมɺΈࠐΈ͕ؔ͑Δ •
JSONͩͱωετ͢Δͱ͙͢ಡΈʹ͘͘ͳΔ
࠾༻͠ͳ͔ͬͨखஈ • CloudFormation • ϩʔϧόοΫັྗత͚ͩͲdry-run͕Ͱ ͖ͳ͔ͬͨͷக໋త • ઃఆϑΝΠϧʹίϝϯτͰ͖ͳ͔ͬͨΓɺ ෳࡶԽ͢ΔͱಡΈʹ͘͘ͳͬͨΓ…
αʔόߏஙϑϩʔ
ϚγϯΠϝʔδͷϏϧυ QBDLFSCVJMETFSWFSKTPO
ϚγϯΠϝʔδͷϏϧυ QBDLFSCVJMETFSWFS KTPO Server ݩʹͳΔ αʔόͷىಈ
ϚγϯΠϝʔδͷϏϧυ QBDLFSCVJMETFSWFS KTPO Server αʔόΛߏங QSPWJTJPOFST< \ UZQFTIFMM FYFDVUF@DPNNBOE\\7BST^^TVEP&CBTIF
\\1BUI^^\\VTFSAFOWJSPONFOUA^^ TDSJQUT< TDSJQUTSPPU@VQHSBEFTI TDSJQUTSPPU@JOTUBMMTI > ^ ʜ
ϚγϯΠϝʔδͷϏϧυ QBDLFSCVJMETFSWFS KTPO Server 4FSWFSTQFDͰ ಈ࡞ςετ
ϚγϯΠϝʔδͷϏϧυ QBDLFSCVJMETFSWFS KTPO Server Machine Image αʔό͔ΒϚγϯ ΠϝʔδΛநग़
ϚγϯΠϝʔδͷϏϧυ QBDLFSCVJMETFSWFS KTPO Machine Image αʔόΛআ
Πϯϑϥมߋͷө UFSSBGPSNBQQMZ Machine Image
Πϯϑϥมߋͷө UFSSBGPSNBQQMZ Machine Image ݩʹͳΔϚγϯ ΠϝʔδΛࢦఆ
Πϯϑϥมߋͷө UFSSBGPSNBQQMZ Machine Image Security Group ༻͢ΔηΩϡϦςΟ άϧʔϓΛࢦఆ
Πϯϑϥมߋͷө UFSSBGPSNBQQMZ Machine Image Security Group Server ͦΕͧΕͷઃఆ͔Β αʔόΛىಈ
ӡ༻ͯ͠Έͯײͨ͜͡ͱ
࣮ࡍͷڥͱtfstateͷෆҰக • tfstateϑΝΠϧΛखಈͰղܾ͢Δͷ͕͍͠
tfstateͭΒ͍
खಈӡ༻ਏ͍ • ୭͕ԿΛม͑ͨͷ͔ɺԿͷͨΊʹม͑ͨͷ͔ ه͕Γʹ͍͘ • ࠷ॳʹڥΛ࡞ͬͨਓ͔͠ಉ͡ڥΛ ෳͰ͖ͳ͘ͳΔ ྑ͔ͬͨ͜ͱ
θϩ͔Β࡞ΕΔ҆৺ײ • Ծʹࠓͷڥ͕ͯ͢ແ͘ͳͬͯɺθϩ͔ ΒαʔϏεΠϯͰ͖Δαʔό͕ࣗಈͰ࡞ΕΔ • ίʔυͱͯࣾ͠ʹެ։͞ΕΔͷͰ୭Ͱத ͕ݟΕΔɺ࣮ߦͰ͖Δ
αʔόʔަ͕εϜʔζʹ • ϚγϯΠϝʔδͷID໊ม͑Δ͚ͩͰɺ͍͍ײ ͡ʹద༻ͯ͘͠ΕΔ • EIPͷ͚ସ͑ɺELBͷׂΓͯɺηΩϡ ϦςΟάϧʔϓͷަɺetc… • มߋ͍ͨ͜͠ͱ͚ͩʹྗͰ͖Δ
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠