해결된 질문
작성
·
326
0
답변 1
2
안녕하세요.
모든 아키텍처에는 구성의 이유가 있습니다. 이유없이 사용되는 아키텍처는 없습니다. // nginx 는 웹서비스 아키텍처에서 다양한 역할로 사용될 수 있습니다. 일반적으로 nginx 를 앞단에 두는 경우는 부하 분산 (load balancer)의 역할로서 두는 경우가 많습니다. Azure나 AWS 등의 클라우드의 환경에서는 부하 분산의 역할을 별도의 서비스가 있습니다. Azure에서는 Azure에서 부하 분산 서비스 사용 문서를 참고해보실 수 있구요. AWS에서는 Application Load Balancer란 무엇입니까? 문서를 참고해보실 수 있습니다.
별도의 부하 분산 서비스를 이용하지 않더라도, Azure App Service 에서는 부하를 컨테이너가 직접 받는 것이 아니라, Azure App Service 서비스가 먼저 받아서 전달해주는 것이기 때문에, 일반적인 nginx의 역할을 이미 해주고 있습니다. 그러니 Azure App Service 환경에서는 굳이 nginx를 앞단에 두지 않으셔도 괜찮습니다.
Azure App Service에서의 docker compose지원은 다른 클라우드 서비스에는 없는 기능인데요. Azure App Service에서의 docker compose는 아직 preview이기에 사용하시기 적합하지 않으실 듯 하구요. preview로 기능 제공이 된 지 꽤 된 거 같은 데, 아직 정식이 되지 않은 걸 보면 아마도 정식 지원은 기대하기 힘들 듯 싶습니다. MS 입장에서도 그리 효용성 높은 기능이 아니라고 판단한 것이 아닌 가 싶습니다.
Azure App Service에서 부하 분산이 필요하시다면, 위에서 언급드린 다양한 부하분산 서비스를 이용하시거나, nginx가 꼭 필요하시다면, 별도의 VM이나 app service를 통해 nginx를 구축하시고, 이 nginx를 통해 장고 서비스로 트래픽이 전달되도록 virtual network 구성하시는 방식이 맞으실 듯 합니다. // 아키텍처는 정답이 없으니, 다양하게 고민을 해보시면 좋으실 듯 합니다.
클라우드 환경이 아니거나, 직접 VM을 구축해서 서비스를 하실 경우에는 nginx 운영에 좀 더 포커스가 갈텐데요. 이때 nginx 쿡북이라는 책이 있습니다. 이 책을 참고하시면 좀 더 많은 인사이트를 얻으실 수 있구요. OpenResty 라는 nginx 플랫폼이 있는 데, 같이 참고해보시면 좋습니다.
화이팅입니다. :-)