๐ Heroku ์๋ฒฝ ๊ฐ์ด๋: ํด๋ผ์ฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ๋ถํฐ ํ์ฉ๊น์ง! โ๏ธ
“์๋ฒ ๊ด๋ฆฌ ์์ด ๋น ๋ฅด๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๊ณ ์ถ์ด!”
“AWS๋ GCP๋ณด๋ค ๊ฐ๋จํ ๋ฐฐํฌ ๋ฐฉ๋ฒ ์์๊น?”
๐ ์ด๋ฐ ๊ณ ๋ฏผ์ ํ๋ ๊ฐ๋ฐ์๋ผ๋ฉด, Heroku๊ฐ ๋ฑ์ด๋ค!
๊ฐ๋จํ ๋ช ๋ น์ด ๋ช ๊ฐ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ๊ฐ๋ ฅํ PaaS (Platform as a Service)!
์ด๋ฒ ๊ธ์์๋ Heroku๊ฐ ๋ฌด์์ธ์ง, ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง, ์ฅ๋จ์ ์ ๋ฌด์์ธ์ง ์๋ฒฝ ์ ๋ฆฌํด๋ณด์!
๐ ๋ชฉ์ฐจ
1๏ธโฃ Heroku๋? - ๊ฐ๋ ๋ฐ ํน์ง
2๏ธโฃ Heroku์ ์ฃผ์ ๊ธฐ๋ฅ
3๏ธโฃ Heroku ๋ฐฐํฌ ํ๋ก์ธ์ค
4๏ธโฃ Heroku CLI ์ฌ์ฉ๋ฒ
5๏ธโฃ Heroku์ Add-ons ๋ฐ ํ์ฅ ๊ธฐ๋ฅ
6๏ธโฃ Heroku์ AWS/GCP ๋น๊ต
7๏ธโฃ Heroku ํ์ฉ ์ฌ๋ก
8๏ธโฃ ๊ฒฐ๋ก
1๏ธโฃ Heroku๋? - ๊ฐ๋ ๋ฐ ํน์ง ๐ญ
๐น Heroku๋?
Heroku๋ PaaS (Platform as a Service) ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ํ ํด๋ผ์ฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ ํ๋ซํผ์ด๋ค.
์ฆ, ๊ฐ๋ฐ์๊ฐ ์ธํ๋ผ๋ฅผ ์ง์ ๊ด๋ฆฌํ ํ์ ์์ด ์ฝ๋๋ง ์ ๋ก๋ํ๋ฉด ์๋์ผ๋ก ์๋ฒ๊ฐ ์ค์ ๋๊ณ , ๋ฐฐํฌ๊น์ง ์๋ฃ๋๋ค!
๐ ํ๋ง๋๋ก:
โ ์๋ฒ ๊ด๋ฆฌ ์์ด ์ฝ๋๋ฅผ ํธ์ํ๋ ๊ฒ๋ง์ผ๋ก ๋ฐฐํฌ ๋!
โ ๋ค์ํ ์ธ์ด ์ง์ (Node.js, Python, Ruby, Java, PHP ๋ฑ)
โ ๋ฌด๋ฃ ํ๋ ์ ๊ณต → ๊ฐ์ธ ํ๋ก์ ํธ, MVP ๊ฐ๋ฐ์ ์ต์ ํ
๐ก Heroku๋ ํนํ ๋น ๋ฅธ ๋ฐฐํฌ, ๊ฐํธํ ํ์ฅ์ฑ, ๊ฐ๋ ฅํ Add-ons ์ง์์ผ๋ก ์ธ๊ธฐ๊ฐ ๋ง๋ค!
2๏ธโฃ Heroku์ ์ฃผ์ ๊ธฐ๋ฅ โจ
๊ธฐ๋ฅ์ค๋ช
๊ฐ๋จํ ๋ฐฐํฌ | git push heroku main ๋ง์ผ๋ก ๋ฐฐํฌ ์๋ฃ |
์๋ ์ค์ผ์ผ๋ง | ์ ์ ๋๋ ํธ๋ํฝ์ ๋ฐ๋ผ dyno(์๋ฒ ์ธ์คํด์ค) ๊ฐ์ ์๋ ์กฐ์ |
๋ค์ํ ์ธ์ด ์ง์ | Node.js, Python, Ruby, Java, PHP ๋ฑ ๋ค์ํ ํ๊ฒฝ ์ง์ |
Heroku CLI ์ง์ | ํฐ๋ฏธ๋์์ ๋ฐฐํฌ, ๊ด๋ฆฌ, ํ๊ฒฝ ๋ณ์ ์ค์ ๊ฐ๋ฅ |
Heroku Add-ons | ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋ชจ๋ํฐ๋ง, ๋ก๊น ๋ฑ ์ถ๊ฐ ๊ธฐ๋ฅ ์ฝ๊ฒ ์ถ๊ฐ |
CI/CD ํตํฉ | GitHub, GitLab, Bitbucket๊ณผ ์ฐ๋ ๊ฐ๋ฅ |
๋ฌด๋ฃ ํ๋ ์ ๊ณต | ์์ ํ๋ก์ ํธ ๋ฐ MVP(์ต์ ๊ธฐ๋ฅ ์ ํ) ๋ฐฐํฌ์ ์ ์ฉ |
๐ก Heroku๋ AWS/GCP๋ณด๋ค ํจ์ฌ ์ง๊ด์ ์ธ ๋ฐฐํฌ ํ๊ฒฝ์ ์ ๊ณตํ๋ฉฐ, ์คํํธ์ ๊ณผ ๊ฐ๋ฐ์๋ค์ด ๋น ๋ฅด๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์นญํ๋ ๋ฐ ์ ์ฉํ๋ค!
3๏ธโฃ Heroku ๋ฐฐํฌ ํ๋ก์ธ์ค ๐
Heroku์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๋ ๊ณผ์ ์ ๋งค์ฐ ์ง๊ด์ ์ด๋ค.
โ 1. Heroku ๊ณ์ ์์ฑ
๐ Heroku ๊ณต์ ์ฌ์ดํธ์์ ๋ฌด๋ฃ ๊ณ์ ์์ฑ
โ 2. Heroku CLI ์ค์น
๐ brew tap heroku/brew && brew install heroku (Mac)
๐ npm install -g heroku (Node.js ํ๊ฒฝ)
โ 3. Heroku ๋ก๊ทธ์ธ
heroku login
์น ๋ธ๋ผ์ฐ์ ์์ Heroku ๊ณ์ ๋ก๊ทธ์ธ ํ, ํฐ๋ฏธ๋์์ ๋ช ๋ น์ด ์คํ ๊ฐ๋ฅ
โ 4. Heroku ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ
heroku create my-app
๐ก my-app์ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฆ (๊ณ ์ ํด์ผ ํจ)
โ 5. Heroku ์๊ฒฉ ์ ์ฅ์ ์ถ๊ฐ
git remote -v
๐ก heroku๋ผ๋ ์๊ฒฉ ์ ์ฅ์๊ฐ ์ถ๊ฐ๋จ
โ 6. ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ
git push heroku main
๐ก main ๋ธ๋์น๋ฅผ Heroku์ ํธ์ํ๋ฉด ์๋ ๋ฐฐํฌ ์งํ
โ 7. ๋ฐฐํฌ๋ ์ฑ ํ์ธ
heroku open
๐ ์๋์ผ๋ก ์์ฑ๋ ๋๋ฉ์ธ์์ ์ฑ ์คํ๋จ!
4๏ธโฃ Heroku CLI ์ฌ์ฉ๋ฒ ๐ ๏ธ
Heroku๋ CLI(Command Line Interface) ๋ฅผ ํตํด ์๋ฒ ๊ด๋ฆฌ, ๋ก๊ทธ ํ์ธ, ํ๊ฒฝ ๋ณ์ ์ค์ ๋ฑ์ ์ฝ๊ฒ ํ ์ ์๋ค.
๐น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด ์กฐํ
heroku apps:info
๐ก ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฆ, ๋ฐฐํฌ ์ํ, URL ๋ฑ์ ํ์ธํ ์ ์์.
๐น ํ๊ฒฝ ๋ณ์ ์ค์ (Config Vars)
heroku config:set SECRET_KEY=mysecret
๐ก process.env.SECRET_KEY๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ๊ทผ ๊ฐ๋ฅ.
๐น ๋ฐฐํฌ๋ ์ฑ ๋ก๊ทธ ํ์ธ
heroku logs --tail
๐ก ์ค์๊ฐ ๋ก๊ทธ ํ์ธ ๊ฐ๋ฅ!
๐น ์ ํ๋ฆฌ์ผ์ด์ Dyno ๊ด๋ฆฌ
heroku ps:scale web=2
๐ก ์น ํ๋ก์ธ์ค๋ฅผ 2๊ฐ๋ก ํ์ฅํ์ฌ ํธ๋ํฝ ์ฒ๋ฆฌ๋ ์ฆ๊ฐ ๊ฐ๋ฅ.
5๏ธโฃ Heroku์ Add-ons ๋ฐ ํ์ฅ ๊ธฐ๋ฅ ๐ฆ
Heroku๋ Add-ons ๊ธฐ๋ฅ์ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋ชจ๋ํฐ๋ง, ์บ์ฑ, ๋ก๊น ๋ฑ์ ๊ธฐ๋ฅ์ ์ฝ๊ฒ ์ถ๊ฐํ ์ ์๋ค.
Add-on๊ธฐ๋ฅ
Heroku Postgres | ๊ด๋ฆฌํ PostgreSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค |
Redis for Heroku | Redis ์บ์ ๊ธฐ๋ฅ |
Papertrail | ๋ก๊ทธ ๋ชจ๋ํฐ๋ง |
New Relic | ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ๋ฐ ๋๋ฒ๊น |
Cloudinary | ์ด๋ฏธ์ง ๋ฐ ๋ฏธ๋์ด ๊ด๋ฆฌ |
๐ Add-ons์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ:
heroku addons:create heroku-postgresql:hobby-dev
๐ก hobby-dev ํ๋์ผ๋ก PostgreSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ถ๊ฐ๋จ!
6๏ธโฃ Heroku์ AWS/GCP ๋น๊ต โ๏ธ
๋น๊ต ํญ๋ชฉHerokuAWS/GCP
์ค์ ๋์ด๋ | ๋งค์ฐ ๊ฐ๋จ (Git Push) | ๋ณต์กํ ์ค์ ํ์ |
์๋ ํ์ฅ | ์๋ ์ค์ผ์ผ๋ง ๊ฐ๋ฅ | ์ง์ ์ค์ ํ์ |
์ง์ ์ธ์ด | Node.js, Python, Ruby, Java ๋ฑ | ๋ชจ๋ ์ธ์ด ์ง์ |
๋ฌด๋ฃ ํ๋ | ์์ (๋จ, ์ฌ๋ฆฝ ๋ชจ๋ ์ ์ฉ) | ์ ํ์ |
Add-ons | ๋ค์ํ ์ธ๋ถ ์๋น์ค ํตํฉ ์ง์ | ์์ฒด์ ์ผ๋ก ์๋น์ค ๊ตฌ์ถํด์ผ ํจ |
๐ก Heroku๋ ๋น ๋ฅธ ๋ฐฐํฌ๊ฐ ์ฅ์ , AWS/GCP๋ ๋๊ท๋ชจ ํ๋ก์ ํธ์ ์ ํฉ!
7๏ธโฃ Heroku ํ์ฉ ์ฌ๋ก ๐ฏ
โ ์คํํธ์ MVP ๊ฐ๋ฐ
• AWS/GCP๋ณด๋ค ๋น ๋ฅด๊ฒ ์ด๊ธฐ ์ ํ(MVP)์ ๋ฐฐํฌ ๊ฐ๋ฅ
• ๋น์ฉ ์ ๊ฐ & ์ ์ง๋ณด์ ๋ถ๋ด ๊ฐ์
โ ๋ฐฑ์๋ API ์๋ฒ
• Node.js, Express, Django ๋ฑ์ ๋ฐฑ์๋ API ์๋ฒ ์ด์ ๊ฐ๋ฅ
โ CI/CD ์ฐ๋
• GitHub์ ์๋ ๋ฐฐํฌ ์ค์ ํ์ฌ ๋น ๋ฅธ ๊ฐ๋ฐ ์ฌ์ดํด ๊ฐ๋ฅ
โ ์๋ฒ๋ฆฌ์ค ์ํคํ ์ฒ
• ํ์ํ ๋๋ง Dyno๋ฅผ ์คํํ์ฌ ๋น์ฉ ์ ๊ฐ ๊ฐ๋ฅ
8๏ธโฃ ๊ฒฐ๋ก : Heroku, ์ธ์ ์ฌ์ฉํด์ผ ํ ๊น? ๐ค
โ ์ธํ๋ผ ์ค์ ์์ด ๋ฐ๋ก ๋ฐฐํฌํ๊ณ ์ถ์ ๊ฒฝ์ฐ
โ ์คํํธ์ , ๊ฐ์ธ ํ๋ก์ ํธ, ์ฌ์ด๋ ํ๋ก์ ํธ์ ์ ํฉ
โ CI/CD, GitHub ์ฐ๋์ด ๊ฐํธํ ํ๋ซํผ์ ์ํ ๋
โ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์บ์, ๋ก๊น ์ ์ฝ๊ฒ ์ถ๊ฐํ๊ณ ์ถ์ ๋
๐ก Heroku๋ AWS/GCP๋ณด๋ค ์ค์ ์ด ๊ฐ๋จํ๊ณ , GitHub๊ณผ์ ์ฐ๋์ด ๊ฐ๋ ฅํด์ ๋น ๋ฅธ ๋ฐฐํฌ์ ์ต์ ํ๋ ์๋น์ค!
๐ฅ “ํ ์ค ๋ช ๋ น์ด๋ก ๋ฐฐํฌ ๋! Heroku๋ก ๋น ๋ฅธ ๊ฐ๋ฐ ๊ฒฝํ์ ๋๋ ค๋ณด์!”
๐ ์ ์ค์ ๊ฐ๋ฐ์๊ฐ ๋์ด๋ด ์๋น! ๐ท
'Dev-ops' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐จ Sentry ์๋ฒฝ ๊ฐ์ด (0) | 2025.04.01 |
---|---|
๐ดโโ ๏ธ Bitbucket ์๋ฒฝ ๊ฐ์ด๋ (0) | 2025.03.31 |
๐ GCP (Google Cloud Platform) (0) | 2025.03.29 |
๐ GitLab ์๋ฒฝ ๊ฐ์ด๋ (0) | 2025.03.28 |
๐ GitHub Actions CI ์ํฌํ๋ก (0) | 2025.03.27 |