트래픽에 따른 예상 비용
Azure에 리소스 사용별 가용에 따른 비용예상 현재 상태에서 정확한금액을 예측하기는 어렵습니다. 다만 여러가지 대시보드 & 통계데이타를 통해서 금액적으로 줄일수 있는 부분을 계속해서 체크해야합니다. 다양한 모니터링 데이타를 통해서 수집 가능합니다.
AKS
고정영역
- Kubernetes 서비스 사용비용 : 92,000원
트래픽에 따른 가용영역
AKS Node(VM Computer)
평균 사용자에 따른 기준으로 사양을 선택해야함. - 평균적으로 발생하는 데이타를 기준으로 모니터링하여 각 서비스(리소스)와 노드(기본개수)를 안정적으로 구성함
비용 : 현재 사양기준 월(100만원) -> Standard_D3_v2 변경 필요에 따른 기존대비 2배 비용발생 현재 사양: Standard_DS2_v2(기본) * 7대 - 2CPU/7GiB메모리/IOPS 디스크 처리량 8*500G(RAID구성)/1500Mbps(대역폭) 가용 비용 : Standard_D3_v2 * 2 -> 월200만원예상
로드 테스트 : 동접 100명기준으로 Webtoon 서비스 테스트 진행
-
비용절감 서비스 API 로드 테스트를 통해서 확장되는 Pod을 모니터링하여 적절한 사양 리소스를 처리하며 그에 따른 확장하여 Node 생성을 줄인다.
-
참고 Terraform을 Nodepool 내용 참고 아래와같이 구성되어 있으며, 최대 Max는 5대로 구성되어 있습니다. 성격에 따라서 vm_size를 수정하여 적절한 사양으로 교체해줘야 IP이슈나 기타 대역폭에 따른 처리를 할수 있습니다.
node_pools = {
user = {
name = "user"
mode = "User"
kubernetes_cluster_id = module.aks.aks_id
vm_size = "Standard_DS2_v2"
enable_auto_scaling = true
node_count = 2
min_count = 2
max_count = 5
vnet_subnet_id = local.vnet_private_subnet_2_id
# Add temporary_name_for_rotation for properties that require it
temporary_name_for_rotation = "user"
}
ingress = {
name = "ingress"
mode = "System"
kubernetes_cluster_id = module.aks.aks_id
vm_size = "Standard_DS2_v2"
enable_auto_scaling = true
node_count = 1
min_count = 1
max_count = 5
vnet_subnet_id = local.vnet_private_subnet_3_id
# Add temporary_name_for_rotation for properties that require it
temporary_name_for_rotation = "ingress"
}
worker = {
name = "worker"
mode = "User"
kubernetes_cluster_id = module.aks.aks_id
vm_size = "Standard_DS2_v2" // "Standard_D3_v2"
enable_auto_scaling = true
node_count = 2
min_count = 2
max_count = 5
vnet_subnet_id = local.vnet_private_subnet_3_id
# Add temporary_name_for_rotation for properties that require it
temporary_name_for_rotation = "worker"
}
}Azure Database for PostgreSQL
비용 : 219,000원 가용 비용 : 쿼리요청에 따른 트래픽에 맞춰 수정됨. 사용자 데이타가 많아짐에 따라서 프로세스하는 비용이 발생됨. 속도향상을 위해서는 옵션을 통해서 비용 추가 발생함. 그에 따른 캐시를 활용하여 비용 축소
최대 : 219,000원 * 3 (D8ds 8vCore / 32GiB)
현재 사양 : GP_Standard_D2s_v3 / 2vCore / 8GiB사용중
Storage
AKS Node Diks비용
비용 : 150,000원 가용 비용 : 150,000원 * 3 => 내부 서비스 사용하는 AKS Node DISK의 용량증가에 따른 비용추가
EventHub
각각의 마이크로서비스간의 데이타 통신과 로그 수집을 활용하는데 사용하고 있습니다. Capture는 이벤트 데이타를 DB + Topic에 저장하는 용도로 사용하고 있습니다. 기본 Throughput Unit에 따라서 속도 응답속도 개선이 있어서 사용자에 따라서 유닛은 늘릴계획입니다.
비용 : (Capture 고정비용)92,000원 + Throughput Unit(1) * 27,900원 가용 비용 : 사용자가 많은경우: Throughput Unit(10) * 270,900원
Stream Analyzer
EventHub을 통해서 전달받은 데이타를 실시간 DB 압축 Avro & Topic Service Bus에 전달하여 서버에서 순차적으로 가져오는 작업 -> Elasticsearch 추후 이벤트 데이타를 통해서 사용자 행동 분석용으로 사용함.
비용 : 126,000원 가용 비용 : 126,000원 * 3 스케일에 따른 비용발생 현재는 스트리밍 단위는1개로 설정되어있습니다. 내부 모니터링을 통해서 확대 1 -> 3으로 설정
참고
https://learn.microsoft.com/ko-kr/azure/virtual-machines/dv2-dsv2-series (opens in a new tab)