<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λ‘ λ°°ν¬λ μ± μ μ νμΈ.
μ΄ κ°μλ₯Ό λ§μΉλ©΄ μ¬λ¬λΆμ λ€μμ ν μ μκ² λ©λλ€:
docker compose up
/run
μΌλ‘ 컨ν
μ΄λ λ°°ν¬/μ€ν.