• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

ECS - Service 의 Load Balancer 요금

24.02.24 00:56 작성 24.02.24 00:59 수정 조회수 142

0

안녕하세요, 강사님,

섹션 9 : Container Orchestration - [AWS ECS - Service 사용해서 여러개의 Task 생성하고 Load balancer 연결해주기] 강의에서

  1. ECS Cluster 에 Service 를 만들 때, Service 에 적용하는 Load Balancer 도 내부적으로는 EC2 를 이용한 것인가요?

 

  1. Service 에 만든 Load Balancer 에도 별도의 Load Balancer 비용이 부과되나요?

LightSail 에서 적용했던 Load Balancer 와 동일하게 비용이 드는지 궁금합니다.

 

  1. 만약, 비용이 부과된다면, ECS 에서 여러 Task 에 auto scailing 을 적용할 경우, Load Balancer 의 갯수가 많아질텐데, 그 갯수만큼 비용이 부과되는지도 궁금합니다.

답변 2

·

답변을 작성해보세요.

1

답변 감사합니다.

답변 내용중 질문이 있습니다.

task가 몇개이든 상관 없이 load balancer는 하나라고 하셨는데요.

ECS 에서 Service 가 2개이고, 각 Service 에 Task 가 3개씩 달려 있는 경우, Load Balancer 는 2개가 되어야 하는 것 아닌가요?

이 경우는 Load Balancer 요금이 2배로 부과되는 것이 맞지요?

Load balancer 하나로 다 가능합니다. 어떤 경로로 들어왔을 때 어떤 service (target group)으로 요청을 전달할지 설정해주면 됩니다.

 

그리고 서비스가 여러개가 되어도 꼭 모두 외부에 노출 시킬 필요는 없어요. 서비스들끼리는 VPC 안에서 private ip로 안전하게 통신하고 외부에 꼭 노출 시켜야 하는 서비스만 Load balancer에 연결합니다. 특히 게이트웨이 역할을 하는 서비스 혹은 BFF 같은 서비스가 적용된 아키텍처라면 해당 서비스만 외부에 노출되어야 하기 때문에 Load balancer에 연결된 서비스는 하나가 됩니다. 프론트 SSR용 서버를 둔다고 하면 두개까지가 되겠네요. /api로 넘어오는건 게이트웨이 서비스로 전달, 그 외는 모두 프론트 서버로 보내주고요

0

ECS에서도 Load Balancer는 비용이 나갑니다. Load balancer도 일종의 서버이기 때문에 클라우드 리소스가 사용되거든요. 하지만 Load balancer 비용은 일반적으로 전체 서버 비용에 비하면 극히 일부만 나가게 됩니다. task가 몇개이든 상관 없이 load balancer는 하나이니깐요. Load balancer 하나에서 모든 요청을 받고 연결된 모든 task들에게 요청을 분산해줍니다.

비용은 조금 다릅니다. Lightsail에서는 VM, Lightsail 모두 고정된 비용으로 나가요. 고정된 가격 정책이라 매달 얼만큼 나갈지 정확한 예측이 가능하다는 장점이 있어요. 대신, 중간에 중단을 시키더라도 해당 달의 요금은 무조건 나갑니다. 요청이 일시적으로 많이 와서 VM을 왕창 늘렸다가 다시 줄여도 해당 달은 무조건 다 지불해야하는 아쉬움이 있는거죠. 즉, 부하에 따라 유기적으로 VM을 늘렸다 줄였다 하기 어려울뿐더러 하더라도 비용 최적화가 어렵습니다.

그에반면 EC2 load balancer, fargate 서버 비용은 사용한만큰 비례해서 나갑니다. 대신 계산이 좀 복잡합니다. 구체적인 비용은 여기서 확인할 수 있어요: https://aws.amazon.com/elasticloadbalancing/pricing/

그래서 autoscaling을 그때 그때 하게 되면 비용 최적화에 매우 좋습니다.

 

그런데 그러면 Lightsail VM은 무조건 안좋은거 아닌가? 라고 생각할 수도 있는데요. 생각보다 VM 한두개로 많은 요청을 감당할 수 있어요. 즉, auto scale이 애초에 필요 없는 환경일 수도 있고 그러면 그냥 VM으로 시작하는것도 방법이긴 합니다.