
회사에서 AWS 관련된 설정들을 확인하는 과정에서 가장 눈에 띄는 것은 Data Transfer 비용이었다. 단순하게 리소스를 확인할 수 있는 다른 호스팅 서비스와 다르게, Data Transfer는 AWS의 트래픽 과금 정책에 따라서 지불하는 금액을 말한다.
사실 클라우드라는 것은 어딘가에 있는 온프레미즈이다(!) 한국에는 총 네 개의 AWS 데이터 센터가 있다. 일산? 평촌? 자세한 위치 파악은 힘들었으나, 네 개의 온프레미즈 데이터 센터가 있다. 당연히 그 데이터 센터에서는 네트워크 작업이 철저하게 되어있어. 우리가 AWS 콘솔을 통해서 사용하려고 하면 손쉽게 리소스를 가져다 쓸 수 있도록 되어있다.
우리가 인터넷을 사용하게 되면, 대한민국의 통신사( KT, SKT, LG U+ )를 통해서 트래픽이 돌아다니게 된다. 해외에 있는 사이트에 접속하는 경우에는 통신사를 경유해서 타고 나가, 다른 나라에 있는 통신사를 거쳐 트래픽이 도달하게 된다.
생각해 보면, 한국 외부로 빠져나가는 것보다, 한국 내부에서 트래픽을 전달하는 것이 더욱 저렴할 것이다. 좀 더 생각해 보면, 네 개의 데이터센터가 있는데, 그 데이터센터 내부에서 흐르는 트래픽을 훨씬 저렴할 것이다. 이번 포스팅에서는 AWS의 트래픽 비용에 대해서 알아보며, 비용을 절감할 수 있을 만한 포인트를 알아보려고 한다.
본론
기본 개념
앞서, 한국에는 네 개의 데이터센터가 있다고 했다. AWS에서는 이러한 데이터센터를 가용 영역(Availiable Zone)으로 정의하여, 대한민국 리전(ap-northeast-2)에서는 총 네 개의 AZ를 제공한다. ( 각각 a, b, c, d ) 따라서, AWS에서 다양한 서비스를 제공하게 된다면, 이러한 AZ끼리의 통신, 해외로 나가는 트래픽들을 고려해서 점검해야 한다. AWS의 트래픽 비용은 상황에 따라서 꽤 비싸기 때문이다.
먼저, AWS에서 제공한 기본적인 필독서를 살펴보면 다음과 같다.
- [AWS] 데이터 전송 비용 알아보기 : https://aws.amazon.com/ko/blogs/korea/overview-of-data-transfer-costs-for-common-architectures/
AWS 범용 클라우드 아키텍처의 데이터 전송 비용 알아보기 | Amazon Web Services
AWS에서 서비스 아키텍처를 설계하는 동안, 각 부분의 데이터 전송 요금을 간과하는 경우가 많습니다. 여러분이 아키텍처 관련 결정을 내리는 동안 데이터 전송 요금을 고려하면 비용을 절감하
aws.amazon.com
간단하게 요약하면 다음과 같다.
- Inbound 트래픽 : 무료
- Outbound 트래픽 :
- Internet : 0.126 $ / GB
- Other Region : 0.08 $ / GB
- Same Region Other AZ : 0.02 $ / GB
- Same Region Same AZ : Free!
위와 같이 가격을 확인할 수 있다. 자세한 트래픽 비용을 확인하고자 하는 사람들에게는 다음 사이트를 추천한다.
- [AWS] calculator : https://calculator.aws/#/createCalculator/DataTransfer
AWS Pricing Calculator
calculator.aws
AZ 간 트래픽
한국에 네 개의 영역에 데이터센터가 있다고 생각해 보면, 수지타산이 맞는다. 다음의 예시를 보자.

위 사진은 하나의 리전에서 두 AZ 간에 통신하는 부분을 나타낸 것이다. 중요한 포인트는 빨간색 화살표는 비용이 발생한다는 점이다. 여기서, RDS 간에 트래픽은 분명 AZ를 통과하는데, 초록색 화살표로 나타난 이유는 RDS의 Replication 기능을 사용하면, 추가적인 트래픽 비용이 나오지 않기 때문이다.
여기서 중요한 부분은 가용 영역을 몇 개를 사용하는 것이다. 가용 영역에 대해서 크게 관심을 기울이지 않은 사용자라면, 그냥 이것저것 누르고 생성할 수 있다. 하지만, 개발 환경에서는 가용 영역을 한 개만 써도 충분하고, 프로덕션 환경에서는 최소 두 개부터 시작해야 한다. 가용 영역을 여러 개 설정하는 경우, 말 그대로 고가용성을 확보할 수 있게 된다. 큰 사고를 생각해 보면 데이터센터에 화재가 난다고 치면, 특정 가용 영역은 아예 활용할 수 없다. 작은 사고를 생각해 보면 데이터센터에 잠깐 동안 네트워크가 끊기는 정도가 있을 수 있다. 이런 부분을 고려해서 가용 영역을 선택해야 한다.
이렇게 되면 트래픽 비용이 발생하는 원리는 이론적으로 알 수 있다. 그렇다면 실제로는 어떻게 해야 할까? 꼭 점검해야 하는 필수 사항들에 대해서 같이 살펴보자.
S3 설정
먼저, S3는 자주 사용하는 오브젝트 스토리지로, 이미지나 동영상까지 다양한 파일을 저장하게 된다. 일반적으로 HTTP 요청&응답이 흐르는 경우와 다르게 고용량의 파일들을 네트워크를 통해 다운로드하게 되면, 큰 트래픽 비용이 발생할 수 있다.
S3는 액세스 지점 생성을 통해서 VPC를 통해 데이터를 전달받도록 설정할 수 있다. 가끔씩 EC2 같은 리소스의 설정을 잘못하게 되면, S3에서 데이터를 가져오는 데, 인터넷을 거치는 등의 이슈가 발생할 수 있기 때문에, 꼭 체크하도록 하자.

그리고 용량이 큰 파일을 업로드하는 경우, 데이터를 압축해서 보내는 것을 항상 잊지 말자. 이 외에도 DynamoDB 같은 리소스에도 액세스 할 때, VPC 설정을 통해서 트래픽 비용을 아낄 수 있다.
Cloudfront 설정
다음으로는, Cloudfront 설정이다. S3에서 직접 데이터를 전송하지 않고, Cloudfront를 통해서 데이터를 전송하도록 할 수 있다. 이때, 데이터를 캐시 할 수 있도록 설정할 수 있어. 상당 부분의 트래픽 비용을 줄일 수도 있다.

이 외에도, Price class에 대해서 잘 모르는 사람들이 꽤 있는데, AWS는 전 세계에 216개의 Edge Location이 있다. 맨 위의 경우는 216개, 그리고 두 번째는 200개 마지막은 100개의 Edge Location만을 사용하게 된다. 만약, 글로벌 서비스가 아니라면 가장 낮은 클래스부터 시작하는 것도 나쁘지 않다. 어차피 Cloudfront의 Price class 설정을 나중에 바꿔줄 수 있기 때문이다.
개발 환경
개발 환경의 경우에는 일반적으로는 여러 가용 영역을 사용할 필요가 크게 없기에, 단일 AZ를 사용해도 무방하다. RDS와 같은 인스턴스 생성 시에 다중 AZ를 물어보는데, 이때 단일 AZ를 사용하도록 설정함으로써 AZ 간의 트래픽 비용을 아낄 수 있다.
이 외에도 개발 환경에서는 업무 시간 외에는 개발 환경에 접근할 필요가 없을 수도 있다. 이 경우에는 Lambda 등을 통해서 인스턴스를 중단해서, 24시간씩 발생하는 온디맨드 요금도 소소하게 줄일 수 있다.
Cloudwatch
Cloudwatch를 통해서 트래픽이 얼마나 발생하는지, 지속적인 모니터링도 중요하다. Network In/Out에 대한 정보를 지속적으로 확인함으로써 어떤 서비스에서 트래픽이 발생하는지 파악하는 것도 중요하다.

특히나, 다른 AZ에 액세스 할 가능성이 있는 EC2, RDS와 같은 경우에는 더더욱 중요한 포인트가 된다.
마치며
트래픽 비용에 대한 것은 알고는 있었으나, 실제로 점검해야 하는 경우에 어떻게 해야 할지 몰라서 많이 헤맸던 것 같다. 찾아보니까 트래픽 비용이 크게 발생하는 지점은 어느 정도 정해져 있었으며, 결국 가장 기본적인 VPC와 같은 네트워크 기본기로 이어지는 것 같다.
'DevOps > AWS' 카테고리의 다른 글
AWS를 통한 백엔드 배포 ( ECS, ALB, Route53 ) (7) | 2024.10.21 |
---|---|
AWS를 통한 프론트엔드 배포 ( S3, CDN, Route53 ) (3) | 2024.10.21 |

회사에서 AWS 관련된 설정들을 확인하는 과정에서 가장 눈에 띄는 것은 Data Transfer 비용이었다. 단순하게 리소스를 확인할 수 있는 다른 호스팅 서비스와 다르게, Data Transfer는 AWS의 트래픽 과금 정책에 따라서 지불하는 금액을 말한다.
사실 클라우드라는 것은 어딘가에 있는 온프레미즈이다(!) 한국에는 총 네 개의 AWS 데이터 센터가 있다. 일산? 평촌? 자세한 위치 파악은 힘들었으나, 네 개의 온프레미즈 데이터 센터가 있다. 당연히 그 데이터 센터에서는 네트워크 작업이 철저하게 되어있어. 우리가 AWS 콘솔을 통해서 사용하려고 하면 손쉽게 리소스를 가져다 쓸 수 있도록 되어있다.
우리가 인터넷을 사용하게 되면, 대한민국의 통신사( KT, SKT, LG U+ )를 통해서 트래픽이 돌아다니게 된다. 해외에 있는 사이트에 접속하는 경우에는 통신사를 경유해서 타고 나가, 다른 나라에 있는 통신사를 거쳐 트래픽이 도달하게 된다.
생각해 보면, 한국 외부로 빠져나가는 것보다, 한국 내부에서 트래픽을 전달하는 것이 더욱 저렴할 것이다. 좀 더 생각해 보면, 네 개의 데이터센터가 있는데, 그 데이터센터 내부에서 흐르는 트래픽을 훨씬 저렴할 것이다. 이번 포스팅에서는 AWS의 트래픽 비용에 대해서 알아보며, 비용을 절감할 수 있을 만한 포인트를 알아보려고 한다.
본론
기본 개념
앞서, 한국에는 네 개의 데이터센터가 있다고 했다. AWS에서는 이러한 데이터센터를 가용 영역(Availiable Zone)으로 정의하여, 대한민국 리전(ap-northeast-2)에서는 총 네 개의 AZ를 제공한다. ( 각각 a, b, c, d ) 따라서, AWS에서 다양한 서비스를 제공하게 된다면, 이러한 AZ끼리의 통신, 해외로 나가는 트래픽들을 고려해서 점검해야 한다. AWS의 트래픽 비용은 상황에 따라서 꽤 비싸기 때문이다.
먼저, AWS에서 제공한 기본적인 필독서를 살펴보면 다음과 같다.
- [AWS] 데이터 전송 비용 알아보기 : https://aws.amazon.com/ko/blogs/korea/overview-of-data-transfer-costs-for-common-architectures/
AWS 범용 클라우드 아키텍처의 데이터 전송 비용 알아보기 | Amazon Web Services
AWS에서 서비스 아키텍처를 설계하는 동안, 각 부분의 데이터 전송 요금을 간과하는 경우가 많습니다. 여러분이 아키텍처 관련 결정을 내리는 동안 데이터 전송 요금을 고려하면 비용을 절감하
aws.amazon.com
간단하게 요약하면 다음과 같다.
- Inbound 트래픽 : 무료
- Outbound 트래픽 :
- Internet : 0.126 $ / GB
- Other Region : 0.08 $ / GB
- Same Region Other AZ : 0.02 $ / GB
- Same Region Same AZ : Free!
위와 같이 가격을 확인할 수 있다. 자세한 트래픽 비용을 확인하고자 하는 사람들에게는 다음 사이트를 추천한다.
- [AWS] calculator : https://calculator.aws/#/createCalculator/DataTransfer
AWS Pricing Calculator
calculator.aws
AZ 간 트래픽
한국에 네 개의 영역에 데이터센터가 있다고 생각해 보면, 수지타산이 맞는다. 다음의 예시를 보자.

위 사진은 하나의 리전에서 두 AZ 간에 통신하는 부분을 나타낸 것이다. 중요한 포인트는 빨간색 화살표는 비용이 발생한다는 점이다. 여기서, RDS 간에 트래픽은 분명 AZ를 통과하는데, 초록색 화살표로 나타난 이유는 RDS의 Replication 기능을 사용하면, 추가적인 트래픽 비용이 나오지 않기 때문이다.
여기서 중요한 부분은 가용 영역을 몇 개를 사용하는 것이다. 가용 영역에 대해서 크게 관심을 기울이지 않은 사용자라면, 그냥 이것저것 누르고 생성할 수 있다. 하지만, 개발 환경에서는 가용 영역을 한 개만 써도 충분하고, 프로덕션 환경에서는 최소 두 개부터 시작해야 한다. 가용 영역을 여러 개 설정하는 경우, 말 그대로 고가용성을 확보할 수 있게 된다. 큰 사고를 생각해 보면 데이터센터에 화재가 난다고 치면, 특정 가용 영역은 아예 활용할 수 없다. 작은 사고를 생각해 보면 데이터센터에 잠깐 동안 네트워크가 끊기는 정도가 있을 수 있다. 이런 부분을 고려해서 가용 영역을 선택해야 한다.
이렇게 되면 트래픽 비용이 발생하는 원리는 이론적으로 알 수 있다. 그렇다면 실제로는 어떻게 해야 할까? 꼭 점검해야 하는 필수 사항들에 대해서 같이 살펴보자.
S3 설정
먼저, S3는 자주 사용하는 오브젝트 스토리지로, 이미지나 동영상까지 다양한 파일을 저장하게 된다. 일반적으로 HTTP 요청&응답이 흐르는 경우와 다르게 고용량의 파일들을 네트워크를 통해 다운로드하게 되면, 큰 트래픽 비용이 발생할 수 있다.
S3는 액세스 지점 생성을 통해서 VPC를 통해 데이터를 전달받도록 설정할 수 있다. 가끔씩 EC2 같은 리소스의 설정을 잘못하게 되면, S3에서 데이터를 가져오는 데, 인터넷을 거치는 등의 이슈가 발생할 수 있기 때문에, 꼭 체크하도록 하자.

그리고 용량이 큰 파일을 업로드하는 경우, 데이터를 압축해서 보내는 것을 항상 잊지 말자. 이 외에도 DynamoDB 같은 리소스에도 액세스 할 때, VPC 설정을 통해서 트래픽 비용을 아낄 수 있다.
Cloudfront 설정
다음으로는, Cloudfront 설정이다. S3에서 직접 데이터를 전송하지 않고, Cloudfront를 통해서 데이터를 전송하도록 할 수 있다. 이때, 데이터를 캐시 할 수 있도록 설정할 수 있어. 상당 부분의 트래픽 비용을 줄일 수도 있다.

이 외에도, Price class에 대해서 잘 모르는 사람들이 꽤 있는데, AWS는 전 세계에 216개의 Edge Location이 있다. 맨 위의 경우는 216개, 그리고 두 번째는 200개 마지막은 100개의 Edge Location만을 사용하게 된다. 만약, 글로벌 서비스가 아니라면 가장 낮은 클래스부터 시작하는 것도 나쁘지 않다. 어차피 Cloudfront의 Price class 설정을 나중에 바꿔줄 수 있기 때문이다.
개발 환경
개발 환경의 경우에는 일반적으로는 여러 가용 영역을 사용할 필요가 크게 없기에, 단일 AZ를 사용해도 무방하다. RDS와 같은 인스턴스 생성 시에 다중 AZ를 물어보는데, 이때 단일 AZ를 사용하도록 설정함으로써 AZ 간의 트래픽 비용을 아낄 수 있다.
이 외에도 개발 환경에서는 업무 시간 외에는 개발 환경에 접근할 필요가 없을 수도 있다. 이 경우에는 Lambda 등을 통해서 인스턴스를 중단해서, 24시간씩 발생하는 온디맨드 요금도 소소하게 줄일 수 있다.
Cloudwatch
Cloudwatch를 통해서 트래픽이 얼마나 발생하는지, 지속적인 모니터링도 중요하다. Network In/Out에 대한 정보를 지속적으로 확인함으로써 어떤 서비스에서 트래픽이 발생하는지 파악하는 것도 중요하다.

특히나, 다른 AZ에 액세스 할 가능성이 있는 EC2, RDS와 같은 경우에는 더더욱 중요한 포인트가 된다.
마치며
트래픽 비용에 대한 것은 알고는 있었으나, 실제로 점검해야 하는 경우에 어떻게 해야 할지 몰라서 많이 헤맸던 것 같다. 찾아보니까 트래픽 비용이 크게 발생하는 지점은 어느 정도 정해져 있었으며, 결국 가장 기본적인 VPC와 같은 네트워크 기본기로 이어지는 것 같다.
'DevOps > AWS' 카테고리의 다른 글
AWS를 통한 백엔드 배포 ( ECS, ALB, Route53 ) (7) | 2024.10.21 |
---|---|
AWS를 통한 프론트엔드 배포 ( S3, CDN, Route53 ) (3) | 2024.10.21 |