YUMSERV
article thumbnail
반응형

전환 목적

현재 회사에서 모니터링 및 APM 도구로 Datadog 을 사용하고 있습니다.

그러나 DataDog이 AWS VPC 외부에 있는 모니터링 툴이다 보니, 외부로 나가는 트래픽 비용이 상당히 발생하고 있었습니다. 또한, 외부 통신을 사용하다 보니 보안 측면에서도 고려해야 할 부분이 많다고 느꼈습니다.

 

고려 사항

이러한 비용 문제와 보안 이슈를 해결하기 위해 내부 네트워크에서 통신할 수 있는 방법을 찾던 중, Datadog에서 제공하는 Private Endpoint를 활용하여 내부 통신을 할 수 있게 지원이 가능하다는 문서를 발견하게 되었고, 이를 적용하기 위해 몇가지를 고려해 보았습니다.

 

첫 번째로, 현재 사용하는 서비스가 ap-northeast-2(Seoul) 리전에 한정되어있다보니, us-east-1 리전에서 통신방법에 대해 고려해보게 되었습니다. 현재 데이터독에서 제공하는 Private endpoint는 us-east-1만 적용이 되기 때문입니다. 방법으로는 us-east-1 Datadog VPC를 생성하고, 이를 VPC Peering을 맺어 통신하는 방법을 고려하게 되었습니다.

구조는 다음과 같은 그림으로 통신이 이루어지게 됩니다.

 

두 번째로, NAT 게이트웨이인터넷 게이트웨이를 통해 외부로 나가는 트래픽 비용과, Private Endpoint를 생성했을 때의 비용을 비교해야 했습니다. 여기에 추가적으로 VPC 간의 통신 비용도 고려할 필요가 있었습니다.

 

한국 리전을 기준으로 비용을 산정해 보면 다음과 같습니다.

  • NAT Gateway: 730시간(1달 기준) x 0.059 USD = $86.14 
  • 데이터 처리 비용: 처리된 GB당 $0.059

반면, Private Endpoint를 사용할 경우에는 다음과 같은 비용이 발생한다

  • VPC Peering + VPC Endpoint + Private Route53
    • 6개의 VPC Endpoints x 730시간(1달 기준) x 0.01 USD = $ 87.60 (엔드포인트 ENI의 월별 비용)
    • 처리된 데이터 GB당 $ 0.01 (~ 1PB까지)

이렇게 보았을 때, 대규모로 Datadog을 많이 사용하는 서비스에 변경했을 때 유리하다는 결론이 났고, 소규모인 경우 오히려 Private Endpoint로 전환하는 것이 비용이 더 많은 비용이 들 수 있다는 결론에 도달했습니다.

 

VPC 생성 및 라우팅 테이블 설정

  1. datadog-vpc 생성 (us-east-1)
  2. VPC Peering 설정 (Service VPC ↔︎ Datadog-VPC 연결)
    - subnet 생성 및 라우팅 테이블 설정
  3. Datadog Endpoint 생성 (us-east-1)
Datadog  
Logs (Agent HTTP intake) com.amazonaws.vpce.us-east-1.vpce-svc-025a56b9187ac1f63
Logs (User HTTP intake) com.amazonaws.vpce.us-east-1.vpce-svc-0e36256cb6172439d
API com.amazonaws.vpce.us-east-1.vpce-svc-064ea718f8d0ead77
Metrics com.amazonaws.vpce.us-east-1.vpce-svc-09a8006e245d1e7b8
Containers com.amazonaws.vpce.us-east-1.vpce-svc-0ad5fb9e71f85fe99
Process com.amazonaws.vpce.us-east-1.vpce-svc-0ed1f789ac6b0bde1
Profiling com.amazonaws.vpce.us-east-1.vpce-svc-022ae36a7b2472029
Traces com.amazonaws.vpce.us-east-1.vpce-svc-0355bb1880dfa09c2
Database Monitoring com.amazonaws.vpce.us-east-1.vpce-svc-0ce70d55ec4af8501
Remote Configuration com.amazonaws.vpce.us-east-1.vpce-svc-01f21309e507e3b1d
 

 

Private Route53 생성

  1. datadoghq.com private hosed zone 으로 생성.
  2. VPC 할당 은 먼저 Datadog-VPC(us-east-1)로 할당한 뒤, 이후 레코드 추가 후, 테스트 완료되면 Service-VPC에 할당.
  3. 레코드 정의

변경 작업

  1. Service VPC 내에서 datadog Private Endpoint 로 통신되는지 확인. (통신되지 않을 경우 방화벽 확인)
  2. route53 - datadoghq.com VPC associate에 Service VPC 할당 추가

 

변경할 때에 나온 이슈사항

1. 분명 통신까지 되는게 확인한 후, route53 Private Hosted zone에도 Service VPC를 추가하였으나 Service VPC 내부에서 Private Hosted Zone으로 질의가 되지 않는 상황

  • VPC 내 DNS Hostnames Disabled 설정이 되어있을 경우, Enabled로 설정 변경

 

2. 타 계정일 경우, route53 할당은 어떻게? 

  • 타 계정의 VPC Association 을 적용을 할 수 없음.
  • VPC Association 을 AWS 콘솔상에서 진행을 할 수 없음. (AWS Cli 통해서 진행)


[진행방법]

Route53 Hosted Zone ID 확인
 aws route53 list-hosted-zones
확인된 Zone ID 값으로 인증 요청 (Private Host zone 있는 계정)
aws route53 create-vpc-association-authorization --hosted-zone-id [hostzone_id] --vpc VPCRegion=ap-northeast-2,VPCId=[vpcid]
타 계정에서도 인증 연결
aws route53 associate-vpc-with-hosted-zone --hosted-zone-id [hostzone_id] --vpc VPCRegion=ap-northeast-2,VPCId=[vpcid]
반응형
profile

YUMSERV

@lena04301

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!