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
98
AWS에 Flask로 만든 서비스 올려보기
OSS AWS 핸즈온 강의에서 사용한 발표자료입니다. 간단한 이미지 스토리지 서비스를 AWS에 런칭해보면서 필요한 AWS들을 경험해봅니다.
toughrogrammer
November 19, 2016
Tweet
Share
Other Decks in Programming
See All in Programming
Porting a visionOS App to Android XR
akkeylab
0
680
The Modern View Layer Rails Deserves: A Vision For 2025 And Beyond @ RailsConf 2025, Philadelphia, PA
marcoroth
2
730
商品比較サービス「マイベスト」における パーソナライズレコメンドの第一歩
ucchiii43
0
180
Azure AI Foundryではじめてのマルチエージェントワークフロー
seosoft
0
200
レトロゲームから学ぶ通信技術の歴史
kimkim0106
0
110
Vibe Codingの幻想を超えて-生成AIを現場で使えるようにするまでの泥臭い話.ai
fumiyakume
10
4.3k
DMMを支える決済基盤の技術的負債にどう立ち向かうか / Addressing Technical Debt in Payment Infrastructure
yoshiyoshifujii
3
410
AIと”コードの評価関数”を共有する / Share the "code evaluation function" with AI
euglena1215
1
180
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
0
260
NEWT Backend Evolution
xpromx
1
140
20250704_教育事業におけるアジャイルなデータ基盤構築
hanon52_
5
1.1k
おやつのお供はお決まりですか?@WWDC25 Recap -Japan-\(region).swift
shingangan
0
140
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Designing for Performance
lara
610
69k
A designer walks into a library…
pauljervisheath
207
24k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Code Reviewing Like a Champion
maltzj
524
40k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
21
1.3k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
YesSQL, Process and Tooling at Scale
rocio
173
14k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Testing 201, or: Great Expectations
jmmastey
43
7.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ੋझఢझٜਸ؊࢚ࢎਊೞঋਵनݶઁѢ೧ࣁਃ