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
エンジニア向けSaaSを支えるInfrastructure as Code
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kazuma Watanabe
July 03, 2016
Programming
5
2.4k
エンジニア向けSaaSを支えるInfrastructure as Code
YAP(achimon)C::Asia Hachioji 2016 Day2
Kazuma Watanabe
July 03, 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.6k
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
460
コンテナをSpot Fleetで起動するという選択肢
wata727
2
1.1k
SideCIのインフラ構築を自動化した話
wata727
1
2.2k
Other Decks in Programming
See All in Programming
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
170
AI & Enginnering
codelynx
0
120
16年目のピクシブ百科事典を支える最新の技術基盤 / The Modern Tech Stack Powering Pixiv Encyclopedia in its 16th Year
ahuglajbclajep
5
1k
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
4
2k
2026年 エンジニアリング自己学習法
yumechi
0
140
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
750
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
230
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
470
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
7.5k
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6.1k
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
4k
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
690
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
Navigating Weather and Climate Data
rabernat
0
110
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
120
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
320
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
270
Prompt Engineering for Job Search
mfonobong
0
160
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
350
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
170
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3k
Transcript
ΤϯδχΞ͚SaaSΛࢧ͑Δ Infrastructure as Code YAP(achimon)C::Asia Hachioji 2016 Day2
ࣗݾհ • ᬒҰਅ (@wata727_) • Engineer in Actcat, Inc. ΠϯϑϥدΓαʔόαΠυ
࠷ॳʹ
ཧͱݱ࣮
ImmutableͰ͋Δ͜ͱͷ͠͞ • ࠷ॳImmutable Infrastructureʹ͍ͭͯτʔ Ϋ͢ΔͭΓͩͬͨ • ࣮ݱ͢ΔͨΊʹ՝͕ଟ͗ͨ͢ʢޙड़ʣ
ΤϯδχΞ͚ SaaS
SideCI
SideCI ࣗಈίʔυϨϏϡʔ
GitHub࿈ܞ
https://github.com/integrations/sideci
ࠓͷ͓ • SideCIͷAWSҠߦࣄྫ • Πϯϑϥͷӡ༻ํࣜΛબͨ͠ • ࣮ݱ͢ΔͨΊͷInfrastructure as Code
AWSͷҠߦ
Ҏલͷߏ
ϋΠϒϦοτΫϥυߏ • AWS + GCP • VPNͰଓͯ͠ωοτϫʔΫΛߏங • ҰํͷϕϯμʔͷোͰαʔϏε͕མͪΔ͜ ͱ͕͋ͬͯɺҰຊԽ͍ͨ͠ͱ͍͏͕͋ͬͨ
Ҡߦͷ՝
ߏཧ͞Ε͍ͯͳ͍ • Ҿ͖ܧ͕Εͨखॱॻ.mdͷΈ • νʔϜ͕εέʔϧ͢ΔͱଐਓԽͷΛট͖ ͦ͏ͱ͍͏ผͷ… • ԿΒ͔ͷࣗಈԽ͕ඞཁ
ߏཧ͞Ε͍ͯͳ͍ • Ҿ͖ܧ͕Εͨखॱॻ.mdͷΈ • νʔϜ͕εέʔϧ͢ΔͱଐਓԽͷΛট͖ ͦ͏ͱ͍͏ผͷ… • ԿΒ͔ͷࣗಈԽ͕ඞཁ Infrastructure as
Code ΛΔͧʂʂ
Πϯϑϥͷ ӡ༻ํࣜͷબ
Ͳ͏ͬͯίʔυԽ͢Δ͔ • ·ͣΠϯϑϥɺσϓϩΠͷཧɺӡ༻ΛͲ ͏͢Δ͖͔ߟ͔͑ͯΒɺπʔϧΛબ͢Δ • PushܕɺPullܕɺImmutable…
Pushܕ
Pushܕͷӡ༻ɺσϓϩΠ • ΫϥΠΞϯτ͔Β֤αʔόʹϛυϧΣΞม ߋΞϓϦέʔγϣϯͷσϓϩΠΛSSHܦ༝ ͳͲͰߦ͏ • Ansible, Itamae, CapistranoͳͲ
Pushܕͷӡ༻ɺσϓϩΠ
Pushܕͷӡ༻ɺσϓϩΠ
ϝϦοτͱσϝϦοτ • ΫϥΠΞϯτͷΈͰಈ࡞͢ΔͷͰαʔόଆʹ ઃఆ͕ෆཁͰཧָ͕ • αʔόͷ͕ଟ͔ͬͨΓɺΦʔτεέʔϦ ϯάͰ૿ݮ͢Δͱద༻͕͘͠ͳΔ
Pullܕ
Pullܕͷӡ༻ɺσϓϩΠ • ֤αʔό͕ࣗͰඞཁͳϛυϧΣΞɺΞϓ ϦέʔγϣϯͷมߋΛࣗࣗʹద༻͢Δ • Chef, AWS CodeDeploy, StretcherͳͲ
Pullܕͷӡ༻ɺσϓϩΠ
Pullܕͷӡ༻ɺσϓϩΠ
Pullܕͷӡ༻ɺσϓϩΠ
ϝϦοτͱσϝϦοτ • ֤αʔό͕Λ࣋ͭͷͰεέʔϧ͢ΔɺΦʔ τεέʔϦϯάͰવͳ͠ • ֤αʔόʹର͢ΔݩͱͳΔαʔό͕SPOF ʹͳΓ͕ͪͳͷͰɺԽͳͲߟ͑Δͱϝϯ ςφϯείετ͕ߴ͍
Immutable
Immutableͳӡ༻ɺσϓϩΠ • ֤αʔό࠷ॳ͔ΒมߋࡁΈͰɺมߋΛཁ͢ Δ߹ʹαʔό͝ͱഁغ͢Δ • ؔ࿈πʔϧPacker, DockerͳͲ
Immutableͳӡ༻ɺσϓϩΠ
Immutableͳӡ༻ɺσϓϩΠ
ϝϦοτͱσϝϦοτ • ֤αʔόશʹෳՄೳͰɺϩʔϧόοΫ ͕༰қʢBlue-Green Deployʣ • ΰʔϧσϯΠϝʔδͷੜίετ͕ߴ͍
Immutableͳ ํࣜͷ࠾༻
ΰʔϧσϯΠϝʔδͷϏϧυ • αʔϏεΠϯՄೳͳϚγϯΠϝʔδΛ PackerͰϏϧυ͢Δ • αʔϏεΠϯՄೳͰ͋Δ͜ͱPackerͷϏϧ υͷ࠷ޙʹServerspecΛ࣮ߦͯ͠୲อ͢Δ
ImmutableͳσϓϩΠ • ৽͍͠ϚγϯΠϝʔδ͝ͱʹαʔόΛBlue- GreenతʹೖΕସ͑Δ • TerraformʹΑΔαʔό࠶ஔͷࣗಈԽ • طଘͷϦιʔεTerraformingͰநग़
αʔόߏஙϑϩʔ 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 ͦΕͧΕͷઃఆ͔Β αʔόΛىಈ
ൃੜ
ΠϝʔδͷϏϧυ͕͗͢Δ • 30͘Β͍͔͔Δ • σϓϩΠͷ͕2ˠ30ʙͱ͔ʹͳΔ • ϦϦʔεʹର͢Δ߅ײͷ૿େ
σϓϩΠ͚ͩPushܕʹ • σϓϩΠैདྷ௨ΓCapistrano • ϛυϧΣΞมߋ࣌ͷΈϚγϯΠϝʔδΛߋ ৽͢ΔΑ͏ʹมߋ
Ҡߦ࡞ۀͷ࣮ࢪ
ҠߦͷྲྀΕ • ฒྻͰࣄલʹϓϩμΫγϣϯڥΛՔಇͤ͞ ͓ͯ͘ʢNOT εςʔδϯάʣ • ՄೳͳݶΓɺELBͱRoute53ͷΓସ͚͑ͩͰ τϥϑΟοΫͷྲྀΕΛมߋ͢ΔΑ͏ʹ͢Δ
Ҡߦલ
Ҡߦޙ
ແࣄྃ
Infrastructure as CodeΛಋೖ͢Δ ͱ͍͏͜ͱ
ָͳӡ༻Λߟ͑Δ • ྫ͑ɺΠϝʔδͷϏϧυʹ͕͔͔࣌ؒΓ͢ ͗ͨΓɺϏϧυͷͨΊʹෳࡶͳڥΛߏங͢ Δඞཁ͕͋Δͱɺͳ͔ͳ͔ਁಁ͠ͳ͍ • ·ͩ·ͩվળͷ༨͋Γ…
نʹ͋ͬͨํ๏ΛબͿ • AutoScalingΛඞཁͱ͠ͳ͍গͷαʔόͳΒ PushܕͰेͳ͜ͱ͋Δ • ͦΕͧΕʹదͨ͠πʔϧ͕͋ΔͷͰɺྲྀߦΓ ഇΓʹΘ͞Εͳ͍
Thank you!