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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kazuma Watanabe
June 29, 2016
Programming
2.2k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SideCIのインフラ構築を自動化した話
エンジニア向けサービスを支える技術
Kazuma Watanabe
June 29, 2016
More Decks by Kazuma Watanabe
See All by Kazuma Watanabe
Terraform言語の静的解析 / static analysis of Terraform language
wata727
1
170
SmartHRにおけるBiTemporal Data Modelの実践のその後 / After the practice of BiTemporal Data Model in SmartHR
wata727
1
3.9k
PHPを検査するPHPを書く / Write PHP inspection by PHP
wata727
1
2.4k
快適なコードレビューを目指して / For a comfortable code review
wata727
1
710
現実世界でのコンテナの運び方
wata727
3
1.2k
Lintの付き合い方とPahoutのご紹介
wata727
0
210
Querlyで始めるコードレビューの自動化
wata727
2
480
コンテナをSpot Fleetで起動するという選択肢
wata727
2
1.1k
エンジニア向けSaaSを支えるInfrastructure as Code
wata727
5
2.5k
Other Decks in Programming
See All in Programming
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.7k
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
210
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
170
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
190
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
600
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
14
6.6k
TAKTでAI駆動開発の品質を設計する
j5ik2o
7
1.6k
鹿野さんに聞く!『TypeScriptコードレシピ集』で磨く実践力
tonkotsuboy_com
4
970
スマートグラスで並列バイブコーディング
hyshu
0
280
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
290
自作OSでスライド発表する
uyuki234
1
3.6k
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
250
Featured
See All Featured
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Abbi's Birthday
coloredviolet
3
8.5k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
The SEO identity crisis: Don't let AI make you average
varn
0
510
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
300
Between Models and Reality
mayunak
4
360
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
220
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
880
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Navigating Weather and Climate Data
rabernat
0
270
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
320
Navigating Team Friction
lara
192
16k
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… • มߋ͍ͨ͜͠ͱ͚ͩʹྗͰ͖Δ
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠