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
2.9k
PHPを検査するPHPを書く / Write PHP inspection by PHP
wata727
1
2.2k
快適なコードレビューを目指して / For a comfortable code review
wata727
1
650
現実世界でのコンテナの運び方
wata727
3
1.2k
Lintの付き合い方とPahoutのご紹介
wata727
0
160
Querlyで始めるコードレビューの自動化
wata727
2
450
コンテナをSpot Fleetで起動するという選択肢
wata727
2
1.1k
エンジニア向けSaaSを支えるInfrastructure as Code
wata727
5
2.4k
Other Decks in Programming
See All in Programming
ソフトウェア品質を数字で捉える技術。事業成長を支えるシステム品質の マネジメント
takuya542
2
15k
NPOでのDevinの活用
codeforeveryone
0
900
PipeCDのプラグイン化で目指すところ
warashi
1
310
新メンバーも今日から大活躍!SREが支えるスケールし続ける組織のオンボーディング
honmarkhunt
5
8.7k
AI Agent 時代のソフトウェア開発を支える AWS Cloud Development Kit (CDK)
konokenj
6
800
「テストは愚直&&網羅的に書くほどよい」という誤解 / Test Smarter, Not Harder
munetoshi
0
200
RailsGirls IZUMO スポンサーLT
16bitidol
0
200
AIともっと楽するE2Eテスト
myohei
8
3k
SQLアンチパターン第2版 データベースプログラミングで陥りがちな失敗とその対策 / Intro to SQL Antipatterns 2nd
twada
PRO
16
2.3k
「App Intent」よくわからんけどすごい!
rinngo0302
1
110
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
99
37k
スタートアップの急成長を支えるプラットフォームエンジニアリングと組織戦略
sutochin26
1
7.3k
Featured
See All Featured
A designer walks into a library…
pauljervisheath
207
24k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Adopting Sorbet at Scale
ufuk
77
9.5k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Making Projects Easy
brettharned
116
6.3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
The Cost Of JavaScript in 2023
addyosmani
51
8.6k
Become a Pro
speakerdeck
PRO
29
5.4k
Speed Design
sergeychernyshev
32
1k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
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… • มߋ͍ͨ͜͠ͱ͚ͩʹྗͰ͖Δ
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠