SSH(Secure Shell) ์„ ํ†ตํ•ด VM(Virtual Machine)์— ๋‚˜๋งŒ์˜ ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด ๋ณด์ž


1. ์™ธ๋ถ€ IP ์ฃผ์†Œ ๊ณ ์ • ์˜ˆ์•ฝํ•˜๊ธฐ

Virtual Machine ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋œ ๋ชจ์Šต๊ณผ ์„ธ๋ถ€์ •๋ณด

VM ์ธ์Šคํ„ด์Šค ์„ธ๋ถ€์ •๋ณด์— ์žˆ๋Š” ์ง๋ ฌ ํฌํŠธ1(์ฝ˜์†”) ์— ๋“ค์–ด๊ฐ€๋ฉด

ํ•ด๋‹น ์ธ์Šคํ„ด์Šค๊ฐ€ ์–ด๋–ค ์‹์œผ๋กœ ๋นŒ๋“œ๋˜์—ˆ๋Š”์ง€ ์ƒ์„ธํ•œ ๋‚ด์šฉ์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.

 

๋งŒ์•ฝ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ œ๋Œ€๋กœ ์ƒ์„ฑ๋˜์—ˆ์ง€๋งŒ, ์›ํ•˜๋Š”๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด

์ฝ˜์†”์— ๋“ค์–ด๊ฐ€์„œ ํžŒํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”!

 

VPC ๋„คํŠธ์›Œํฌ ์•ˆ์˜ "์™ธ๋ถ€ IP ์ฃผ์†Œ" ์— ๋‚˜์™€์žˆ๋Š” ์„ธ๋ถ€ ์‚ฌํ•ญ

์™ธ๋ถ€ ์ฃผ์†Œ ์„ค์ •์„ ์œ„ํ•ด ๋„คํŠธ์›Œํ‚น - VPC ๋„คํŠธ์›Œํฌ - ์™ธ๋ถ€ IP์ฃผ์†Œ๋กœ ๋“ค์–ด๊ฐ€ ๋ด…์‹œ๋‹ค.

์œ„์—์„œ instance-1์˜ ๋‚ด๋ถ€ IP์™€ ๋”๋ถˆ์–ด ์™ธ๋ถ€ ์ฃผ์†Œ๊ฐ€ ๋‚˜ํƒ€๋‚˜ ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์–ด์š”.

ํ•˜์ง€๋งŒ ์ตœ์ดˆ VM์„ ์ƒ์„ฑํ•˜๊ฒŒ ๋˜๋ฉด, ํ•ด๋‹น ์™ธ๋ถ€ ์ฃผ์†Œ๋Š” ์ž„์‹œ๋กœ ์„ค์ • ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ฆ‰, ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋Š” ๋™์•ˆ ์ด ์ž„์‹œ ์ฃผ์†Œ๊ฐ€ ์‚ฌ๋ผ์งˆ ์ˆ˜๋„ ์žˆ๋Š” ๊ฒ๋‹ˆ๋‹ค.

 

๋งŒ์•ฝ ๋™์ผํ•œ IP๋ฅผ ์œ ์ง€์‹œํ‚ค๊ณ  ์‹ถ๋‹ค๋ฉด ๊ณ ์ •์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ๋„ ์ข‹์€ ๋ฐฉ๋ฒ•์ด์—์š”.

ํ•˜์ง€๋งŒ https ์ธ์ฆ์„ ํ•˜์ง€ ์•Š์€ http๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ์™ธ๋ถ€ ํ•ดํ‚น์— ์ทจ์•ฝํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•ฉ์‹œ๋‹ค.

์ด๋ฒˆ ์‹œ๋ฆฌ์ฆˆ์—์„œ๋Š” ์ด๊ฒƒ์„ ๊ณ ์ •์œผ๋กœ ๋ณ€๊ฒฝํ•ด์„œ ์‚ฌ์šฉํ•ด ๋ณผ ๊ฑฐ์—์š”.


2. SSH ์—์„œ CentOs ํŒจํ‚ค์ง€ ์„ค์น˜

๋‹ค์‹œ, VM ์ธ์Šคํ„ด์Šค๋กœ ๋Œ์•„๊ฐ€์„œ ์—ฐ๊ฒฐ - SSH๋ฅผ ํด๋ฆญ ํ•ด๋ด…์‹œ๋‹ค.

Secure shell์— ์ง„์ž… ํ•œ ๋ชจ์Šต.

์ƒ์„ฑ ์งํ›„์—๋Š” ์•„๋ฌด๋Ÿฐ ํŒŒ์ผ๋„ ์กด์žฌํ•˜์ง€ ์•Š์•„์š”.

๋จผ์ €, ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ํ„ฐ๋ฏธ๋„์— ์ฐจ๋ก€์ฐจ๋ก€๋กœ ์ž…๋ ฅํ•ด๋ด…์‹œ๋‹ค.

sudo -s
yum install -y
yum install npm
yum install git
yum install screen

์ด๋กœ ์ธํ•ด ํ„ฐ๋ฏธ๋„์—์„œ ๊ถŒํ•œ (์ตœ์ƒ์œ„ ๊ถŒํ•œ)์„ ํš๋“ํ•˜๊ณ ,

yum์ด๋ผ๋Š” centos์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ‚ค์ง€ ์„ค์น˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์š”.

๋˜ํ•œ, yum์„ ํ†ตํ•ด npm๊ณผ screen ๊ณผ git ์ด๋ผ๋Š” ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

 


> npm ์ด๋ž€? <

(Node Package Manager)

Javascript ์ฝ”๋“œ๋“ค์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด Node JS๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ,

์ด Node JS์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ค์ง€๋“ค์„ ๊ด€์žฅํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

npm install xx ๋ฅผ ํ†ตํ•ด Node JS์—์„œ ์‚ฌ์šฉํ•  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„

์™ธ๋ถ€์—์„œ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์–ด์š”!


> screen ์ด๋ž€ ? <

๋‹จ์ˆœํžˆ ๋งํ•˜์ž๋ฉด, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฐฝ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํŒจํ‚ค์ง€.

ํ„ฐ๋ฏธ๋„์—์„œ ์ถ”๊ฐ€์ ์ธ ์ฐฝ์„ ๋งŒ๋“ค์–ด, ํ„ฐ๋ฏธ๋„์„ ์ข…๋ฃŒํ•˜๋”๋ผ๋„

์ฝ”๋“œ๊ฐ€ ๊ณ„์†ํ•ด์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


> Git ์ด๋ž€? <

GitHub์— ์˜ฌ๋ ค๋†“์€ ๋ณธ์ธ์˜ ์ฝ”๋“œ๋‚˜ ์˜คํ”ˆ์†Œ์Šค๋“ค์„

๋ถˆ๋Ÿฌ์˜ค๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ค์ง€.



3. GitHub์˜ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์™€ ์„ค์น˜ํ•˜๊ธฐ

GitHub ๋“ฑ์— ๋ณธ์ธ์˜ ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์€ clone์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ต์‹œ๋‹ค.

๋งŒ์•ฝ GitHub์˜ ์‚ฌ์šฉ์ด ์ฒ˜์Œ์ด๋ผ๋ฉด, ์ผ๋‹จ ํšŒ์›๊ฐ€์ž…๋ถ€ํ„ฐ ํ•ด์•ผํ•ด์š”.

์ฝ”๋“œ๊ฐ€ ์—†๋Š” ์‚ฌ๋žŒ๋“ค์€, ํ„ฐ๋ฏธ๋„์— ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด๋ด…์‹œ๋‹ค.

git clone https://github.com/formicae/gcp_example.git
ls
cd gcp_example

์ •์ƒ์ ์œผ๋กœ ์™„๋ฃŒ๋˜๋ฉด ์œ„์™€ ๊ฐ™์€ ๊ทธ๋ฆผ์ด ํ‘œ์‹œ๋  ๊ฒƒ์ด๋‹ค.

์—ฌ๊ธฐ๊นŒ์ง€ ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด, ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅํ•ด๋ด…์‹œ๋‹ค

screen
screen -ls

screen์„ ํ†ตํ•ด์„œ ๋˜ ํ•˜๋‚˜์˜ ์ฐฝ์„ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ๋’ค, ์ด ํ™œ์„ฑํ™”๋œ screen์„ ํ™•์ธํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด

์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฑฐ์—์š”.

๋งˆ์ง€๋ง‰์œผ๋กœ, ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด ์ฝ”๋“œ๋ฅผ ์„œ๋ฒ„์—์„œ ๊ตฌ๋™์‹œ์ผœ ๋ด…์‹œ๋‹ค!

npm start

์œ„ ๊ทธ๋ฆผ์˜ ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜์˜ค๋ฉด, ์ œ๋Œ€๋กœ ์‹คํ–‰์ด ๋˜๊ณ  ์žˆ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

์ด์ œ SSH ํ„ฐ๋ฏธ๋„์„ ๋•์‹œ๋‹ค.

๋งŒ์•ฝ, Screen์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด SSH ํ„ฐ๋ฏธ๋„์„ ๋„๋Š” ์ˆœ๊ฐ„

์„œ๋ฒ„์— ์˜ฌ๋ฆฐ ์ฝ”๋“œ๋Š” ๊ทธ๋Œ€๋กœ ๋Š๊ฒจ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.

์ด ๋•Œ๋ฌธ์— Screen์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๋™์ž‘์‹œํ‚ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


4. ๋ฐฉํ™”๋ฒฝ ์„ค์ •ํ•˜๊ธฐ

๋งˆ์ง€๋ง‰์œผ๋กœ ์„œ๋ฒ„์˜ ๋™์ž‘์„ ํ™•์ธํ•˜๊ธฐ ์ „์—, ๋ฐฉํ™”๋ฒฝ์„ ์†๋ด ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋ฐฉํ™”๋ฒฝ์—์„œ, http์— ํ•ด๋‹นํ•˜๋Š” ๋ฐฉํ™”๋ฒฝ์„ ์ˆ˜์ •ํ•ฉ์‹œ๋‹ค.

PORT 3000์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ด์œ ๋Š”, Node JS ์ฝ”๋“œ์—์„œ

์ ‘์† ํ•  ์ˆ˜ ์žˆ๋Š” PORT๋ฅผ 3000์œผ๋กœ ์ œํ•œํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

PORT๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชฉ์ ์€ ๋‹ค์–‘ํ•œ๋ฐ, ์ถ”ํ›„์— ๋‹ค๋ค„ ๋ณผ๊ฒŒ์š”.

์ด์ œ ๋งˆ์ง€๋ง‰์œผ๋กœ, ์•„๊นŒ์ „์— ๊ณ ์ •์‹œํ‚จ ์™ธ๋ถ€ IP์—์„œ

PORT ๋ฒˆํ˜ธ 3000๋ฒˆ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์›น์—์„œ ์š”์ฒญ์„ ๋ณด๋‚ด๋ด…์‹œ๋‹ค.

์„œ๋ฒ„์—์„œ Screen์„ ํ†ตํ•ด Node JS ์ฝ”๋“œ๊ฐ€ ๋™์ž‘ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ,

GET method ๋ฅผ ํ†ตํ•ด ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜ํƒ€๋‚  ๊ฑฐ์—์š”.

์—ฌ๊ธฐ๊นŒ์ง€ ๊ธฐ๋ณธ์ ์ธ VM ์„œ๋ฒ„ ์ƒ์„ฑ์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!

 

์ฐธ๊ณ ) ๊ธ€์“ด์ด์˜ ์„œ๋ฒ„๋น„์šฉ์„ ์œ„ํ•ด ์œ„์˜ ์™ธ๋ถ€IP๋Š” ๋ง‰์•„๋†“์€ ์ƒํƒœ์ด๋ฏ€๋กœ

ํ•ด๋‹น IP์—์„œ ์‘๋‹ต์ด ์™œ ์—†๋Š”์ง€์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์€ ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ต๋‹ˆ๋‹ค! ใ…Žใ…Ž


์•ˆ๋…•ํ•˜์„ธ์š”?

์ฝ”๋”ฉํ•˜๋Š” ๋ชจ์ฃผ๋ถ€ ์ž…๋‹ˆ๋‹ค!

 


1. ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์˜ ์„ ํƒ

์ด ์‹œ๋ฆฌ์ฆˆ๋ฅผ ์‹œ์ž‘ํ•˜๊ฒŒ ๋œ ๋ชฉ์ ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

1. ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์„ ์‚ฌ์šฉ, ํ”Œ๋žซํผ์˜ ์žฅ์  ์ตํžˆ๊ธฐ

2. ์ž๊ธฐ ์ปดํ“จํ„ฐ๊ฐ€ ์•„๋‹Œ, ์„œ๋ฒ„๋ฅผ ๋นŒ๋ ค ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ

3. ์„œ๋ฒ„์— ์ž์‹ ์ด ๋งŒ๋“  ์ฝ”๋“œ ์˜ฌ๋ฆฌ๊ธฐ & ์ˆ˜์ •ํ•˜๊ธฐ

4. Load balancer๋ฅผ ์ด์šฉํ•˜์—ฌ ์š”์ฒญ ๋ถ„์‚ฐ์‹œํ‚ค๊ธฐ

 

๊ฐ„๋‹จํ•œ ์›น ํฌ๋กค๋ง๊ณผ ๊ฐ™์ด ์ง€์†์ ์ด์ง€ ์•Š๊ณ , ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŽ์ด ํ•„์š”๋กœ ํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋“ค์€

๊ฐ€๊ธ‰์  ๋ณธ์ธ ์ปดํ“จํ„ฐ๋กœ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ํ•ญ์‹œ ํŠน์ • ์ž‘์—…์„ ๊ธฐ๋‹ค๋ฆฌ๊ฑฐ๋‚˜ ๋ชฉ์ ๋ฌผ์„ Watchingํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š”?

์ด๋•Œ ์•„๋ž˜์˜ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

> Google - GCP (Google Cloud Platform)

> Amazon - AWS (Amazon Web Service)

> Microsoft - AZURE

 

ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ ์‚ฌ์šฉ์˜ ์žฅ์ ๊ณผ ๋‹จ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์š”.

์žฅ์  ๋‹จ์ 
์ƒ์„ฑ, ๊ด€๋ฆฌ๊ฐ€ ์‰ฝ๋‹ค ์„œ๋ฒ„ ๋น„์šฉ์ด ๋ฐœ์ƒํ•œ๋‹ค
์›ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ, ์„ฑ๋Šฅ ๋“ฑ์„ ์„ ํƒํ•˜์—ฌ ๋Œ€์—ฌํ•  ์ˆ˜ ์žˆ๋‹ค ์„ฑ๋Šฅ์ด ์ข‹์•„์งˆ์ˆ˜๋ก ์œ ์ง€๋น„์šฉ์ด ๋น„์‹ธ์ง„๋‹ค
๋ฌธ์„œํ™”๊ฐ€ ์ž˜ ๋˜์–ด์žˆ์–ด ๋”ฐ๋ผํ•˜๊ธฐ ์šฉ์ดํ•˜๋‹ค ์ผ๋ฐ˜ ๋ฆฌ๋ˆ…์Šค๋กœ ๋งŒ๋“ค ๋•Œ ๋ณด๋‹ค ์ž์œ ๋„๊ฐ€ ๋‚ฎ๋‹ค
์„œ๋ฒ„์˜ ์•ˆ์ •์„ฑ์— ๋Œ€ํ•œ ์ฑ…์ž„์„ ์ง€์ง€ ์•Š์•„๋„ ๋œ๋‹ค ๊ฐ€๋” ๊ตฌ๊ธ€/์•„๋งˆ์กด/๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ์„œ๋ฒ„์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๊ฐ„ํ˜น ์กด์žฌํ•œ๋‹ค
๊ฐ™์€ ํšŒ์‚ฌ์—์„œ ์ œ๊ณตํ•˜๋Š” Database, ๋ชจ๋“ˆ๋“ค์˜ ์—ฐ๊ฒฐ์ด ์šฉ์ดํ•˜๋‹ค -

์ด์ค‘์—์„œ๋„ ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ๋ฅผ ์„ ํƒํ•œ ์ด์œ ๋Š”,

์‚ฌ์šฉํ•  Database์ธ Firebase / PostgreSQL ๊ณผ์˜ ์—ฐ๋™์„ฑ์ด ๋›ฐ์–ด๋‚ฌ๊ณ 

ํ”Œ๋žซํผ์„ ์‚ฌ์šฉ ํ•  ๋‹น์‹œ ์™ธ์ฃผ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋˜, ์„œ๋ฒ„ ์•ˆ์ •์„ฑ์— ๋Œ€ํ•œ ์ฑ…์ž„์„ ๊ตฌ๊ธ€์— ๋– ๋„˜๊ธธ ์ˆ˜ ์žˆ์–ด์„œ

๊ท€์ฑ…์‚ฌ์œ ๋กœ๋ถ€ํ„ฐ ์ž์œ ๋กญ๋‹ค๋Š” ๊ฒƒ๋„ ๋งค๋ ฅ์ ์ธ ํฌ์ธํŠธ๊ฐ€ ์žˆ์—ˆ์ฃ .

 

๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์—์„œ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ 2๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

โ–ถ Virtual Machine์„ ์ƒ์„ฑํ•˜์—ฌ ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ

โ–ถApp Engine์„ ์ด์šฉํ•˜์—ฌ ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ

 

์ด ๋‘˜์ค‘ ์–ด๋–ค ๊ฒƒ์„ ์„ ํƒํ•˜์—ฌ ๋งŒ๋“ค๊นŒ์š”?

๋ผ๊ณ  ๊ณ ๋ฏผํ•œ๋‹ค๋ฉด ์•„๋ž˜์˜ ํŠน์ง•์„ ์ฐธ๊ณ ํ•ฉ์‹œ๋‹ค.

  Virtual Machine App Engine
์ž๋™ Deploy๊ธฐ๋Šฅ X
๋ณธ์ธ์ด ํ„ฐ๋ฏธ๋„ ์ฐฝ์—์„œ Git clone๋“ฑ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•œ ๋‹ค์Œ install๊นŒ์ง€ ๋‹ค ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค
O
GitHub๋“ฑ์„ ์—ฐ๊ฒฐ์‹œํ‚จ ํ›„, ์ž๋™ Deploy๋ฅผ ์‹œํ‚ค๋ฉด ์•Œ์•„์„œ ์—…๋ฐ์ดํŠธ ํ•ด ์ค€๋‹ค
๊ฐœ๋ฐฉ์„ฑ ๋งค์šฐ ๋†’์Œ.
๋‹ค๋ฅธ Database๋‚˜ ๊ฐ™์€ VPC์— ์†ํ•˜๋Š” ๋‹ค๋ฅธ VM๊ณผ๋„๋‚ด๋ถ€ IP๋ฅผ ํ†ตํ•ด ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค
๋‚ฎ์Œ
๋‚ด๋ถ€์ ์œผ๋กœ ๋‹ซํ˜€์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋‚ด๋ถ€์ ์ธ ์—ฐ๊ฒฐ์ด ๋ถˆ๊ฐ€๋Šฅ
์ˆ˜์ •, ๋ฐฐํฌ ์†๋„ ๋น ๋ฆ„
์‚ฌ์šฉ์ž๊ฐ€ ์Šค์Šค๋กœ ํ„ฐ๋ฏธ๋„์—์„œ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ , ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ๋งค์šฐ ๋น ๋ฅด๋‹ค
๋Š๋ฆผ
App engine ์ž์ฒด๊ฐ€ Deployํ•˜๋Š” ๋ฐฉ์‹์ด ์ •ํ•ด์ ธ ์žˆ๋Š”๋ฐ, ์†๋„๊ฐ€ ๊ฝค๋‚˜ ๋Š๋ฆฌ๋‹ค

 

Virtual Machine (์™ผ์ชฝ)๊ณผ App engine (์˜ค๋ฅธ์ชฝ)์˜ ์˜ˆ

์ €๋Š” ์ˆ˜์ •๊ณผ ๋ฐฐํฌ๋ฅผ ๋งŽ์ด ํ•ด์•ผ ํ–ˆ๊ณ ,

PostgreSQL์„ ๋‚ด๋ถ€ํ†ต์‹ ๋งŒ ํ—ˆ์šฉํ•˜์—ฌ

์™ธ๋ถ€์—์„œ ์•„์˜ˆ ์ ‘๊ทผ์„ ๋ชปํ•˜๋„๋ก ํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๋ถ€ํ†ต์‹ ๋งŒ ํ•˜๋Š” ์ด์œ ๋Š”,

๋ณด์•ˆ์ƒ์œผ๋กœ ๊ฐ€์žฅ ๊ฐ•๊ฑดํ•˜๊ณ  ๊ตฌ์กฐ๊ฐ€ ๊น”๋”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด์—์š”.


2. Compute engine์—์„œ Virtual Machine ์ƒ์„ฑํ•˜๊ธฐ

 

๋จผ์ €, ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ ์ฝ˜์†”์„ ์—ด๊ฒŒ ๋˜๋ฉด,

์•„๋ž˜์™€ ๊ฐ™์ด ํ”„๋กœ์ ํŠธ ์ •๋ณด๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ ์™ผ์ชฝ์˜ ํ–„๋ฒ„๊ฑฐ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ Compute engine์œผ๋กœ ๊ฐ‘์‹œ๋‹ค.

๋ถ€ํŒ… ๋””์Šคํฌ ์„ค์ •๊ณผ API, ๋ฐฉํ™”๋ฒฝ ์„ค์ •

๋งŒ์•ฝ API ์•ก์„ธ์Šค๋ฅผ ๊ธฐ๋ณธ ์•ก์„ธ์Šค๋งŒ ํ—ˆ์šฉํ•ด ๋‘”๋‹ค๋ฉด,

๋‚˜์ค‘์— PostgreSQL์ด๋‚˜ Firebase๋ฅผ ์‚ฌ์šฉํ•จ์— ์žˆ์–ด์„œ ์˜ˆ๊ธฐ์น˜ ๋ชปํ•œ ์—๋Ÿฌ๋“ค์„ ๋งŒ๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ๊ธ€์˜ Database๋ฅผ ์—ฐ๋™ํ•˜๋”๋ผ๋„ ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ํ†ต์‹ ์œผ๋กœ ์•ก์„ธ์Šค ํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ

API ์ž์ฒด๊ฐ€ ๋ง‰ํ˜€์žˆ๋‹ค๋ฉด ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค!!

 

์ด์™€ ๋น„์Šทํ•œ ๋งฅ๋ฝ์œผ๋กœ, Virtual machine์„ ์ตœ์ข…์ ์œผ๋กœ ์™ธ๋ถ€ IP์™€ ์—ฐ๊ฒฐํ•˜๊ฒŒ ๋  ๊ฒƒ์ธ๋ฐ,

http, https ํŠธ๋ž˜ํ”ฝ์„ ์—ด์–ด๋†“์ง€ ์•Š๋Š”๋‹ค๋ฉด

ํ„ฐ๋ฏธ๋„ ์ด์™ธ์—์„œ๋Š” ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ

๋ฐ˜๋“œ์‹œ ๋ฐฉํ™”๋ฒฝ ๋ฉ”๋‰ด์—์„œ ํŠธ๋ž˜ํ”ฝ ํ—ˆ์šฉ์„ ์ฒดํฌํ•ด ๋‘ก์‹œ๋‹ค.

 

๋„คํŠธ์›Œํ‚น ์„ค์ • ๋ฉ”๋‰ด

๋งŒ์•ฝ ๋ณธ์ธ์ด VPC๋ฅผ ์ž„์˜๋กœ ์ƒ์„ฑํ•˜์˜€๊ณ , ๊ทธ๊ฒƒ์„ ๋‚ด๋ถ€์ ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด,

๋„คํŠธ์›Œํ‚น ๋ฉ”๋‰ด์—์„œ ํ•ด๋‹น VPC๋ฅผ ์„ ํƒํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ํ•ด ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๋ฒˆ ์‹œ๋ฆฌ์ฆˆ์—์„œ๋Š” ๋”ฐ๋กœ VPC๋ฅผ ๋งŒ๋“ค ๊ณ„ํš์ด ์—†์œผ๋ฏ€๋กœ ๊ทธ๋ƒฅ default๋กœ ๋†”๋‘๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ๊นŒ์ง€ ์™„๋ฃŒํ–ˆ๋‹ค๋ฉด, Virtual machine์˜ ๊ธฐ๋ณธ์ ์ธ ์ƒ์„ฑ์ด ๋๋‚ฌ์Šต๋‹ˆ๋‹ค!

๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ ๋ต๊ฒŒ์š” :)

+ Recent posts