$30 off During Our Annual Pro Sale. View Details »
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
The Art of Re-Architecture - Droidcon India 2025
siddroid
0
120
実はマルチモーダルだった。ブラウザの組み込みAI🧠でWebの未来を感じてみよう #jsfes #gemini
n0bisuke2
3
1.3k
リリース時」テストから「デイリー実行」へ!開発マネージャが取り組んだ、レガシー自動テストのモダン化戦略
goataka
0
140
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
PRO
0
160
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
150
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
570
[AtCoder Conference 2025] LLMを使った業務AHCの上⼿な解き⽅
terryu16
3
630
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
39
26k
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
130
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
140
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
210
生成AI時代を勝ち抜くエンジニア組織マネジメント
coconala_engineer
0
570
Featured
See All Featured
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
68
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
400
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
How to Talk to Developers About Accessibility
jct
1
83
Color Theory Basics | Prateek | Gurzu
gurzu
0
150
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
29
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
330
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
0
950
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
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ੋझఢझٜਸ؊࢚ࢎਊೞঋਵनݶઁѢ೧ࣁਃ