๊ด€๋ฆฌ ๋ฉ”๋‰ด

ruriruriya

[AWS] EC2 - ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„ ํ™˜๊ฒฝ์„ค์ •ํ•˜๊ธฐ(์•„๋‚˜์ฝ˜๋‹ค, ํŒŒ์ด์ฌ, ์ŠคํŠธ๋ฆผ๋ฆฟ) ๋ณธ๋ฌธ

๐Ÿ–ฅ๏ธAWS/EC2

[AWS] EC2 - ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„ ํ™˜๊ฒฝ์„ค์ •ํ•˜๊ธฐ(์•„๋‚˜์ฝ˜๋‹ค, ํŒŒ์ด์ฌ, ์ŠคํŠธ๋ฆผ๋ฆฟ)

๋ฃจ๋ฆฌ์•ผใ…‘ 2023. 11. 22. 20:34
๋ฐ˜์‘ํ˜•

AWS EC2 ์ธ์Šคํ„ด์Šค์—์„œ ์•„๋‚˜์ฝ˜๋‹ค๋ฅผ ์„ค์น˜ํ•˜๊ณ  ํŒŒ์ด์ฌ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๊ณ , Streamlit์„ ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1. ์•„๋‚˜์ฝ˜๋‹ค ์„ค์น˜

์•„๋‚˜์ฝ˜๋‹ค ๋‹ค์šด๋กœ๋“œ ์‚ฌ์ดํŠธ์— ๋“ค์–ด๊ฐ€๋ฉด ์œˆ๋„์šฐ ๋‹ค์šด๋กœ๋“œ ๋ฒ„ํŠผ ๋ฐ‘์—
ํŽญ๊ท„ ๊ทธ๋ฆผ์ด ์žˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ๋ฆฌ๋ˆ…์Šค ๋ฒ„์ „ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์˜๋ฏธํ•˜๋ฏ€๋กœ ํด๋ฆญ!

https://www.anaconda.com/download

 

Free Download | Anaconda

Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com

 

๋‚˜์˜ AWS EC2 ์„œ๋ฒ„ ์‚ฌ์–‘์€ 64๋น„ํŠธ๋กœ
'64-Bit (x86) Installer (1015.6MB)' ์— ์ปค์„œ๋ฅผ ๋Œ€๊ณ  ์˜ค๋ฅธ์ชฝ ๋งˆ์šฐ์Šค๋ฅผ ํด๋ฆญํ•˜์—ฌ
๋งํฌ ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ•œ๋‹ค.

 

์ด์ „์— ์„ค์น˜ํ–ˆ๋˜ PuTTY ํ„ฐ๋ฏธ๋„๋กœ ์ ‘์†ํ•˜์—ฌ
pwd ๋ช…๋ น์–ด๋กœ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ ํ™•์ธ ํ›„
์•„๋ž˜ wget ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์•„๊นŒ ๋ณต์‚ฌํ–ˆ๋˜ ๋งํฌ๋ฅผ ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•˜์—ฌ ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฅด๊ณ  ์‹คํ–‰ํ•œ๋‹ค.

$ wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh

* ์ด ๋•Œ ๋ฆฌ๋ˆ…์Šค์—์„œ ๋ถ™์—ฌ๋„ฃ๊ธฐ๋Š” [shift]+[insert]
* ๋ฆฌ๋ˆ…์Šค ํŒŒ์ผ, ๋””๋ ‰ํ† ๋ฆฌ ๋“ฑ ์ž๋™์™„์„ฑ ๋‹จ์ถ•ํ‚ค : Ana..์“ฐ๊ณ  [Tap] ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ์ž๋™ ์™„์„ฑ์ด ๋œ๋‹ค.

ํŒŒ์ผ ์„ค์น˜ ๋˜์—ˆ๋Š”์ง€ ls -al ๋ช…๋ น์–ด๋กœ ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ ๋ชจ๋“  ํŒŒ์ผ์„ ํ™•์ธํ•œ๋‹ค.
ํ™•์ธํ•ด ๋ณด๋ฉด 'Anaconda3-2023.09-0-Linux-x86_64.sh'' ํŒŒ์ผ์ด ํ™•์ธ๋œ๋‹ค.

* ์ด ๋•Œ ls -al ๋ช…๋ น์–ด ๋‹จ์ถ•ํ‚ค : ll

sh ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ Anaconda3-2023.09-0-Linux-x86_64.sh  ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰

sh Anaconda3-2023.09-0-Linux-x86_64.sh

 

[Space]ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด more ํ•œ์žฅ ์”ฉ ๋„˜์–ด๊ฐ„๋‹ค.

๊ทธ ๋‹ค์Œ Do you accept the license terms? ๋ผ๊ณ  ๋‚˜์˜ค๋ฉด
yes ๋ผ๊ณ  ์ž…๋ ฅํ•˜๊ณ  [Enter] ํ‚ค

[/home/ํด๋” ์ด๋ฆ„/anaconda3] >>> ์ด๋ ‡๊ฒŒ ๋‚˜์˜ค๋ฉด [Enter] ํ‚ค

๋‹ค์Œ์—”
You can undo this by running 'conda init --reverse $SHEEL'? [yes|no]
[no] >>> ๋ผ๋Š” ๋ฌธ๊ตฌ์—๋Š”

yes ์ž…๋ ฅํ•˜๊ณ  [Enter]ํ‚ค (๋ฐ˜๋“œ์‹œ! Enter ํ‚ค๋งŒ ๋ˆ„๋ฅด๋ฉด ์„ค์น˜๊ฐ€ ์•ˆ๋œ๋‹ค....)

๊ทธ ๋‹ค์Œ์—” ์•„๋‚˜์ฝ˜๋‹ค3๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์„ค์น˜๋˜์—ˆ๋‹ค๊ณ  ๋‚˜์˜จ๋‹ค.

๊ทธ๋ฆฌ๊ณ  PuTTY ๋ฆฌ๋ˆ…์Šค ํ„ฐ๋ฏธ๋„ ์ฐฝ์„ ๋„๊ณ  ๋‹ค์‹œ ์—ฐ๊ฒฐํ•œ๋‹ค.

login as : ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๋ช… (Enter)

๊ทธ๋Ÿฌ๋ฉด (base) ๊ฐ€ ์ƒ๊ธด ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋”๋ณด๊ธฐ

์•„๋‚˜์ฝ˜๋‹ค๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ๊ฐ€์ƒ ํ™˜๊ฒฝ์ธ (base)๋Š” ์•„๋‚˜์ฝ˜๋‹ค๊ฐ€ ์„ค์น˜๋œ ํ›„ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋œ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค.  ์ด ๊ฐ€์ƒ ํ™˜๊ฒฝ์€ ์•„๋‚˜์ฝ˜๋‹ค์— ํฌํ•จ๋œ ๊ธฐ๋ณธ ํ™˜๊ฒฝ์œผ๋กœ์„œ, ์„ค์น˜๋œ Python ๋ฐ ๋‹ค์–‘ํ•œ ํŒจํ‚ค์ง€๋“ค์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ์•„๋‚˜์ฝ˜๋‹ค๋ฅผ ์„ค์น˜ํ•˜๋ฉด (base) ๊ฐ€์ƒ ํ™˜๊ฒฝ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ํ„ฐ๋ฏธ๋„ ๋˜๋Š” ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ์—์„œ Python ๋ฐ ๊ด€๋ จ ํŒจํ‚ค์ง€๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. (base) ํ™˜๊ฒฝ ์™ธ์—๋„ ์ถ”๊ฐ€์ ์ธ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ๋…๋ฆฝ์ ์ธ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์•„๋‚˜์ฝ˜๋‹ค ์„ค์น˜ ์™„๋ฃŒ!

๋งŒ์•ฝ์— ์•„๋‚˜์ฝ˜๋‹ค๊ฐ€ ์ž˜ ์„ค์น˜ ์•ˆ๋˜์—ˆ๋‹ค๋ฉด

์•„๋‚˜์ฝ˜๋‹ค3 ๋””๋ ‰ํ† ๋ฆฌ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ์žฌ ์„ค์น˜ ํ›„ ๋‹ค์‹œ ํ•ด๋ณธ๋‹ค.

๋””๋ ‰ํ† ๋ฆฌ ์‚ญ์ œ ๋ฐฉ๋ฒ• : rm -rf anaconda3/ (Enter)

2. ํŒŒ์ด์ฌ ๊ฐ€์ƒํ™˜๊ฒฝ ๋งŒ๋“ค๊ธฐ

์šฐ๋ฆฌ๊ฐ€ AWS ์„œ๋ฒ„์— ์˜ฌ๋ฆฌ๋ ค๊ณ  ํ•˜๋Š” ๊ฒƒ์€ ์ŠคํŠธ๋ฆผ๋ฆฟ์œผ๋กœ ๋งŒ๋“  ์›น ๋Œ€์‹œ๋ณด๋“œ๊ธฐ์—
์ŠคํŠธ๋ฆผ๋ฆฟ์€ ํŒŒ์ด์ฌ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ํŒŒ์ด์ฌ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ๋จผ์ € ๋งŒ๋“ค์–ด์ค˜์•ผ ํ•œ๋‹ค.

๋จผ์ € ํŒŒ์ด์ฌ ๋ฒ„์ „์„ ํ™•์ธํ•˜๊ณ 
ํŒŒ์ด์ฌ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ๋งŒ๋“œ๋Š” ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์ค€๋‹ค.

$conda create -n ๊ฐ€์ƒํ™˜๊ฒฝ์ด๋ฆ„ python=3.9 openssl numpy scipy matplotlib ipython scikit-learn pandas pillow jupyter seaborn

๊ทธ๋ฆฌ๊ณ  [Enter] ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด

python -V

$conda create -n ๊ฐ€์ƒํ™˜๊ฒฝ์ด๋ฆ„ python=3.9 openssl numpy scipy matplotlib ipython scikit-learn pandas pillow jupyter seaborn

๊ฐ€์ƒ ํ™˜๊ฒฝ์ด ๋งŒ๋“ค์–ด์ง€๋ฉด์„œ
Proceed ([y]/n) ? ๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ๋œจ๋ฉด
y ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  [Enter]ํ‚ค๋ฅผ ๋ˆ„๋ฅธ๋‹ค.

์„ค์น˜๊ฐ€ ์™„๋ฃŒ๊ฐ€ ๋˜๋ฉด

$ conda cativate ๊ฐ€์ƒํ™˜๊ฒฝ์ด๋ฆ„ ์„ ์ž…๋ ฅํ•˜๊ณ  [Enter]ํ‚ค๋ฅผ ๋ˆ„๋ฅธ๋‹ค.

$ conda activate ๊ฐ€์ƒํ™˜๊ฒฝ์ด๋ฆ„
๋”๋ณด๊ธฐ

conda activate ๋ช…๋ น์–ด๋Š” Conda๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑํ•œ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ช…๋ น์–ด๋‹ค. ์ด ๋ช…๋ น์–ด๋Š” ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ํ™œ์„ฑํ™”ํ•˜์—ฌ ํ•ด๋‹น ํ™˜๊ฒฝ์— ํฌํ•จ๋œ Python ๋ฒ„์ „๊ณผ ํŒจํ‚ค์ง€๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

 

๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋‚˜๋ฉด ํ„ฐ๋ฏธ๋„ ์ฐฝ์— ๋‚˜ํƒ€๋‚  ๋•Œ
๋งจ ์•ž์ด (๊ฐ€์ƒํ™˜๊ฒฝ์ด๋ฆ„)์œผ๋กœ ๋ฐ”๋€ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

ํŒŒ์ด์ฌ ๊ฐ€์ƒํ™˜๊ฒฝ ์„ค์ • ๋.

 

3. ์ŠคํŠธ๋ฆผ๋ฆฟ(Streamlit) ํ™˜๊ฒฝ์„ค์ •

์ŠคํŠธ๋ฆผ๋ฆฟ ํ™˜๊ฒฝ์„ค์ •์„ ํ•˜๊ธฐ ์ „์— ๊ผญ ์ŠคํŠธ๋ฆผ๋ฆฟ ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ ์„ค์น˜๊ฐ€ ์ด๋ฃจ์–ด์ง€๋Š” ์ง€ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํ™•์ธํ•˜๊ณ  ์„ค์น˜ ํ•ด์•ผ ๋œ๋‹ค.

 ํ™•์ธ ํ›„ ํ„ฐ๋ฏธ๋„ ์ฐฝ์— ์•„๋ž˜์™€ ๊ฐ™์ด ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์ค€๋‹ค.
$ pip install streamlit

$ pip install streamlit

streamlit hello (Enter) ์ž…๋ ฅํ•˜๋ฉด ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” ์ฃผ์†Œ์™€ ์™„๋ฃŒ ๋˜์—ˆ๋‹ค๋Š” ๋ฉ”์„ธ์ง€๊ฐ€ ๋‚˜์˜จ๋‹ค.

$ streamlit hello

External URL๋กœ ์ ‘์†ํ•˜๋ฉด ์ผ๋‹จ ์ ‘์†์ด ์•ˆ๋œ๋‹ค.

์ด์œ ๋Š” ๋ฐฉํ™”๋ฒฝ ๋•Œ๋ฌธ์— ๋„คํŠธ์›Œํฌ๋ฅผ ๋ง‰๋Š”๋‹ค.
SSH(ํฌํŠธ 22)๋Š” ์›๊ฒฉ์œผ๋กœ ์ธ์Šคํ„ด์Šค์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํฌํŠธ๋กœ ๋ณด์•ˆ์ƒ์˜ ์ด์œ ๋กœ SSH ํฌํŠธ๋Š” ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์—ด๋„๋ก ๊ถŒ์žฅํ•œ๋‹ค.

๊ทธ๋ž˜์„œ ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด์„  ํ„ฐ๋ฏธ๋„ ์ฐฝ์— ๋œจ๋Š” port ๋ฒˆํ˜ธ๋กœ ๊ณต๊ฐœํ•ด ์ค˜์•ผ ํ•œ๋‹ค.

 

AWS EC2 ์ธ์Šคํ„ด์Šค์˜ ํ•ด๋‹นํฌํŠธ๋ฅผ ๊ณต๊ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ํฌ์ŠคํŒ…์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

https://ruriruriya.tistory.com/60

 

[AWS] EC2 - ์ธ์Šคํ„ด์Šค์˜ ํ•ด๋‹นํฌํŠธ๋ฅผ ๊ณต๊ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•

์ง€๋‚œ ๋ฒˆ์— AWS EC2 ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„ ์ŠคํŠธ๋ฆผ๋ฆฟ(Streamlit) ํ™˜๊ฒฝ์„ค์ • ํ›„ External URL์˜ ํฌํŠธ๋กœ ์ ‘์† ์‹œ '์‚ฌ์ดํŠธ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Œ' ์ด๋ผ๊ณ  ๋ฉ”์„ธ์ง€๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— ๋–ด๋‹ค. ์›์ธ์€ ๋ฐฉํ™”๋ฒฝ์œผ๋กœ ๋„คํŠธ์›Œํฌ๋ฅผ ๋ง‰์•„์„œ ์ƒ

ruriruriya.tistory.com

 

๋ฐ˜์‘ํ˜•