๐Ÿ”ฅ AWS ์„œ๋ฒ„, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งŒ๋“ค๊ธฐ

yeeun leeยท2020๋…„ 5์›” 6์ผ
0

1์ฐจ ํ”„๋กœ์ ํŠธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์ฝ”๋“œ๋ฅผ ์™ธ๋ถ€์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก aws์— ์„œ๋ฒ„, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ ๋ฐ ๊นƒํ—ˆ๋ธŒ cloneํ•œ ๊ณผ์ •์„ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค.

ํ”„๋กœ์ ํŠธ ํ…Œ์ŠคํŠธํ•  ๋•Œ๋Š” ๊ฐ™์€ ๊ณต๊ฐ„์—์„œ ๊ฐ™์€ ์™€์ดํŒŒ์ด๋กœ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค๊ฐ€, ๋ฉ€๋ฆฌ ๋–จ์–ด์ง„ ๊ณณ์—์„œ ๋‚ด ์„œ๋ฒ„์— ๋“ค์–ด์™€ ์š”์ฒญ์„ ํ•˜๋‹ˆ ๋„ˆ๋ฌด ์‹ ๊ธฐํ•˜๋‹ค ๐Ÿ˜ (ํ•œ ํŽธ์œผ๋กœ๋Š” ํ•ดํ‚น๊ณผ ๊ณผ๊ธˆ์ด ์ข€ ๋ฌด์„ญ๊ธฐ๋„...)

1. ๋‹จ์–ด ์ •๋ฆฌ

1.1 ์„œ๋ฒ„

  • EC2: Amazon Elastic Compute Cloud์—์„œ C๊ฐ€ ๋‘ ๊ฐœ์—ฌ์„œ EC2. ์•„๋งˆ์กด์— ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด์„œ ์˜ฌ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด ์ด ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๊ฐ€์žฅ ๊ธฐ๋ณธ ์„ค์ •์ด๋ฉฐ ๊ธฐ์กด์˜ ์„œ๋ฒ„์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค.
  • ๋ณด์•ˆ๊ทธ๋ฃน: ์›์น˜ ์•Š๋Š” ์„ค์ •์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์„ค์ •ํ•˜๋Š” ๋ฐฉํ™”๋ฒฝ์ด๋‹ค.
  • ๋ผ์šฐํŠธ53: ํ”„๋กœ์ ํŠธ ์‹ค์Šต์—์„œ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์ง€๋งŒ, dns ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

1.2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

  • RDS: ๋กœ์ปฌ์— ์žˆ๋˜ mysql ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํด๋ผ์šฐ๋“œ ์ƒ์—์„œ ์ง€์›ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ์•„๋งˆ์กด์— ์˜ค๋กœ๋ผ๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋„ ๋”ฐ๋กœ ์žˆ๊ณ , mysql๋„ ๋ฒ„์ „ ๋ณ„๋กœ ์ง€์›๋œ๋‹ค.

  • S3: ์‚ฌ์šฉ์ž๊ฐ€ ๋ฒ„ํ‚ท์„ ์ƒ์„ฑ(์ด๋ฆ„ํ‘œ๋ฅผ ์ค€ ๋‚ด ๊ณต๊ฐ„)ํ•ด์„œ ํŒŒ์ผ์„ ์˜ฌ๋ฆฌ๋ฉด, ๊ทธ ํŒŒ์ผ์€ ๊ณ ์œ  ์ฃผ์†Œ๊ฐ€ ์ƒ๊ธฐ๊ณ  ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ํŒŒ์ผ์„ ๋ฐ”๋กœ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค. ์›น ์‚ฌ์ดํŠธ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ์ •์ ์ธ ํŒŒ์ผ๋“ค์„ ์˜ฌ๋ฆฌ๋Š” ๊ณณ์ด๋‹ค.

2. EC2 ์„œ๋ฒ„

aws ๊ธ€๋กœ๋ฒŒ ์ธํ”„๋ผ์•ฑ์—์„œ ๋ฆฌ์ „ ๋ณ„๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก ๋น„์šฉ๊ณผ ์‘๋‹ต ์†๋„๋ฅผ ๋น„๊ตํ•ด๋ดค์„ ๋•Œ, ์„œ์šธ๋ณด๋‹ค ๋ฏธ๊ตญ ์˜คํ•˜์ด์˜ค๊ฐ€ ๋” ํšจ์œจ์ ์ด๋ฏ€๋กœ ์ง€์—ญ์€ ์˜คํ•˜์ด์˜ค๋ฅผ ์„ ํƒํ•ด์„œ ํ•  ์˜ˆ์ •์ด๋‹ค. (๋กœ๊ทธ์ธ ํ›„ ์šฐ์ธก ์ƒ๋‹จ์„ ๋ณด๋ฉด ๋ฆฌ์ „์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค)

2.1 EC2 instance ์ƒ์„ฑ

์„œ๋น„์Šค ํƒญ์—์„œ EC2 ์„œ๋น„์Šค๋ฅผ ํด๋ฆญํ•ด, ์ธ์Šคํ„ด์Šค๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•œ๋‹ค. ์ธ์Šคํ„ด์Šค ์‹œ์ž‘์„ ๋ˆ„๋ฅด์ž.

- AMI ์„ ํƒ

Amazon Machine Image, ์ฆ‰ ์„œ๋ฒ„์˜ OS ๋จธ์‹ ์„ ์„ ํƒํ•˜๋Š” ๋‹จ๊ณ„๋‹ค. ํ”„๋ฆฌ ํ‹ฐ์–ด์—์„œ ์„ ํƒ ๊ฐ€๋Šฅํ•œ ์šฐ๋ถ„ํˆฌ 64๋น„ํŠธ๋ฅผ 18.04๋ฅผ ์„ ํƒํ•œ๋‹ค. ๋‚ด ๊ณ„์ • ๋ฆฌ์ „์— ๋”ฐ๋ผ ๊ฐ™์€ ์ƒํ’ˆ์ด๋”๋ผ๋„ ์ฝ”๋“œ๊ฐ€ ๋‹ค๋ฅด๋‹ˆ, ๋ฆฌ์ „์— ๋งž๊ฒŒ ๊ณ ๋ฅผ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค.

์ฒ˜์Œ์— ๋‚˜๋Š” ๋ฆฌ์ „์„ ์„œ์šธ๋กœ ๋ฐ”๊ฟ”์„œ ํŠœํ† ๋ฆฌ์–ผ์„ ๋”ฐ๋ผ๊ฐ”๋‹ค๊ฐ€, ์ƒํ’ˆ ์ฝ”๋“œ๊ฐ€ ๋‹ฌ๋ผ์„œ ์ตœ์ข…์ ์œผ๋กœ๋Š” ๋‚ด ๋ฆฌ์ „์—์„œ ์ง€์›๋˜์ง€ ์•Š๋Š” ์ƒํ’ˆ์ด๋ผ๊ณ  ์„œ๋ฒ„ ์ƒ์„ฑ์„ ๊ฑฐ์ ˆ๋‹นํ–ˆ๋‹ค.

- ์ธ์Šคํ„ด์Šค ์œ ํ˜• ์„ ํƒ

CPU ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ์˜ ์„œ๋ฒ„์˜ ๊ทœ๋ชจ๋ฅผ ์„ ํƒํ•˜๋Š” ๊ณผ์ •. ํ”„๋ฆฌํ‹ฐ์–ด๋‹ˆ๊นŒ t2.micro๋ฅผ ์„ ํƒํ•œ๋‹ค. EC2์—์„œ๋Š” ์ปดํ“จํ„ฐ์™€ ๋ฐ์ดํ„ฐ ์ „์†ก์— ๋”ฐ๋ผ ๊ณผ๊ธˆ์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ๋ฅผ ์„ ํƒํ•˜๋ฉด ๊ณผ๊ธˆ์ด ๋งŽ์ด ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฃผ์˜ํ•˜์ž.

- ์ธ์Šคํ„ด์Šค ๊ตฌ์„ฑ ํ™”๋ฉด

๋‚ด๊ฐ€ ๋งŒ๋“œ๋Š” EC2 ์ธ์Šคํ„ด์Šค๋Š” ์„œ๋ธŒ๋„ท์— ๋ฐฐ์น˜๊ฐ€ ๋œ๋‹ค. ์„œ๋ธŒ๋„ท์€ ip ์ฃผ์†Œ ์‚ฌ์šฉํ•œ ๊ฒƒ(์ฒซ ๋ฒˆ์งธ)๋กœ ์„ ํƒํ•œ๋‹ค. ์ข…๋ฃŒ ๋ฐฉ์ง€ ๊ธฐ๋Šฅ ํ™œ์„ฑํ™” ์ฒดํฌํ•˜๊ณ  ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์€ ๊ทธ๋Œ€๋กœ ๋‘” ์ƒํƒœ๋กœ ์ตœ์†Œํ•œ๋งŒ ์„ค์ •ํ•ด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค. ๊ณผ๊ธˆ๋˜์ง€ ์•Š๋„๋ก!

virtual private cloud: aws ์ „์šฉ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ๋กœ ip ์ฃผ์†Œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ๋ฐฉํ™”๋ฒฝ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

- ์Šคํ† ๋ฆฌ์ง€ ์ถ”๊ฐ€, ํƒœ๊ทธ ์ถ”๊ฐ€

๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋ˆ ์ ธ ์žˆ๋Š” ์Šคํ…์ธ๋ฐ ๋‚ด์šฉ์ด ์—†์–ด ํ•˜๋‚˜๋กœ ํ•ฉ์ณค๋‹ค. ์Šคํ† ๋ฆฌ์ง€์—์„œ ์šฉ๋Ÿ‰์„ ์˜ฌ๋ฆฌ๊ฒŒ ๋˜๋ฉด ์š”๊ธˆ์ด ๋ถ€๊ณผ๋˜๋ฏ€๋กœ ๊ธฐ๋ณธ์œผ๋กœ ํ•ด์„œ ๋งŒ๋“ ๋‹ค. ํƒœ๊ทธ๋„ key์— ๊ณ„์ • ์ด๋ฆ„, ๊ฐ’์€ ํ”„๋กœ์ ํŠธ ๋ช…์œผ๋กœ ์ž…๋ ฅํ•˜๊ณ  ๋„˜์–ด๊ฐ€์ž.

ebs: elastic block store, EC2 ๋งˆ์šดํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์Šคํ† ๋ฆฌ์ง€ ํƒ€์ž….

- ๋ณด์•ˆ ๊ทธ๋ฃน ์„ค์ •

EC2์—์„œ๋Š” http, https ์ ‘์†์„ ํ—ˆ์šฉํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๊ทœ์น™ ์ถ”๊ฐ€๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ip์—์„œ ssh ์ ‘์†์„ ํ—ˆ์šฉํ•˜๊ฒŒ ๋˜์–ด์žˆ๋‹ค. (=port 8000์œผ๋กœ ์–ด๋–ค ip๋”๋ผ๋„ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ)

๊ทœ์น™ ์ถ”๊ฐ€ ํ›„ ํฌํŠธ ๋ฒ”์œ„ 8000์œผ๋กœ ๋ฐ”๊พธ๊ณ , ์†Œ์Šค๋Š” ์œ„์น˜ ๋ฌด๊ด€์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.

2.2 keypaire ์ƒ์„ฑ

EC2 ์„œ๋ฒ„๋ฅผ ์ฒ˜์Œ ๋งŒ๋“ค๊ฒŒ ๋˜๋ฉด instance ์ƒ์„ฑ ์‹œ์— ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์—์„œ keypair๋ฅผ ๋ฐœ๊ธ‰ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ํ•œ ๋ฒˆ ๋‹ค์šด๋ฐ›์œผ๋ฉด ์ข…๋ฃŒํ•œ ์ดํ›„์— ๋‹ค์‹œ ๋ฐ›์„ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๊ผญ ๋‚ด๊ฐ€ ์•„๋Š” ๊ฒฝ๋กœ์— ์ €์žฅํ•ด์•ผ ํ•œ๋‹ค.

ํ„ฐ๋ฏธ๋„์—์„œ ํ•ด๋‹น keypair๋ฅผ ํ†ตํ•ด EC2 ์„œ๋ฒ„์— ์ ‘์†ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ผ ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค!

2.3 EC2 instance ์ ‘์†

- pem ํŒŒ์ผ ๊ถŒํ•œ ๋ณ€๊ฒฝ

๋‹ค์šด ๋ฐ›์€ keypair๋Š” pem ํŒŒ์ผ๋กœ ์ €์žฅ๋˜๊ณ , ํ„ฐ๋ฏธ๋„์—์„œ ํ•ด๋‹น ๊ฒฝ๋กœ์— ๋“ค์–ด๊ฐ€ ํŒŒ์ผ ๋ชจ๋“œ๋ฅผ ๋ฐ”๊ฟ”์ค˜์•ผ ํ•œ๋‹ค.

chmod 400 keypairํŒŒ์ผ์ด๋ฆ„.pem 

- ๊ณต์ธ ip ํ™•์ธ ํ›„ ์„œ๋ฒ„ ์ ‘์†

instance ์„œ๋ฒ„๊ฐ€ ๋Œ์•„๊ฐ€๋ฉด ์•„๋ž˜์— IPv4 ํผ๋ธ”๋ฆญ IP : ์˜ค๋ฅธ์ชฝ์— ip๊ฐ€ ๋œฌ๋‹ค. ์ฐพ์€ ๊ณต์ธ ip๋ฅผ ์•„๋ž˜ ์ฝ”๋“œ at ๋ถ€๋ถ„ ๋’ค์— ๋„ฃ์–ด์ฃผ๋ฉด EC2 ์„œ๋ฒ„์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค!

ssh -i keypairํŒŒ์ผ์ด๋ฆ„.pem ubuntu@EC2์„œ๋ฒ„์˜๊ณต์ธip

Q: Amazon EC2 ์‹œ์Šคํ…œ์€ ์–ธ์ œ๋ถ€ํ„ฐ ์–ธ์ œ๊นŒ์ง€ ์‚ฌ์šฉํ•œ ์š”๊ธˆ์ด ์ฒญ๊ตฌ๋ฉ๋‹ˆ๊นŒ?

๊ฒฐ์ œ๋Š” Amazon EC2๊ฐ€ AMI ์ธ์Šคํ„ด์Šค์˜ ๋ถ€ํŒ… ์‹œํ€€์Šค๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ์‹œ์ž‘๋˜์–ด "shutdown -h"๋ผ๋Š” ์›น ์„œ๋น„์Šค ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์ธ์Šคํ„ด์Šค๋ฅผ ์ข…๋ฃŒํ•˜๊ฑฐ๋‚˜ ์ธ์Šคํ„ด์Šค ์‹คํŒจ๋กœ ์ธํ•ด ์ธ์Šคํ„ด์Šค๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ ๋๋‚ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ธ์Šคํ„ด์Šค๋ฅผ ์ค‘์ง€ํ•˜๋ฉด, AWS์—์„œ ํ•ด๋‹น ์ธ์Šคํ„ด์Šค๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  ์ค‘์ง€๋œ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•ด์„œ๋Š” ์‹œ๊ฐ„๋‹น ์‚ฌ์šฉ ์š”๊ธˆ์ด๋‚˜ ๋ฐ์ดํ„ฐ ์ „์†ก ๋น„์šฉ์„ ์ฒญ๊ตฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Amazon EBS ๋ณผ๋ฅจ์šฉ ์Šคํ† ๋ฆฌ์ง€์— ๋Œ€ํ•œ ๋น„์šฉ์€ ์ฒญ๊ตฌ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ AWS ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

3. RDS ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

3.1 ํŒŒ๋ผ๋ฏธํ„ฐ ๊ทธ๋ฃน

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑํ•˜๊ธฐ ์ „์— ์ž‘์—…ํ•  ๊ฒƒ์ด ํŒŒ๋ผ๋ฏธํ„ฐ ๊ทธ๋ฃน์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์˜ ์„ค์ • ๊ฐ’์„ ๋งŒ๋“œ๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ๋ณด๋ฉด ๋œ๋‹ค.

- ์ƒ์„ฑ

mysql 5.7์„ ์„ ํƒํ•˜๊ณ , ๊ทธ๋ฃน ์ด๋ฆ„์€ ๋‚ด ํ”„๋กœ์ ํŠธ์— ๋งž๊ฒŒ rolex-config ์š”๋Ÿฐ ์‹์œผ๋กœ ๋งŒ๋“ ๋‹ค. ์„ค๋ช…์€ ๊ทธ๋ฃน ์ด๋ฆ„๊ณผ ๊ผญ ๊ฐ™์„ ํ•„์š”๋Š” ์—†๊ณ  ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์ •์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๋ฉด ๋œ๋‹ค.

๊ทธ๋ฃน ์ด๋ฆ„์„ ๋งŒ๋“ค ๋•Œ๋Š” ์–ธ๋”๋ฐ”๊ฐ€ ์•„๋‹Œ ํ•˜์ดํ”ˆ์œผ๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์„ ์ฃผ์˜ํ•˜์ž!

- ํŽธ์ง‘

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์ •๊ฐ’์„ ๊ตฌ์ฒด์ ์œผ๋กœ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ํ–‰๋™, rds์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•œ ์„ค์ • ๊ฐ’์ด๋‹ค.

  • character_set ์œผ๋กœ ๊ฒ€์ƒ‰ ํ›„ ๊ฐ’์„ : utf8mb4 ๋กœ ๋ณ€๊ฒฝ. ๋ณ€๊ฒฝ ํ›„ ์ €์žฅ!
  • chollat ๊นŒ์ง€ ์ž…๋ ฅ ํ›„ : connection์€ utf8mb4_general_ci, server๋Š” unicode_ci(๋งจ ์•„๋ž˜์— ์žˆ์Œ)

3.2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ

ํ‘œ์ค€ ์ƒ์„ฑ, ์—”์ง„ ์˜ต์…˜์€ mysql, ๋ฒ„์ „์€ ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ํ…œํ”Œ๋ฆฟ์€ ํ”„๋ฆฌ ํ‹ฐ์–ด๋กœ ์„ ํƒํ•œ๋‹ค. db instance ์‹๋ณ„์ž๋Š” ๋‚ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„์„ ์ฃผ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—, ํ”„๋กœ์ ํŠธ_๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋Ÿฐ ์‹์œผ๋กœ ์ €์žฅํ•œ๋‹ค.

์ž๊ฒฉ ์ฆ๋ช… ์„ค์ •์€ root๋กœ ๋ณ€๊ฒฝ, ๋งˆ์Šคํ„ฐ ์•”ํ˜ธ๋Š” local์—์„œ ์ž‘์„ฑํ•˜๋˜ ๊ฒƒ๊ณผ ๋™์ผํ•˜๊ฒŒ ํ˜น์€ ๋ฐ”๊พธ๊ณ  ์‹ถ๋‹ค๋ฉด ์—ฌ๊ธฐ์„œ ์ข€ ์–ด๋ ต๊ฒŒ ๋ฐ”๊พผ ๋‹ค์Œ์— local์—์„œ mysql ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝํ•˜๊ธฐ! ์Šคํ† ๋ฆฌ์ง€ ์ž๋™ ์กฐ์ • ํ™œ์„ฑํ™”๋Š” ์–ธ์ฒดํฌํ•œ๋‹ค.

๋‚˜๋จธ์ง€๋Š” ํ”„๋ฆฌํ‹ฐ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์œผ๋กœ ์„ค์ •๋˜๋Š” ๋ถ€๋ถ„์ด๋‹ˆ ๊ฑด๋“ค์ง€ ๋ง์ž.

  • ์ถ”๊ฐ€ ์—ฐ๊ฒฐ ๊ตฌ์„ฑ: ํผ๋ธ”๋ฆญ ์•ก์„ธ์Šค ๊ฐ€๋Šฅ์„ ์˜ˆ๋กœ ์ฒดํฌ. ์™ธ๋ถ€์—์„œ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ.
  • ๋ณด์•ˆ ๊ทธ๋ฃน: ์ƒˆ๋กœ ์ƒ์„ฑํ•ด์„œ project_rules ์š”๋Ÿฐ ์‹์œผ๋กœ ๋งŒ๋“ค๊ธฐ. ๊ฐ€์šฉ์˜์—ญ์€ a๋กœ! (์•„๊นŒ b๋กœ ํ•œ ๊ฒƒ ๊ฐ™์€๋ฐ)
  • ์ถ”๊ฐ€ ๊ตฌ์„ฑ: ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž๋™ ๋ฐฑ์—… ํ™œ์„ฑํ™” ์–ธ์ฒดํฌ, ์‚ญ์ œ ๋ฐฉ์ง€ ํ™œ์„ฑํ™” ์ฒดํฌ.

3.3 ๋ณด์•ˆ ๊ทธ๋ฃน ์„ค์ •

๋ณด์•ˆ ๊ทธ๋ฃน ๊ทœ์น™์—์„œ, ์ธ๋ฐ”์šด๋“œ(๋‚˜์—๊ฒŒ ํ†ต์‹ ์ด ๋“ค์–ด์˜ค๋Š”) ๊ทœ์น™ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ƒˆ์ฐฝ์ด ์—ด๋ฆฐ๋‹ค. ์•„๋ž˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ๋ณด๋ฉด ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™์—์„œ ์†Œ์Šค์— ip๊ฐ€ ๋œฌ๋‹ค.

๊ทœ์น™์„ ํŽธ์ง‘ํ•ด์„œ ์œ„์น˜ ๋ฌด๊ด€์œผ๋กœ ๋ฐ”๊พธ๋ฉด ๊ณ„์ • ์ •๋ณด, ๋น„๋ฐ€ ๋ฒˆํ˜ธ๋งŒ ์•Œ๋ฉด ๋ชจ๋“  ๊ณณ์—์„œ ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ถŒ์žฅ๋˜๋Š” ์„ค์ •์€ ์•„๋‹ˆ๋‚˜, ์šฐ์„  ์ž‘์—…ํ•  ๋•Œ๋งŒ ์—ด์–ด๋‘๋Š” ๊ฒƒ์œผ๋กœ!

3.4 aws ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘์†

rds์—์„œ ์—”๋“œํฌ์ธํŠธ๋ฅผ ๋ณต์‚ฌํ•˜๊ณ , ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅํ•˜๋ฉด aws์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋‹ค.

mysql -h rds์—”๋“œํฌ์ธํŠธ -u root -p 

- mysqldump

๋‚ด๊ฐ€ ๋กœ์ปฌ์— ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ณต์‚ฌํ•ด, ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ๋ฐ€์–ด๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ๋ฐ€์–ด๋„ฃ๊ธฐ ์œ„ํ•ด์„œ๋Š” aws์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋งŒ๋“ค์–ด์ ธ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— create ํ•˜๊ณ , ํ™”์‚ดํ‘œ๋ฅผ ๋ฐ˜๋Œ€๋กœ ํ•ด์ฃผ๋ฉด aws ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋„ฃ์–ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

*ํŒŒ์ด์ฌ ์ฃผ์„์„ ์“ฐ๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋Š” ์ž„์˜๋กœ ํŒŒ์ด์ฌ ์–ธ์–ด๋กœ ์ž‘์„ฑํ–ˆ์œผ๋ฉฐ, ๋ฐ‘์— set์ด ๊ฐ•์กฐ๋œ ๊ฒƒ์€ ๋‚ด์šฉ๊ณผ ๋ฌด๊ด€ํ•˜๋‹ค.

# local root์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ sqlํŒŒ์ผ๋กœ ๋ณต์‚ฌํ•ด ๊บผ๋‚ธ๋‹ค 
mysqldump -u root -p ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋ฆ„ > ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋ฆ„.sql 

# aws rds์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค
mysql> create database ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋ฆ„ character set utfmb4 collate utfmb4_general_ci; 

# ์•„๊นŒ local์—์„œ dumpํ•œ sqlํŒŒ์ผ์„ aws rds๋กœ ๋„ฃ์–ด์ค€๋‹ค.
mysql -h red์—”๋“œํฌ์ธํŠธ -u root -p ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋ฆ„ < ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋ฆ„.sql

๋‚˜๋Š” ERROR 1273 (HY000): Unknown collation: โ€˜utf8mb4_0900_ai_ciโ€™ ์ด๋Ÿฐ ์‹์˜ ์—๋Ÿฌ๊ฐ€ ์ค‘๊ฐ„์— ๋‚ฌ๋Š”๋ฐ, ๊ตฌ๊ธ€๋งํ•ด๋ณด๋‹ˆ mysql ๋ฒ„์ „ ์ฐจ์ด์—์„œ ์˜ค๋Š” ์—๋Ÿฌ์˜€๋‹ค. utf8mb4_0900_ai_ci๋ฅผ ๋ชจ๋‘ utf8mb4_general_ci๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌธ์ œ ์—†์ด ๋“ค์–ด๊ฐ„๋‹ค!

4. ์„œ๋ฒ„, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™

pem ํŒŒ์ผ๋กœ ์„œ๋ฒ„์— ์ ‘์†ํ•œ๋‹ค์Œ์—, ๊ฐœ๋ฐœํ™˜๊ฒฝ ์ฒ˜์Œ ์„ค์ •ํ• ๋•Œ์™€ ๋™์ผํ•œ ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉด ๋œ๋‹ค.

4.1 ์ดˆ๊ธฐ ์„ธํŒ…

  • ubuntu ํ™˜๊ฒฝ์ด๊ธฐ ๋•Œ๋ฌธ์— miniconda ubuntu ์„ค์น˜, ์„œ๋ฒ„์— ๊ถŒํ•œ ๋ถ€์—ฌ
$wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

bash Miniconda3-latest-Linux-x86_64.sh
  • sourse vi.bashrc ๋ช…๋ น๋ผ์ธ ์•ž์— ๊ฐ€์ƒ ํ™˜๊ฒฝ ์•Œ๋ ค์คŒ
source ~/.bashrc
  • sudo apt-get update/upgrade/install gcc&libmysqlclient-dev

4.2 ๊ฐ€์ƒํ™˜๊ฒฝ ๊ตฌ์ถ•

์ฝ˜๋‹ค ๊ฐ€์ƒํ™˜๊ฒฝ์„ ๋งŒ๋“  ๋‹ค์Œ, ๊นƒํ—™ repo์—์„œ git cloneํ•ด์˜ค๊ณ , requitrements.txt ํŒŒ์ผ์—์„œ ํ”„๋กœ์ ํŠธ์— ํ•„์š”ํ•œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ ๋‹ค์šด๋กœ๋“œ ํ•œ๋‹ค.

  • pip install -r requirements.txt

4.3 my_settings file ๋ณ€๊ฒฝ

  1. ๋ฃจํŠธ ์•ฑ settings์—์„œ allowed_host๋ฅผ ๊ณต์ธ ip๋กœ ๋ณ€๊ฒฝ
  2. secret key, database ๊ด€๋ จ ์ •๋ณด๋ฅผ ๊ฐ€์ง„ my_settings ํŒŒ์ผ์„ aws ์„œ๋ฒ„์— ๋งž๊ฒŒ ๋ณ€๊ฒฝ.
  3. host๋ฅผ rds host๋กœ ๋ฐ”๊ฟ”์ค˜์•ผ ํ•จ!
  4. public ip๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” python manage.py runserver 0:8000

์ผ๋‹จ ๊ณผ์ • ๋ชจ๋‘๋ฅผ ๊ธฐ๋กํ–ˆ์ง€๋งŒ, ์ค‘๊ฐ„ ์ค‘๊ฐ„์— ๋‚˜์˜ค๋Š” ๊ฐœ๋…๋“ค์— ๋Œ€ํ•ด์„œ ๋” ์ž์„ธํžˆ ์ •๋ฆฌํ•˜๋Š” ์‹œ๊ฐ„์ด ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™๋‹ค.

multi request ํ™˜๊ฒฝ์œผ๋กœ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” gunicorn์„ installํ•ด์•ผ ํ•˜๋Š”๋ฐ, ๋‹น์žฅ์€ ์š”์ฒญ์ด ๋งŽ์ด ๋“ค์–ด์˜ค์ง€ ์•Š์œผ๋‹ˆ ์šฐ์„  ์ด์ •๋„ ์„ ์—์„œ ๋งˆ๋ฌด๋ฆฌ ๐Ÿ‘€

profile
์ด์‚ฌ๊ฐ„ ๋ธ”๋กœ๊ทธ: yenilee.github.io

0๊ฐœ์˜ ๋Œ“๊ธ€