<aside>

</aside>

μ•ˆλ…•ν•˜μ„Έμš”! λ“œλ””μ–΄ μ‹€μ œ 배포 μ‹€μŠ΅ μ‹œκ°„, 8λΆ€μ˜ λ„€ 번째 μ‹œκ°„μΈ 40κ°•μž…λ‹ˆλ‹€! πŸš€β˜οΈ

μ§€λ‚œ 39κ°•μ—μ„œλŠ” AWS에 μ»¨ν…Œμ΄λ„ˆν™”λœ FastAPI 앱을 λ°°ν¬ν•˜λŠ” λ‹€μ–‘ν•œ μ˜΅μ…˜(EC2, Elastic Beanstalk, ECS/Fargate)에 λŒ€ν•΄ 이둠적으둜 μ‚΄νŽ΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€. 각 λ°©μ‹μ˜ μž₯단점을 μ΄ν•΄ν•˜κ³ , μš°λ¦¬κ°€ 이번 μ‹€μŠ΅μ—μ„œ EC2 + Docker 방식을 μ‚¬μš©ν•˜λŠ” 이유(배포의 기초λ₯Ό λ‹€μ§€κΈ° μœ„ν•΄!)도 μ•Œκ²Œ λ˜μ—ˆμ£ .

이번 μ‹œκ°„μ—λŠ” 이둠을 λ„˜μ–΄ μ‹€μ œλ‘œ AWS EC2 가상 μ„œλ²„λ₯Ό μƒμ„±ν•˜κ³ , 여기에 μ ‘μ†ν•˜μ—¬ Docker ν™˜κ²½μ„ μ„€μ •ν•œ λ’€, μš°λ¦¬κ°€ λ§Œλ“  FastAPI μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ»¨ν…Œμ΄λ„ˆ(λ“€)을 λ°°ν¬ν•˜λŠ” μ „ 과정을 λ‹¨κ³„λ³„λ‘œ μ‹€μŠ΅ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€!

λ‹¨μˆœνžˆ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‹€ν–‰ν•˜λŠ” κ²ƒλΏλ§Œ μ•„λ‹ˆλΌ, μ™ΈλΆ€ μ‚¬μš©μžκ°€ ν‘œμ€€ HTTP(S) 포트(80/443)둜 μ ‘μ†ν–ˆμ„ λ•Œ λ‚΄λΆ€ μ»¨ν…Œμ΄λ„ˆ(보톡 8000번 포트 μ‚¬μš©)둜 μš”μ²­μ„ μ•ˆμ „ν•˜κ²Œ μ „λ‹¬ν•΄μ£ΌλŠ” λ¦¬λ²„μŠ€ ν”„λ‘μ‹œ(Reverse Proxy) 역할을 ν•˜λŠ” Nginx μ›Ή μ„œλ²„λ₯Ό μ„€μΉ˜ν•˜κ³  μ„€μ •ν•˜λŠ” λ°©λ²•κΉŒμ§€ λ‹€λ£° κ²ƒμž…λ‹ˆλ‹€.

이제 μ—¬λŸ¬λΆ„μ˜ APIλ₯Ό μ „ 세계 μ‚¬μš©μžλ“€μ΄ μ ‘κ·Όν•  수 μžˆλ„λ‘ ν΄λΌμš°λ“œμ— μ˜¬λ €λ΄…μ‹œλ‹€! πŸ₯³


πŸ“š 챕터 μ†Œκ°œ

39κ°• 이둠 기반, μ»¨ν…Œμ΄λ„ˆν™”λœ FastAPI μ•±μ˜ AWS EC2 μΈμŠ€ν„΄μŠ€ 배포 ꡬ체적 μ‹€μŠ΅. ν΄λΌμš°λ“œ ν™˜κ²½ μ›Ή μ•± 배포 κΈ°λ³Έ 흐름 직접 κ²½ν—˜.

λ¨Όμ €, AWS 관리 μ½˜μ†” ν†΅ν•œ EC2 μΈμŠ€ν„΄μŠ€(Linux 가상 μ„œλ²„) 생성 및 SSH 원격 접속법 ν•™μŠ΅. 접속 ν›„ EC2 μΈμŠ€ν„΄μŠ€μ— Docker와 Docker Compose μ„€μΉ˜λ‘œ μ»¨ν…Œμ΄λ„ˆ ν™˜κ²½ ꡬ좕.

λ‹€μŒμœΌλ‘œ, 38κ°•μ—μ„œ μ€€λΉ„ν•œ μ•± μ†ŒμŠ€ μ½”λ“œ 및 Docker μ„€μ • νŒŒμΌλ“€μ„ EC2둜 가져와 docker compose up λ˜λŠ” docker build/run λͺ…λ Ήμ–΄λ‘œ FastAPI μ•± μ»¨ν…Œμ΄λ„ˆ μ‹€ν–‰.

μ»¨ν…Œμ΄λ„ˆ μ‹€ν–‰ ν›„, μ™ΈλΆ€ 인터넷 접근을 μœ„ν•΄ AWS λ³΄μ•ˆ κ·Έλ£Ή(Security Group) μ„€μ • λ³€κ²½ν•˜μ—¬ HTTP(80)/HTTPS(443) 포트 개방.

λ§ˆμ§€λ§‰μœΌλ‘œ, EC2 μΈμŠ€ν„΄μŠ€μ— Nginx μ›Ή μ„œλ²„ μ„€μΉ˜. μ™ΈλΆ€ 80 포트 μš”μ²­μ„ λ‚΄λΆ€ FastAPI μ»¨ν…Œμ΄λ„ˆ 8000 포트둜 μ „λ‹¬ν•˜λŠ” λ¦¬λ²„μŠ€ ν”„λ‘μ‹œ(Reverse Proxy) μ„€μ • ꡬ성. μ΅œμ’…μ μœΌλ‘œ EC2 곡인 IP/DNS둜 배포된 μ•± 접속 확인.


🎯 챕터 λͺ©ν‘œ

이 κ°•μ˜λ₯Ό 마치면 μ—¬λŸ¬λΆ„μ€ λ‹€μŒμ„ ν•  수 있게 λ©λ‹ˆλ‹€:

  1. AWS μ½˜μ†”μ„ μ‚¬μš©ν•œ EC2 Linux μΈμŠ€ν„΄μŠ€ 생성 및 μ‹œμž‘.
  2. SSHλ₯Ό μ΄μš©ν•œ EC2 μΈμŠ€ν„΄μŠ€ μ•ˆμ „ν•œ 원격 접속.
  3. EC2 μΈμŠ€ν„΄μŠ€μ— Docker 및 Docker Compose μ„€μΉ˜.
  4. Git으둜 μ½”λ“œ κ°€μ Έμ˜¨ ν›„ docker compose up/run으둜 μ»¨ν…Œμ΄λ„ˆ 배포/μ‹€ν–‰.