Django-RDS-Elastic Beanstalk ์ฐ๋์ ํตํ ๋น ๋ฅธ ๋ฐฐํฌ ๊ตฌ์กฐ ์ค๊ณ
๐ How to deploy Django AWS Elastic Beanstalk RDS โ the smart way
AI ์์ฝ
Context
์ด๊ธฐ ๋ฐฐํฌ ์ Migration ๋๋ฝ, ํ๊ฒฝ ๋ณ์ ์ ์ถ, Static ํ์ผ ์๋น ์คํจ ๋ฑ ์๋ ์ค์ ์ผ๋ก ์ธํ ๋ฐํ์ ์ค๋ฅ ๋น๋ฒ ๋ฐ์. ๋จ์ EC2 ๋ฐฐํฌ ๋๋น ์ธํ๋ผ ๊ด๋ฆฌ ์ค๋ฒํค๋์ ์ค์ ์ค๋ฅ๋ก ์ธํ ์์คํ ๊ฐ์ฉ์ฑ ์ ํ ๋ฌธ์ ์กด์ฌ.
Technical Solution
- django-environ ๋์ ์ ํตํ Local(SQLite)๊ณผ Production(RDS) ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๋ถ๋ฆฌ ๋ฐ Secret Key ๋ณด์ ๊ฐํ
- .ebextensions ์ค์ ์ ํตํ container_commands ๊ธฐ๋ฐ์ ์๋ํ๋ Migration ์คํ ๋ฐ Static ํ์ผ ์์ง ๊ตฌ์กฐ ์ค๊ณ
- psycopg2-binary ์ฑํ์ผ๋ก RDS PostgreSQL๊ณผ์ ํธํ์ฑ ํ๋ณด ๋ฐ ๋๋ผ์ด๋ฒ ์ถฉ๋ ๋ฐฉ์ง
- Apache ๊ธฐ๋ฐ์ Static ํ์ผ ์๋น ๊ตฌ์กฐ ์ค๊ณ๋ฅผ ํตํด Django Application Server์ ์ ์ ์์ ์ฒ๋ฆฌ ๋ถํ ์ ๊ฑฐ
- EB CLI ๊ธฐ๋ฐ์ Environment Variable ๊ด๋ฆฌ๋ฅผ ํตํ ์์ค ์ฝ๋ ๋ด ํ๋์ฝ๋ฉ ์ ๊ฑฐ ๋ฐ ๋ณด์์ฑ ํฅ์
์ค์ฒ ํฌ์ธํธ
- .env ํ์ผ์ .gitignore์ ์ถ๊ฐํ์ฌ Secret Key ์ ์ถ ๋ฐฉ์ง ์ฌ๋ถ ๊ฒํ - requirements.txt ์์ฑ ์ OS ์ข ์์ ์ธ ํจํค์ง๊ฐ ํฌํจ๋์ง ์์๋์ง ํ์ธ - wsgi.py ํ์ผ์ ์์น๊ฐ Project Root ์์ค์ผ๋ก ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์๋์ง ์ ๊ฒ - ๋ฐฐํฌ ํ์ดํ๋ผ์ธ ๋ด collectstatic ๋ฐ migrate ๋ช ๋ น์ด๊ฐ ์๋ ์คํ๋๋๋ก .ebextensions ๊ตฌ์ฑ ํ์ธ