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
테스트 환경 개선하기
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
RIDI
November 02, 2018
Programming
3.7k
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
테스트 환경 개선하기
RIDI
November 02, 2018
More Decks by RIDI
See All by RIDI
원격 근무 팀 운영 경험 공유
ridi
0
2.3k
SVG Icon Design Guide
ridi
2
4.3k
빠르게 훑어보는 리디페이 백엔드 개발기
ridi
2
5.3k
Next.js는 정말 zero config였다.
ridi
0
2.2k
3일 걸릴 것 같던 구매목록 다운로드는 왜 3주가 걸렸을까?
ridi
0
500
원격으로 한 달 일해보니
ridi
0
1.6k
리디북스 앱에 S Pen Remote 연동하기
ridi
2
2.9k
UI 라이브러리 개발기
ridi
1
2.8k
추천 API 최적화하기
ridi
4
2.3k
Other Decks in Programming
See All in Programming
これって Effect でできたのでは? / TSKaigi Mashup Kansai #2
susisu
0
130
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
630
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
200
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
190
地域 SRE コミュニティ最前線 - ホンマでっかSRE勉強会
tk3fftk
0
290
その節約、円になってますか?
isamumumu
1
640
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
110
継続モナドとリアクティブプログラミング
yukikurage
3
670
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
180
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
380
テーブルをDELETEした
yuzneri
0
130
AI時代に設計が 最大の生産性レバーになる 意図駆動開発とデータを消さない設計|Don't Delete Your Data or Your Intent — Design as the Deepest Lever in the AI Era
tomohisa
0
190
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
How to train your dragon (web standard)
notwaldorf
97
6.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
The untapped power of vector embeddings
frankvandijk
2
1.8k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Designing for Timeless Needs
cassininazir
1
430
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
600
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
620
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
330
Site-Speed That Sticks
csswizardry
13
1.4k
From π to Pie charts
rasagy
0
240
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
230
Transcript
పझജ҃ѐࢶೞӝ IUUQTUFTUSJEJJP झషয൞
ӝദ ٣ੋ ѐߊ ߓನ Ѣߓನ೧بظਃ ѣ ࠛউ
ࠛউਸহগ۰ݶ పझоਃפ
ਬపझ ాపझ &&పझ١j 2" ஹೊఠ ઁೠػജ҃ ࢎۈ নೠജ҃
ѐߊ۽ஸࢲߡী٣ցоࣘೞ۰ݶ %FWFMPQFS %FTJHOFS
%FWFMPQFS %FTJHOFS IUUQTYY
٣ੋ12о೯غחزউ ܲѐߊਸ҅ࣘೞҊरݶ ܻ࠙ػపझࢲߡਃ
झషযӝઓജ҃ IFFKBFEFWSJEJJP OOZBNNEFWSJEJJP TJNQTPOEFWSJEJJP j ѐੋ߹ࢲ࠳بݫੋ ࣻز ࢤࢿ
ޙઁઁೠػ44)ࣘӂೠ 44) ࢸੌসؘ ࠽٘ޙઁ٣ߡӦ١ ࠛо
ޙઁ63-ਸాೠ࠽٘ IUUQHJUIFFKBFEFWSJEJJPGFUDI IUUQHJUIFFKBFEFWSJEJJPDIFDLPVUGFBUVSF" IUUQHJUIFFKBFEFWSJEJJPQVMM IUUQHJUIFFKBFEFWSJEJJPTVCNPEVMFVQEBUF IUUQNBLFIFFKBFEFWSJEJJPCVJME ൞שউ߄ՈѢ эইਃ દ࣠೧ਃƕƕ द࠽٘೧ࠅѱਃ
ޙઁبݫੋࠗ Әపझࢲߡ উॳदח࠙҅ࣁਃ ઁԁ ॳ࣑যਃ
नӏపझࢲߡҳ୷ ۿূ٘࠙ӝ݃ੌझహ
ਃҳࢎ೦ • ৈ۞ѐ ࢲ࠳ بݫੋ ࢤࢿ оמ೧ঠ ೣ • п
ࢲ࠳ بݫੋ߹۽ ة݀ੋ ߓನо оמ೧ঠ ೣ • admin ಕب ࣘ оמ೧ঠ ೣ • పझ ࢲߡী SSH Ӕ оמ೧ঠ ೣ • ࢎղীࢲ݅ ࣘೡ ࣻ যঠ ೣ • Ҋػ بݫੋ (ex : library.dev.ridi.io) • ఃח ܖ بݫੋী ࢸ • ౠ ࠳ےী ೧ ୭न ܻ࠺ زਵ۽ ߈ • SSL ੋૐࢲ ਊ • పझ ജ҃ীࢲ ఋ API ী ޙઁо হযঠ ೣ
ޙઁઁೠػ44)ࣘӂೠ ޙઁ63-ਸాೠ࠽٘ ޙઁبݫੋࠗ ӝઓࢲߡ৬ܻ࠙ػੋझఢझࢎਊ $*ীࢲبழ۽࠽٘ ࢲ࠳بݫੋࢤࢿਸਬ܂ѱ
ӝࣿझఖѾ %PDLFS &$4
بழоજחѤਕٜযࠊࢲঌѷחؘ ߔূ٘بழۄযڌѱೞ
5IBOLTUP
&$4j ż@ż ॄࠄ"84ۄҊח&$ 4 3PVUF JNBHF DPOUBJOFS UBTLEFGJOJUJPO TFSWJDF DMVTUFS
UBTL
GPPUFTUSJEJJP &$44FSWJDF $POUBJOFS "-# &$4ࢲ࠺झীبݫੋਸোѾೞ۰ݶ CBSUFTUSJEJJP &$44FSWJDF "-# OFXUFTUSJEJJP /FX4FSWJDF
"-#
UFTUSJEJJP "-# ۧѱೡࣻহਸө GFBUVSF"UFTUSJEJJP GFBUVSF#UFTUSJEJJP CVHGJY"UFTUSJEJJP CVHGJY#UFTUSJEJJP /FX 7JSUVBM)PTU
ۧѱೡࣻহਸө 3FWFSTF1SPYZ "1*4FSWFS ,FZWBMVF4UPSF 8FC6* jNPSF
য۵ ழझఠ݃ೞӝ ۄܳ नೞৈ ܲ ࢲߡীࢲ ਗਸ оઉ য়ח ࢲߡੑפ.
%PDLFSGJMF
FDTHFO EPDLFSHFOGPS"84&$4 *OTQJSFECZEPDLFSHFOFDTHFOMFUTZPVHFOFSBUFDPOGJHGJMFTGSPNUFNQMBUFT VTJOH"84&$4DMVTUFSJOGPSNBUJPOFDTOHJOYQSPYZVTFTFDTHFOUPHFOFSBUF OHJOYDPOGJHGJMFT $POUJOVPVTMZVQEBUFBDPOGJH 5PLFFQBDPOGJHVQUPEBUFUSZBWBSJBUJPOPGUIFGPMMPXJOH $ ecs-gen --signal="nginx
-s reload” --template=nginx.tmpl --output=/etc/nginx/ conf.d/default.conf IUUQTHJUIVCDPNDPEFTVLJFDTHFO
HJUMBCSJEJJPTUPSFFDTOHJOYQSPYZ ஶపցীਃೠੌѐ "1* MVBOHJOYNPEVMF 8FC6* 3FWFSTF1SPYZ ,FZWBMVF4UPSF
1045DSFBUF (&5WIPTUT
ઁ ۞झఠী ࢲ࠺झ ஶపց ݅ڸݶ ঌইࢲ೧સפ
ࢤࢿ সؘ ઙܐ (JUMBC$*$%1JQFMJOF &OWJSPONFOUT
ࢤࢿ সؘ ઙܐ (JUQVTI UFTUSJEJJP"1* (JU-BC$*5SJHHFSप೯ %PDLFSCVJME &$3QVTI 4MBDL/PUJGZ FDTDMJDPNQPTFTFSWJDFVQ
UFTUSJEJJP8FC6* &OWJSPONFOUTUPQ 1JQFMJOF.BOVBMKPCप೯ FDTDMJDPNQPTFTFSWJDFEPXO 4MBDL/PUJGZ #SBODIઁ
ਘੌҕѐ সӝрѐਘƕƕ
ইएਛ؍ ୶о۽ѐࢶ೧ঠೡࠗ࠙ ডѐਘসӝрࣗਃ "84৬%PDLFSࢎध࠙೮ݶ ѐਘউ౷ਵ۽оמ೮ਸѪਵ۽࢚ BXTMBCTFDTOHJOYSFWFSTFQSPYZ ѐੋѐߊо݅ٚFDTOHJOYQSPYZܳ BXTMBCTীࢲ݅ٚۄ࠳۞ܻ۽߸҃
ݶજѷ݅ƕƕ
ޙઁоթইणפ
None
IUUQTUFTUSJEJJP IUUQTGFBUVSF"UFTUSJEJJP IUUQTTUBUJDGFBUVSF"UFTUSJEJJP IUUQTTFMFDUGFBUVSF"UFTUSJEJJP IUUQTBENJOGFBUVSF"UFTUSJEJJP ੋૐࢲ ߊә߉חѱޤоয۵Ҋ IUUQTGFBUVSF#UFTUSJEJJP IUUQTTUBUJDGFBUVSF#UFTUSJEJJP IUUQTTFMFDUGFBUVSF#UFTUSJEJJP
IUUQTBENJOGFBUVSF#UFTUSJEJJP
%ZOBNJD8JMEDBSE $FSUJGJDBUFT QTӒրઁоࠢੋܴੑפѨ࢝೧ب߹Ѣউա৬ਃ
աܴѐߊҙ۲झೖੋؘ٘ೠহਵݶ ೲೡөࠊળ࠺೮णפ
"-#ܻझցীੋૐࢲ୶о ecs-cli compose service up aws acm request-certificate --domain-name
${VHOST} --validation-method DNS --subject-alternative-names *.${VHOST} while true do sleep 2.5s OPTIONS=`aws acm describe-certificate --certificate-arn ${ARN} | jq .Certificate.DomainValidationOptions` [ `echo ${OPTIONS} | jq 'map(select(.ResourceRecord)) | length'` -gt 0 ] && break; done BATCH=`echo ${OPTIONS} | jq .[0] | jq --arg action UPSERT -f batch.jq` aws route53 change-resource-record-sets --change-batch "${BATCH}" ࢲ࠳بݫੋFDTTFSWJDFTࢤࢿ "$.ੋૐࢲߊәਃ بݫੋࣗਬӂੋૐ ੋૐࢲߊә৮ܐӝ aws acm wait certificate-validated --certificate-arn ${ARN} aws elbv2 add-listener-certificates --listener-arn ${LISTENER} --certificates CertificateArn=${ARN}
ীਃ
хࢎפ