Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
applibotのDevOpsを支える terraform/packer
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
遊
September 11, 2018
Technology
3.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
applibotのDevOpsを支える terraform/packer
2018/09/11 DevOpsを支える今話題のHashiCorpツール群について
遊
September 11, 2018
More Decks by 遊
See All by 遊
ゲームのインフラ6年やっててよく聞かれること
gacharu
1
1.4k
ELKstackとAthenaの素敵な関係
gacharu
0
1k
Other Decks in Technology
See All in Technology
AIに任せられるFlutterコードベースを作る 〜仕様をコードで表し、ハーネスで守る〜
myohei
1
630
Systems Manager AgentがインストールされたPCを紛失した時の対策を考えてみた
amarelo_n24
1
110
FinOpsを導入してマルチプロダクトのコスト最適化を実現する
kworkdev
PRO
0
120
Devin プロモコードの受け取りと適用(2026.10.27)
kinopeee
1
840
Technical Project Manager の役割とやりがい、少しだけ AI
yoshiiryo1
0
580
なぜAI時代に技術記事を書くのか?どう書くのか? 〜bunの場合〜
kworkdev
PRO
0
4.6k
"計画的無茶振り"を通してAIネイティブ世代の新人を育てる
subroh0508
1
140
続・ソフトウェアアーキテクトのための意思決定術: Decision Readiness, Revisited — When AI Changes the Economics of Software Architecture
snoozer05
PRO
4
880
Deep Data Security 機能解説
oracle4engineer
PRO
3
1k
外国人エンジニアがVueプロトタイプで仕様を合わせている話 / Vue Fes Japan 2026 LT
eluwing
0
400
Agent 活用環境の構築・運用のための AWS サービスのご紹介/agentcore-for-building-and-operating-agents
ren8k
1
320
「作れる」と「リリースできる」の間にあったもの── PdMを外して見えた、PdMがやるべき仕事/Buildable ≠ Shippable: What Removing the PM Taught Me About the PM’s Job
yappli_developers
0
430
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
433
67k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
340
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
510
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
1
300
A designer walks into a library…
pauljervisheath
211
25k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Designing for humans not robots
tammielis
254
26k
Transcript
applibotͷDevOpsΛࢧ͑Δ terraform/packer DevOpsΛࢧ͑ΔࠓͷHashiCorpπʔϧ܈ʹ͍ͭͯ 2018/09/11 ଜ ༡
ೋ ࣇ ͷ ͤ ͍ ͭ ɿ
͓ ͱ ͜ Ϩ ϕ ϧ ɿ ) 1 . 1 ࣾ ձ ਓ ྺ d ɹ % $ Ͱ ࢹ Φϖ Ϩ ʔ λ ʔ d ɹ ג ࣜ ձ ࣾ ɹ ɹ ɹ ɿ 4 : 4 5 & . 0 1 & 3 "50 3 d / 0 8 ɹ ɹ ג ࣜ ձ ࣾ " 1 1 - * # 05 ɿ 4 : 4 5 & . 0 1 & 3 "50 3 ͳ · ͑ ɹ ɹ ɿ ଜ ɹ ༡ ͭ ͍ ͬ ͨ ʔ ɿ !HBDIBSJPO HVNJ ࣗ ݾ հ
גࣜձࣾΞϓϦϘοτ ཱ݄̓ $ZCFS"HFOU εϚʔτϑΥϯήʔϜΤϯλʔςΠϝϯτࣄۀ 4(& ɹͷͷࣾ ήʔϜ͚ͩͰͳ͘ɺΦϯϥΠϯϓϩάϥϛϯάڭҭαʔϏε ϝσΟΞܥͷใൃ৴αΠτӡӦ ձࣾઆ໌
None
None
̍ΞϓϦέʔγϣϯຖʹ Χϯύχʔ੍
ӡ༻தͷΞϓϦ ຊ
৽ن։ൃ1+ /ຊ
ͦͷଞαΠτ࡞Β ৽نࣄۀΒ ΖΖΖ
4:401 αʔόڥΛ༻ҙ͢Δਓ ਓ
ΞϓϦέʔγϣϯνʔϜͷ αʔόΤϯδχΞͱ ڠྗ͢Δ͜ͱ͕ଟ͍
͢͜ͱ w աڈʹ͋ͬͨ՝Λ UFSSBGPSNQBDLFSΛͬͯ Ͳ͏ղফ͔ͨ͠ͱ͍͏͓
͞ͳ͍͜ͱ w ࡉ͔͍5JQT
agenda w DBTF*NBHF࡞ w DBTFෛՙࢼݧڥߏங w DBTF৽نڥߏங w ·ͱΊ
$BTF *NBHF࡞
º º ͏ͷ
Packer • ༻్ • AMI / GCP Image / Container
Imageͷ࡞ • ansibleͱซ༻ͯ͠༻ • ϝϦοτ • Πϝʔδ࡞ͷྲྀΕΛςϯϓϨʔτԽ
before w ྫ"NB[PO".* CBTFͱͳΔ".*͔Β&$ىಈ "OTJCMFͰߏมߋΛద༻ Πϝʔδऔಘͨ͠αʔόͷআ Ҏ্ΛશͯखಈͰ࣮ߦ
before ىಈதʹผͷ࡞ۀΔ ˠΕΔ Πϝʔδऔಘޙͷαʔόআ ˠΕΔ ͦͦ͜ͷ࡞ۀ ˠΊΜͲ͍
ͦΜͳ࣌
after $ p a c k e r b u
i l d p a c k e r . j s o n ʊਓਓਓਓਓਓਓਓਓʊ ʼɹίϚϯυҰൃʂɹʻ ʉ:?:?:?:?:?:?ʉ
JOB
ৄࡉϒϩάͰ ͯͬ͘΅ͬͱ https://blog.applibot.co.jp/ 2018/05/11/how-to-build- aws-ami-in-applibot/
$BTF ෛՙࢼݧߏங
º ͏ͷ
ෛՙࢼݧͷ߹ͷׂ ෛ ՙ ࢼ ݧ Λ ͔ ͚Δ ਓ
γ φ Ϧ Φ ࡞ ࢼ ݧ ࣮ ߦ ݁ Ռ · ͱ Ί ෛ ՙ ࢼ ݧ ڥ Λ ࡞ Δ ਓ ڥ ࡞ ߏ ม ߋ Ϩ Ϗϡ ʔ αʔόΤϯδχΞ γεΦϖ
Α͋͘Δޫܠ ৽ Πϕ ϯ τ ։ ൃ ͠ · ͠
ͨ ʂ ෛ ՙ ࢼ ݧ Γ ͨ ͍Ͱ ͢ ʂ ͍ ͭ · Ͱ ʹ ༻ ҙ Ͱ ͖ · ͢ ͔ ʂ ʁ ͏ ʔ ʔ ʔ ʔ Μ ɻ ࠓ ख ͕ ۭ ͔ ͳ ͍ ͔ Β ʜ ͙ Β ͍Ͱ ʜ ͦ͘ ͓ ͦ ʂ ʢ ྃ ղ Ͱ ͢ ʂ ΑΖ ͠ ͘ ͓ ئ ͍ ͠ · ͢ ʂ ʣ
ӡ༻தͷαʔϏε͕ ෛՙࢼݧΛΔ࣌ w ৽نΠϕϯτϦϦʔεલ w αʔόଆͷߏมߋΛߦ͏࣌ w $.େن13લ
༻ҙ͢Δͷ ΠϯϑϥपΓ w ࠷ऴతʹɺຊ൪ಉͷڥ w ࢼݧͷλΠϛϯάͰ࡞ w ෛՙΛ͔͚Δαʔό w +.FUFSΛ༻
&$ ɻωοτϫʔΫผɻΞΧϯτ͚͍ͯΔ w ֤छϞχλϦϯά w HSBGBOBQSPNFUIFVTLJCBOB FMBTUJDTFBSDI w ͜͜ࠓճؔͳ͠
༻ҙ͢Δͷ ΠϯϑϥपΓ w ࠷ऴతʹɺຊ൪ಉͷڥ w ࠷ॳಉ͡ߏͰখ͍͞ΠϯελϯεΫϥε w ຊ൪ಉͷنͰৗʹҡ࣋͢Δͱɺ අ༻͕ϠόΠͷͰࢼݧͷʹ࡞͢Δ w
ࢼݧظؒதͰɺΘͳ͍ͱ͖খ͘͞
༻ҙ͢Δͷ ΠϯϑϥपΓ w ෛՙΛ͔͚Δαʔό w ฐࣾͰ+.FUFSΛ༻ w NBTUFSTMBWFߏ TMBWF"VUP4DBMJOHͰεέʔϧ͢Δ w
ͪ͜Βࢼݧͷʹ࡞ w Θͳ͍࣌আ
before ཧΠϯελϯεͷBXTDMJΛΰϦΰϦ 3%4&MBTUJ$BDIF&$FUDʜ ىಈॱ൪εΫϦϓτؒͰௐ ग़དྷ্͕ΔൿͷλϨ TZTPQଆͰຖேຖ൩ͷ֦ுॖখରԠ
Կ͔͋Δʁ w Ұಈ͔ͤྑ͍͚Ͳ w ཧ͕େม w ଞϓϩδΣΫτͰ·ͨΰϦΰϦͱ w ҉తͳߏॱ͋ͬͨΓͰ ֮͑ͯΒ͍ͮΒ͍
ͦΜͳ࣌ͦ͜
Ұ͔ΒUFSSBGPSNͰ࡞ w ߏཁૉΛશͯUFSSBGPSNԽ w جຊతʹ࡞Γ͠ w طʹ͋ΔϦιʔε UFSSBGPSNJNQPSU w Ͳ͏ͯ͠߹ੑ߹Θͳ͍ͱ͖
UGTUBUFΛमਖ਼
Կ͕ྑ͘ͳͬͨʁ w ىಈཧͷू͕Ͱ͖ͨ w UFSSBGPSNͷϑΝΠϧΛݟΕɺߏཁૉ͕Θ͔Δঢ়ଶ w ࡞εέʔϧUFSSBGPSNBQQMZͰPL w ߏॱংࢦఆ EFQFOET@PO
w WBSTͷΓସ͑Ͱɺॖখɺ֦ு༰қ
ॖখ༻ ########################## ## Aurora InstanceClass ## ########################## rds_master_class = “db.r3.2xlarge"
################# ## Autoscaling ## ################# desired_capacity = “10” ֦ு༻ ########################## ## Aurora InstanceClass ## ########################## rds_master_class = “db.t2.medium” ################# ## Autoscaling ## ################# desired_capacity = “0” ֦ுॖখWBSTϑΝΠϧͷ Γସ͑ͰରԠ
# ద༻͢ΔvarsΛηοτ vars_file=vars_file/${OPTARG}_value.tfvars # tfstateόοΫΞοϓ if [ ${option} == "apply"
]; then terraform state pull > backup/terraform.tfstate_backup_`date +"%Y-%m-%d-%H-%M- %S"` fi # terraform࣮ߦ (plan or apply) terraform ${tf_option} -var-file=${vars_file} ࣮ߦ༻εΫϦϓτ
w ઃఆ͕ڞ༗Ͱ͖͓ͯΓ w มߋWBSTͷΓସ͑ͰPL w ͱͳͬͨΒɺ͋ͱ୭͕࣮ߦͯ͠ Ұॹ
after ʊਓਓਓਓਓਓਓਓਓʊ ʼɹTMBDLҰൃʂʻ ʉ:?:?:?:?:?:?ʉ hoge hoge hoge
None
after hoge hoge hoge w εέʔϧͷݖݶΛΞϓϦνʔϜҠৡ w Ͳ͏͍͏ڥͰࢼݧ͍ͯ͠Δ͔ͷ ֬ೝ༰қ w
ϘτϧωοΫՕॴͷมߋ WBSTͷΛ͍͡Δ͚ͩͰมߋͰ͖Δ εϐʔυײͷ͋ΔରԠΛ ߦ͏͜ͱ͕Ͱ͖Δ
$BTF ৽نڥߏங
º ࣄྫ
৽نαʔϏεͷڥߏஙͷྲྀΕ ͦ Ζ ͦ Ζ α ʔ ό ͱ ૄ
௨ ͯ͠ ֬ ೝ ͠ ͨ ͍ ͍ ͭ · Ͱ ʹ ༻ ҙ Ͱ ͖ · ͢ ͔ ʂ ʁ Ξ Χ ϯ τ ͔ Β ͷ ༻ ҙ ͩ ͔ Β ɺ ͋ Ε ͍ Εͯ ͜ Ε ͍ Εͯ ͋ ʜ ͙ Β ͍Ͱ ʜ ͦ͘ ͓ ͦ ʂ ʢ ྃ ղ Ͱ ͢ ʂ ΑΖ ͠ ͘ ͓ ئ ͍ ͠ · ͢ ʂ ʣ
before SPPUΞΧϯτͷ෧ҹ $POTPMJEBUFE#JMMJOHઃఆ *".6TFSͷ࡞ɺ(SPVQઃఆɺTXJUDIઃఆ $MPVE5SBJMMPH༻4όέοτͷઃఆ ωοτϫʔΫઃఆɺࢹ༻ϙʔτ։͚ FUD
ͦΜͳઃఆ
Կ͕ྑ͘ͳͬͨʁ w ΞΧϯτࣗମͷઃఆཧ w ແҙࣝʹαʔόڥ ΞϓϦέʔγϣϯؔ࿈ ͷ ཧͱͯ͠༻͍͕ͯͨ͠ɺ "84ͷ΄΅શͯͷαʔϏεཏ͍ͯ͠ΔͷͰɺ $MPVE5SBJM͔Β*".·Ͱɺ
ॳظઃఆΛશͯςϯϓϨԽͰ͖ͨɻ
BQQMJCPUͷUFSSBGPSN ϑΥϧμߏ • 00_base • ΞΧϯτ࡞࣌ʹ࡞͢ΔαʔϏε܈ • CloudTrail /
Route53 / keypair / S3(awsؔ࿈ͷϩά༻) / IAMUser • 01_common / 02_dev / 03_stg / 04_prd • ֤ڥ໊ɻιʔτ༻ʹ൪߸ৼ͍ͬͯΔ • workspaceఘΊ·ͨ͠ • 99_modules • ֤ڥ͕ڞ௨Ͱ༻͢Δઃఆ • ྫ: VPC Network
(JUMBCͰ CBTFSFQPTJUPSZཧ
after SPPUΞΧϯτͷ෧ҹ $POTPMJEBUFE#JMMJOHઃఆ UFSSBGPSN༻*".6TFS࡞ UFSSBGPSN࣮ߦ ͰPL
hoge ઃఆมߋ.3Ͱ ཧͰ͖Δ
·ͱΊ
·ͱΊ w 1BDLFSUFSSBGPSNͰཧ͢Δ͜ͱͰ ཧ͘͢͠ɺڞ༗ՄೳͳΠϯϑϥ w ߏங෦͕ૄ݁߹ʹͳΔ͜ͱͰ JOQVUPVUQVUͷΈ߹Θ͕ͤ༰қ w ఆܕ࡞ۀςϯϓϨԽେࣄ
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠