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
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
250
AIと”コードの評価関数”を共有する / Share the "code evaluation function" with AI
euglena1215
1
160
初学者でも今すぐできる、Claude Codeの生産性を10倍上げるTips
s4yuba
16
11k
Hack Claude Code with Claude Code
choplin
4
2k
ruby.wasmで多人数リアルタイム通信ゲームを作ろう
lnit
3
470
Hypervel - A Coroutine Framework for Laravel Artisans
albertcht
1
120
Claude Code + Container Use と Cursor で作る ローカル並列開発環境のススメ / ccc local dev
kaelaela
9
5k
プロダクト志向なエンジニアがもう一歩先の価値を目指すために意識したこと
nealle
0
130
Team operations that are not burdened by SRE
kazatohiei
1
310
チームのテスト力を総合的に鍛えて品質、スピード、レジリエンスを共立させる/Testing approach that improves quality, speed, and resilience
goyoki
5
870
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
3
760
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
highu
0
120
Featured
See All Featured
Unsuck your backbone
ammeep
671
58k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Into the Great Unknown - MozCon
thekraken
40
1.9k
Making Projects Easy
brettharned
116
6.3k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
KATA
mclloyd
30
14k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
Rebuilding a faster, lazier Slack
samanthasiow
82
9.1k
Docker and Python
trallard
44
3.5k
The World Runs on Bad Software
bkeepers
PRO
69
11k
Practical Orchestrator
shlominoach
189
11k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
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ੋझఢझٜਸ؊࢚ࢎਊೞঋਵनݶઁѢ೧ࣁਃ