올 하반기에는 우리 팀에서 사용하는 서비스를 ECS로 옮기는 작업을 진행했습니다. 이를 위해 강의를 몇 개 들었었는데, 대충대충 넘어간 파트들이 있어 이번 연말에 시간이 좀 남는 관계로 Recap을 하고 있습니다.

Docker compose를 이용해 여러개의 서비스를 컨테이너에 올리는 예제를 중심으로 진행이 되었는데, 중간에 NGINX를 컨테이너에 올려 설정하는 챕터가 하나 할당되어 있고, 계속적으로 이 Reserve Proxy를 수정하는 내용이 나오더군요. 개발자 랩탑에서는 중간의 로드 발란서의 역할을 해주는 녀석이 필요하므로 NGINX를 쓰는 것을 이해할 수 있었으나, AWS에서 과연 NGINX를 사용할 필요가 있을까라는 의문이 들더군요. 이번에 이전한 서비스는 모두 Application Load Balancer를 이용해서 받는 요청을 라우팅 하기 때문에 NGINX를 사용할 필요가 전혀 없었기에 드는 의문이었습니다.

구글을 검색하니 마이크로 소프트에서 NGINX 사용을 권장하는 것이 나오네요.

Kestrel is great for serving dynamic content from ASP.NET Core. However, the web serving capabilities aren't as feature rich as servers such as IIS, Apache, or Nginx. A reverse proxy server can offload work such as serving static content, caching requests, compressing requests, and HTTPS termination from the HTTP server. A reverse proxy server may reside on a dedicated machine or may be deployed alongside an HTTP server.

 

이번에 이전한 모든 서비스가 .NET Core로 되어 있는데, Kestrel이 IIS가 지원하는 모든 기능을 가지고 있지 않으므로 보완적으로 NGINX를 쓰라고 하는군요. 다음 프로젝트부터는 사용하는 것을 적극 권장해야겠습니다. Console Application으로 돌아가는 Kestrel은 NGINX 없이 서버에 올리는게 일반적인데, 그럼 이럴 경우는 앞단에 새로운 웹서버를 두어야 하는 형태가 돼야 하나요? 게다가 Windows 서버에서 돌아가는 어플리케이션이라면... NGINX가 Windows에서는 성능이 엉망이라고 하던데... 아이러니하네요.

https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-5.0

'개발 이야기' 카테고리의 다른 글

캘거리에 아마존 AWS가 온다  (3) 2021.12.16
캐나다 회사 복지  (0) 2021.12.11
오랜만에 모인 팀  (0) 2021.12.06
AWS 네트워크 로드 발란서 수정  (0) 2021.12.04
캘거리 개발자 구인 마켓  (0) 2021.11.16
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기