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
97
AWS에 Flask로 만든 서비스 올려보기
OSS AWS 핸즈온 강의에서 사용한 발표자료입니다. 간단한 이미지 스토리지 서비스를 AWS에 런칭해보면서 필요한 AWS들을 경험해봅니다.
toughrogrammer
November 19, 2016
Tweet
Share
Other Decks in Programming
See All in Programming
Scalable Customer Journey Orchestration (CJO)
lewuathe
0
420
CA.swift19 恋するAIアプリ開発の裏側
oskmr
0
380
Goのmultiple errorsについて (2024年4月版)
syumai
4
1.2k
敵対的ポイフル
futabato
0
130
Amazon SQSコンシューマー疎結合への旅 - 出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 #3
quiver
0
300
AppRouter Panel Talk
yosuke_furukawa
PRO
1
460
Anthropic Cookbook のおすすめレシピ
schroneko
7
1.1k
Git Rebase
bkuhlmann
11
1.6k
Tailwind CSSを本気でカスタマイズする方法
fsubal
14
5.5k
Site Reliability Engineering for GMO
pyama86
8
1.1k
Apache Hive 4 on Treasure Data
ryukobayashi
1
420
検証も兼ねて個人開発でHonoとかと向き合った話
hanetsuki
1
1.3k
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
7
3.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
261
12k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
Designing on Purpose - Digital PM Summit 2013
jponch
111
6.5k
Raft: Consensus for Rubyists
vanstee
133
6.3k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
222
21k
Building a Scalable Design System with Sketch
lauravandoore
457
32k
Web development in the modern age
philhawksworth
203
10k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
358
22k
Music & Morning Musume
bryan
41
5.6k
What the flash - Photography Introduction
edds
64
11k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
11
1k
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ੋझఢझٜਸ؊࢚ࢎਊೞঋਵनݶઁѢ೧ࣁਃ