AWS 기술 블로그
자체 구축 계산기로 AWS 네트워크 비용 추정하기
이 글은 Networking & Content Delivery 블로그의 Estimate AWS networking costs with a self-hosted calculator 을 한국어 번역 및 편집하였습니다.
Amazon Web Services (AWS)는 다양한 네트워킹 서비스를 제공합니다. 이러한 서비스를 통해 AWS는 네트워킹과 관련된 더 많은 고객의 요구를 충족할 수 있지만, 이러한 다양성은 AWS 및 하이브리드 네트워킹 인프라를 설계할 때 아키텍처 결정을 내릴 때 고려할 수 있는 옵션의 수를 증가 시킵니다. 비용은 많은 고객이 아키텍처 결정을 내리는 주요 요인 중 하나 입니다.
네트워킹 비용을 추정하는 것은 어려울 수 있으며 서비스별로 제공되는 비용 페이지를 확인해야 합니다. AWS 비용 계산기는 이러한 비용을 추정하는 방법을 제공하지만 심층적인 네트워킹 비용 추정 및 분석에는 어려움이 있습니다. 이 게시물에서는 AWS 네트워킹에 초점을 맞춘 계산기를 실행하여 특정 네트워크 아키텍처에 대한 다양한 요금을 추정하고 시각 화 할 수 있는 샘플 오픈 소스 프로젝트를 소개합니다.
AWS 네트워크 비용 계산기
AWS Networking Costs Calculator(AWS 네트워크 비용 계산기)는 오픈 소스 웹 기반 비용 견적 도구로, AWS 리전, 아키텍처의 네트워킹 서비스, 사용된 엔드포인트 수, 전송 또는 처리되는 데이터 등 해당 서비스와 관련된 추가 입력을 선택할 수 있습니다. 그러면 트래픽의 연결과 흐름을 시각화하는 데 도움이 되는 샘플 다이어그램이 생성됩니다. 예를 들어, 아래 그림 1 에서는 AWS 미국 동부(북버지니아) 리전에서 Transit Gateway, Client VPN, , Virtual Private Cloud (VPC) peering이 선택되어 있습니다. 비용은 개별 엔드포인트 및 데이터 전송/데이터 처리 요금이 적용되는 화살표에 표시되어 있습니다. 그림 1의 예에서는 다음과 같은 요금이 적용됩니다.
- Transit Gateway를 통한 데이터 전송에 대해 $0.02/GB
- 가용 영역 간 VPC Peering 데이터 전송(양방향)에 대해 $0.01/GB
- 가용 영역당 Client VPN 엔드포인트에 대해 $0.1/시간
계산기에는 시간당 또는 월별 요금 추정치도 확인할 수 있습니다. 솔루션의 네트워킹 비용을 전체적으로 추정할 수 있으며, 관련 비용을 더 잘 이해하는 데 도움이 되는 시각화도 제공됩니다.

그림 1: AWS Networking Costs Calculator
AWS 네트워크 비용 계산기 아키텍처
계산기는 두 가지 주요 구성 요소로 이루어져 있습니다.
- AWS Price List Query API를 사용하여 다양한 네트워킹 서비스에 대한 업데이트된 비용을 가져오는 서버리스 백엔드 서비스가 있습니다. 이 프로세스는 AWS Lambda 함수 내에서 매일 실행되며, 비용은 Amazon DynamoDB에 캐싱됩니다.
- 계산기 사용자 인터페이스인 ReactJS 프런트엔드 웹 애플리케이션(Amazon Simple Storage Service(Amazon S3)에서 호스팅되고 Amazon CloudFront 배포로 제공)이 있습니다.
다음 다이어그램은 계산기 아키텍처를 보여줍니다.

그림 2: AWS Networking Costs Calculator 고 수준 아키텍처
솔루션 개요
AWS 계정에 솔루션을 배포하기 전에 다음 전제 조건이 충족되는지 확인해야 합니다.
전제 조건
- Linux 기반 OS(이 글이 게시되는 현재 Windows 배포 스크립트가 없습니다).
- NodeJS(버전 18 이상) 및 NPM. Node와 NPM은 설치가 간단합니다. 컴퓨터에서 사용할 수 있는지 확인하려면 다음 명령을 실행하세요.
- AWS Cloud Development Kit(AWS CDK)가 설치되어 있어야 합니다. (
npm install -g aws-cdk
로 설치할 수 있습니다). - 백엔드 리소스를 실행할 AWS 계정과 AWS Command Line Interface(AWS CLI)(v2)가 설치 및 구성되어 있어야 합니다. AWS CLI가 컴퓨터에 설치 및 구성되었는지 확인하려면 다음 명령을 실행하세요. 기본 사용자로 설정되어 있어야 합니다. 이 사용자가 백엔드 리소스를 배포할 수 있는 권한이 있는지 확인합니다.
전제 조건
필수 구성 요소가 충족되었는지 확인했으면 프로젝트의 루트 디렉터리에서 배포 스크립트를 실행합니다. 프로젝트의 소스 코드는 aws-samples networking-cost-calculator GitHub 리포지토리에서 찾을 수 있습니다.
$ ./deploy.sh
배포를 완료하는 데 일반적으로 5~10분 정도 소요됩니다. 이 과정에서 두 개의 AWS CloudFormation 스택이 배포됩니다.
- NetCalcBackendStack
- NetCalcFrontendStack
배포가 완료되면 도구에 액세스하는 데 사용할 수 있는 CloudFront URL이 제공됩니다.
AWS 네트워크 비용 계산기 사용 방법
프론트엔드 URL을 통해 웹 브라우저에서 AWS 네트워크 비용 계산기에 접속합니다. 이 URL은 그림 3 과 같이 AWS CDK 배포 프로세스가 끝날 때 콘솔에 응답값으로 반환 되거나 CloudFront 콘솔에서 찾을 수 있습니다.

그림 3: AWS 네트워크 비용 계산기에 접근하기 위한 CloudFront URL

그림 4: CloudFront URL을 사용하여 웹 브라우저에서 AWS 네트워킹 비용 계산기에 접근
그림 5와 같이 오른쪽 상단의 드롭다운 메뉴에서 원하는 AWS 리전을 선택합니다.

그림 5: AWS 리전 선택
비용을 계산하려는 AWS 서비스를 선택합니다. 그림 6과 같이 다이어그램에 해당 서비스가 표시됩니다.

그림 6: AWS 서비스 선택
그림 7과 같이 일부 서비스에서는 서비스의 상세 설정을 입력할 수 있습니다.

그림 7: 일부 서비스에 대한 추가 설정 입력
그림 8과 같이 Recurring Costs(정기적인 비용) 상자에서 각 서비스에 대한 반복 비용과 설정의 총 월별 비용을 확인할 수 있습니다. 비용은 각 서비스에 대한 추가 설정에 따라 조정됩니다.

그림 8: 월별 비용 보기
일부 AWS 서비스에는 추가 데이터 처리 또는 데이터 전송 비용이 부과될 수 있습니다. 그림 9와 같이 Data Processing Costs(데이터 처리 비용) 상자를 사용하여 이러한 비용을 계산할 수 있습니다.

그림 9: 월별 데이터 처리 비용 보기
솔루션 제거
AWS 계정에서 도구와 해당 구성 요소를 제거하려면 다음 명령을 사용하세요.
고려 사항
- 비용 추정 – 네트워크 아키텍처에 대한 도구에 표시되는 비용은 추정치입니다. 실제 발생하는 비용은 사용 중인 다른 AWS 서비스나 사용 중인 타사 제품 등의 요인에 따라 달라질 수 있습니다.
- 솔루션 비용 – 자체 호스팅 솔루션이므로 호스팅과 관련된 서비스 사용 비용은 솔루션이 호스팅되는 계정으로 청구됩니다.
- 도구 개선 사항 – 솔루션에서 모든 AWS 네트워크 서비스를 비용 견적에 사용할 수 있는 것은 아닙니다. 이 글이 게시되는 시점에서 사용할 수 있는 AWS 네트워킹 서비스는 다음과 같습니다.
- Amazon VPC
- Elastic Load Balancers
- Amazon Route 53
- AWS Direct Connect
앞으로도 계속해서 더 많은 서비스와 기능을 추가할 예정입니다.
- 지원 – 이 글이 게시되는 현재 솔루션에 대한 공식 지원은 제공되지 않습니다.
결론
AWS 네트워크 비용 계산기는 아키텍처의 네트워킹 비용에 대한 견적을 얻을 수 있는 훌륭한 도구입니다. 간단한 사용자 인터페이스를 통해 정기적인 비용과 데이터 전송 및 처리 비용 견적을 제공할 뿐만 아니라 네트워크 아키텍처 다이어그램에서 네트워킹 구성 요소와 비용을 시각적으로 표현할 수 있습니다. 문제가 발생하거나 기능 요청을 제출하려면 GitHub 리포지토리의 issues 탭 아래에 있는 New issue버튼을 사용하세요.