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
AWS에 Flask로 만든 서비스 올려보기
Search
toughrogrammer
November 19, 2016
Programming
0
100
AWS에 Flask로 만든 서비스 올려보기
OSS AWS 핸즈온 강의에서 사용한 발표자료입니다. 간단한 이미지 스토리지 서비스를 AWS에 런칭해보면서 필요한 AWS들을 경험해봅니다.
toughrogrammer
November 19, 2016
Tweet
Share
Other Decks in Programming
See All in Programming
Architectural Extensions
denyspoltorak
0
300
CSC307 Lecture 03
javiergs
PRO
1
490
Apache Iceberg V3 and migration to V3
tomtanaka
0
170
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
2.5k
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
7.5k
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
210
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
180
Fluid Templating in TYPO3 14
s2b
0
130
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
180
Raku Raku Notion 20260128
hareyakayuruyaka
0
340
16年目のピクシブ百科事典を支える最新の技術基盤 / The Modern Tech Stack Powering Pixiv Encyclopedia in its 16th Year
ahuglajbclajep
5
1k
Featured
See All Featured
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
54
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
110
Paper Plane
katiecoart
PRO
0
46k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
120
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
The SEO Collaboration Effect
kristinabergwall1
0
350
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
380
For a Future-Friendly Web
brad_frost
182
10k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
920
The Mindset for Success: Future Career Progression
greggifford
PRO
0
240
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Transcript
"84 झషܻࢲ࠺झ ѐߊೞݴ҃೧ࠁӝ !UPVHISPHSBNNFS
ݾର ↟ "84рۚࣗѐ ↟ &$ੋझఢझࢤࢿ߂ѐߊജ҃ࢸ ↟ 4ߡఉࢤࢿ ↟ 3%4ੋझఢझࢤࢿ ↟
ࢲ࠺झࢸറزഛੋ
"84рۚࣗѐ
"84೨ब
"84೨ब ҙܻ࠺ਊх ܻझҙܻ
ҙܻ࠺ਊҗܻझ ↟ ױࣽஹೊఠоѺਵ۽ٮݶ&$ੋझఢझо؊࠺ऱࠁ ↟ UNJDSPੋझఢझחਘਗب ↟ ࢲߡஹೊఠܳݏ୶ݶ֙݅ॄب؊۴ೞҊ ࢿמب؊જ ↟ ೞ݅ӒࢲߡܳҙܻೞחੋѤ࠺
ࢲߡࢿמࠗ೧ ҃ цӝࢲߡࢿמҗ೧ח҃ী೧ࢲח ↟ ۪ܳਊೞחѪҗ࠺तೞҊࢤпೡࣻ
&$ ↟ ۄ٘ীࢲஹೊਕӏݽܳਬ۽߸҃ೡࣻ חਢࢲ࠺झ ↟ ৈ۞о04߂ஹೊܻࣗझীೠನҚઁযӂ ੋۄઁҕ
&$ ↟ "84ؘఠࣃఠীҭ݆ஹೊఠоҊ Ӓৈ۞ ஹೊఠਗਸ࠽۰ॳחѐ֛ੑפ ↟ ੋझఢझܳ݅٘חࣽрஹೊఠܳѪҗэणפ ↟ ਗېࢲߡࣁೞ؍Ѫٜۢ݅যੋझఢझীജ҃ࢸ ೧ࢲॳݶؾפ
&$ܳॳחਬ ↟ ઁ݃ա݆ࢲߡоਃೡঌࣻহחؘ &$ܳ ਊೞݶਃೠ݅ఀੋझఢझٜܳ݅যࢲॳѢաহগݶغ ۽ࢲߡܳऔѱטܻѢաੌࣻѱؾפ ↟ ஹೊౠച ݫݽܻౠച١ৈ۞оౠࢿੋझఢझ ਗೞחਬഋੋझఢझٜܳ݅যࢲॳݶؾפ
↟ ੋۄ৬ҙ۲ػࠗ࠙ীযѨૐغযਵ۽ҙܻ࠺ਊ ژೠծࣻणפ
4 ↟ ਢࢲ࠺झੋఠಕझܳా೧ؘఠܳ߂Ѩ࢝ೡࣻ חёझషܻ ↟ ࢎਊীٮۄࢲ݅࠺ਊਸࠛ ୭ࣗਃӘաࢸ࠺ਊ9
4ܳॳחਬ ↟ &$झషܻ  ࠁ۴ೠ࠺ਊਵ۽ਊਸਊ ೡࣻणפ ↟ ॵ݅ఀ݅࠺ਊҳؾפ ↟ ղҳࢿ
җоਊࢿ ো୭ ڪযժפ ↟ ؘఠীೠুࣁझઁয١ীೠҙܻبಞܻೞѱоמ פ
3%4 ↟ ۄ٘ীࢲҙ҅ഋؘఠ߬झࢸ ߂ഛ ↟ "VSPSB 0SBDMF 42-4FSWFS 1PTUHSF42- .Z42-
.BSJB%#١ࣼೠؘఠ߬झূઁҕ
3%4ܳॳחਬ ↟ ࢎप&$ܳਊ೧ࢲؘఠ߬झࢲߡҳࢿоמפ ↟ ೞ݅3%4ܳॳݶࢿמݽפఠ݂ زߔস ";١ নೠಞܻೠӝמٜਸਊೡࣻणפ ↟ &$৬݃ଲо۽ஹೊࢿמҗझషܻઑਸಞೞѱ
ೡࣻणפ
"84ੋझఢझٜਸٜ݅Ҋ ࢲ࠺झ۠டਸ೧ࠇद
ౚషܻաݶ۠ࢲ࠺झܳ"84ীৢܻѱؾפ
&$ੋझఢझࢤࢿ
&$ੋझఢझࢤࢿ
".*ࢶఖ
ੋझఢझఋੑࢶఖ
ࠁউӒܛࢸ
झషܻࢸ
కӒࢸ కӒחౠ࠙ܨ١সਸਤ೧ࢎਊؾפ
ࢸ৮ܐ
&$ఃಕয۽٘ ఃಕযহח&$ী44)ܳৌࣻহਵפԙ۽٘೧ঠפ
&$ࢤࢿ৮ܐ
 ↟ &$оઁҕೞחਗীझషܻחನೣغঋणפ ↟ न &MBTUJD#MPDL4UPSF ܳ&$ੋझఢझী݃ೞ ৈࢎਊפ

&*1 ↟ &$ੋझఢझחݥदெٸ݃࢜۽*1ܳೡ ߉णפ ↟ ӒٸӒٸܲ֎ਕ࠺ܳоஹೊఠীੋझఢ झоप೯غӝٸޙੑפ ↟ Ҋػ*1ܳࠗৈೞӝਤ೧&*1 &MBTUJD*1
ܳࢎਊפ
&*1ࢸ
&*1ࢸ
&*1ࢸ
&*1ࢸ
&*1ࢸ
&*1ࢸ
&*1ࢸ
&$ѐߊജ҃ࢸ
&$ীࣘ • chmod 0400 `PEM_FILE_PATH` • ssh -i PEM_FILE_PATH ubuntu@EC2_IP
↟ ਦبীࢲQVUUZܳਊೞח҃ܐଵҊ ↟ IUUQEPDTBXTBNB[PODPNLP@LS"84&$MBUFTU6TFS(VJEFQVUUZIUNM
ѐߊജ҃ࢸ ↟ ੌ߈ੋࢲߡীѐߊജ҃ࢸҗ࠺तפ ↟ ࢸೡജ҃nginx + uwsgi + flask(python)
ಁఃࢸ $ sudo apt-get update $ sudo apt-get install git
gcc make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils libxml2-dev libxslt1-dev language-pack-ko python-dev uwsgi-plugin-python3 nginx nodejs npm $ sudo ln -s /usr/bin/nodejs /usr/bin/node # use command as node $ sudo npm install -g bower # install front-end package manager
QZFOWࢸ߂QZUIPOࢸ $ git clone https://github.com/yyuu/pyenv.git ~/.pyenv $ echo 'export PYENV_ROOT="$HOME/.pyenv"'
>> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile $ echo 'source ~/.bashrc' >> ~/.bash_profile # load bashrc $ source ~/.bash_profile $ pyenv install 3.4.3 $ pyenv global 3.4.3 # set global python version as 3.4.3
۽ંۿ $ git clone https://github.com/growingdever/imgtoss $ cd imgtoss # dive
to project directory $ pyvenv venv # create virtual environment $ source venv/bin/activate # turn on virtual environment $ pip install -r requirements.txt # install python libraries $ bower install # install front-end libraries
)FMMP8PSME $ git checkout helloworld $ python server.py
4ߡఉࢤࢿ
4ݫੑ
ߡఉࢤࢿ ࢎਊೡߡఉܴ
ߡఉࢤࢿഛੋ
3%4ੋझఢझࢤࢿ
ؘఠ߬झূࢶఖ
ജ҃ࢶఖ
ࣁࠗࢸ
ࣁࠗࢸ ਃࢤࢿറ3%471$4FDVSJUZӒܛী&$ੋझఢझ71$4FDVSJUZӒܛ୶оਃ
ࣁࠗࢸ
ࣁࠗࢸ
ࢤࢿ৮ܐ
ࢤࢿ৮ܐ
ࢤࢿػ3%4ؘఠ߬झഛੋ 5FTU$POOFDUJPOਸܼೞৈࣘੜغחഛੋ 3%4ੋझఢझFOEQPJOUীࢲQPSU ܳࡒѪ
*".ࢤࢿ
*". ↟ ܖ҅ীܲࢎਊٜਸ୶оೞৈпࢎਊ߹ӂೠਸ ࢸೡࣻ ↟ ۄ࠳۞ܻ۽ઁҕغח"84ਊীਃೠࠁউૐݺ "DDFTT,FZ*% 4FDSFU"DDFTT,FZ ઁҕ
*".ݫੑ
*".ࢎਊࢤࢿ
*".ࢎਊࢤࢿ
*".ࢎਊࢤࢿ ಞܳਤ೧୭ҊҙܻӂೠࢎਊରറԙೠӂೠਸࢎਊೡѪ
*".ࢎਊࢤࢿ
*".Ѻૐݺഛੋ 4IPXߡౡਸׂ۞4FDSFU"DDFTT,FZഛੋ ٸٮ۽೧فঋਵݶदחࠅࣻহ
ࢸসؘ $ git checkout master $ vi config.py $ #
update DATABASE_HOST, DATABASE_USERNAME, DATABASE_PASSWORD, DEFAULT_DATABASE $ # update AWS_S3_BUCKET_NAME $ # update AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
03.ప࠶ࢤࢿ $ export FLASK_APP=$PWD/server.py $ flask initdb
ప࠶ࢤࢿഛੋ
ߓನೞӝ $ sudo ln -s /home/ubuntu/imgtoss/imgtoss.nginx.conf /etc/nginx/sites- enabled/imgtoss.nginx.conf # nginx
server configuration $ vi imgtoss.nginx.conf $ # update server_name $ sudo ln -s /home/ubuntu/imgtoss/imgtoss.systemd.conf /etc/systemd/ system/imgtoss.service # daemonize $ sudo systemctl daemon-reload $ sudo systemctl start imgtoss # start daemon $ sudo service nginx stop $ sudo service nginx start
130'*5
ߣіࠛীࠃইݡוۄҊࢤೞ࣑णפ بঋҗӘੌযաঋب۾ࢤࢿೠ&$ 4 3%4ੋझఢझٜਸ؊࢚ࢎਊೞঋਵनݶઁѢ೧ࣁਃ