Amazon Virtual Private Cloud(Amazon VPC)에서 NAT 게이트웨이에 대한 AWS 청구서 비용이 평소보다 높은 것을 파악했습니다. VPC에서 NAT 게이트웨이를 통해 트래픽에 대한 최고 원인 제공자를 찾으려면 어떻게 해야 하나요?
해결 방법
참고: 다음 명령을 사용하여 x.x.x.x를 NAT 게이트웨이의 프라이빗 IP로 교체하세요. **y.y.**를 VPC CIDR 범위의 첫 두 옥텟으로 교체하세요.
VPC 또는 NAT 게이트웨이 탄력적 네트워크 인터페이스에서 VPC 흐름 로그가 켜져 있는지 확인합니다. 필요한 경우 흐름 로그를 만들어 VPC 흐름 로그를 켭니다. 흐름 로그 데이터는 Amazon CloudWatch Logs나 Amazon Simple Storage Solution(Amazon S3)에 게시할 수 있습니다.
CloudWatch 로그에서 쿼리하는 법
1. CloudWatch 콘솔을 엽니다.
2. 탐색 창에서 Logs Insights를 선택합니다.
3. 드롭다운 목록에서 NAT 게이트웨이의 로그 그룹을 선택합니다.
4. 어떤 인스턴스가 NAT 게이트웨이를 통해 가장 많은 트래픽을 보내는지 찾으려면 다음 쿼리를 실행합니다.
filter (dstAddr like 'x.x.x.x' and srcAddr like 'y.y.')
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10
5. 트래픽을 오가는 인스턴스를 찾으려면 다음 쿼리를 실행합니다.
filter (dstAddr like 'x.x.x.x' and srcAddr like 'y.y.') or (srcAddr like 'x.x.x.x' and dstAddr like 'y.y.')
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10
6. VPC의 인스턴스가 가장 자주 통신하는 인터넷 대상을 찾으려면 다음 쿼리를 실행합니다.
업로드용:
filter (srcAddr like 'x.x.x.x' and dstAddr not like 'y.y.')
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10
다운로드용:
filter (dstAddr like 'x.x.x.x' and srcAddr not like 'y.y.')
| stats sum(bytes) as bytesTransferred by srcAddr, dstAddr
| sort bytesTransferred desc
| limit 10
Athena를 사용하여 S3 버킷에 로그를 쿼리하는 법
Amazon VPC 콘솔 또는 Amazon Athena 콘솔을 사용하여 테이블을 만듭니다. 이 예시에서는 default가 데이터베이스, vpc_flos_logs가 테이블입니다.
1. 어떤 인스턴스가 NAT 게이트웨이를 통해 가장 많은 트래픽을 보내는지 찾으려면 다음 쿼리를 실행합니다.
SELECT srcaddr,dstaddr,sum(bytes) FROM "default"."vpc_flow_logs"
WHERE srcaddr like 'y.y.%' AND dstaddr like 'x.x.x.x' group by 1,2 order by 3 desc
limit 10;
2. 트래픽을 오가는 인스턴스를 찾으려면 다음 쿼리를 실행합니다.
SELECT srcaddr,dstaddr,sum(bytes) FROM "default"."vpc_flow_logs"
WHERE (srcaddr like 'y.y.%' AND dstaddr like 'x.x.x.x') or (srcaddr like 'x.x.x.x' AND dstaddr like 'y.y.%') group by 1,2 order by 3 desc
limit 10;
3. VPC의 인스턴스가 가장 자주 통신하는 인터넷 대상을 찾으려면 다음 쿼리를 실행합니다.
업로드용:
SELECT srcaddr,dstaddr,sum(bytes) FROM "default"."vpc_flow_logs"
WHERE (srcaddr like 'x.x.x.x' AND dstaddr not like 'y.y.%') group by 1,2 order by 3 desc
limit 10;
다운로드용:
SELECT srcaddr,dstaddr,sum(bytes) FROM "default"."vpc_flow_logs"
WHERE (srcaddr not like 'y.y.%' AND dstaddr like 'x.x.x.x') group by 1,2 order by 3 desc
limit 10;
관련 정보
샘플 쿼리(CloudWatch Logs Insights용)
Amazon VPC 흐름 로그 쿼리
Amazon Athena를 사용하여 Amazon VPC 흐름 로그를 분석하려면 어떻게 해야 하나요?
AWS Cost Explorer를 사용하여 데이터 전송 비용 분석