[AWS] VPC EndPoint 비용 절감하기!

xgro·2022년 8월 17일
3

AWS

목록 보기
8/18
post-thumbnail

📌 Summary

  • VPC endpoint 사용시 트래픽에 따른 비용 절감을 기대할 수 있다.
  • NAT Gateway와 VPC endpoint를 구분하여 사용할 수 있다.
  • VPC endpoint 사용법을 간단하게 정리한다.

📌 Architecture

ECS Fargate 서비스 이용시 VPC Endpoint를 이용하여 아키텍처를 완성함.


📌 VPC Endpoint란?

Private 네트워크에 있는 인스턴스에서 VPC 외부의 AWS 서비스와 통신이 필요한 경우 사용한다.

ECS Fargate를 사용할 경우 서비스를 이용하여 태스크 생성시 ECR에 있는 이미지를 Pull 하기 위해서 VPC 외부의 서비스에 접근 할 수 있는 환경이 필요하다.

👉 VPC Endpoint 생성하기

ECS에서 필요한 외부 서비스는 기본적으로 아래와 같다.

엔드포인트가 생성되는 순서는 중요하지 않다.

✅ Amazon ECR용 VPC 엔드포인트 생성

플랫폼 버전 1.4.0 이상을 사용하여 Fargate에서 호스팅되는 Amazon ECS 작업은 Amazon ECR VPC 엔드포인트와 Amazon S3 게이트웨이 엔드포인트가 모두 필요합니다.

com.amazonaws.region.ecr.dkr
com.amazonaws.region.ecr.api

✅ Amazon S3 게이트웨이 엔드포인트 생성

Amazon ECR은 Amazon S3를 사용하여 이미지 계층을 저장하기 때문에 게이트웨이 엔드포인트가 필요

com.amazonaws.region.s3

# S3 버킷에 ECR 작업에 필요한 최소권한 부여하는 예제
{
  "Statement": [
    {
      "Sid": "Access-to-specific-bucket-only",
      "Principal": "*",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::prod-region-starport-layer-bucket/*"]
    }
  ]
}

✅ CloudWatch Logs 엔드포인트 생성

인터넷 게이트웨이 없이 VPC를 사용하고 awslogs 로그 드라이버를 사용하여 로그 정보를 CloudWatch Logs로 전송하는 Fargate 시작 유형을 사용하는 Amazon ECS 작업의 경우, CloudWatch Logs에 대한 인터페이스 VPC 엔드포인트를 생성한다.

com.amazonaws.region.logs


👉 VPC Endpoint의 장점

  • 인터페이스 VPC 엔드포인트를 사용하도록 Amazon ECR을 구성하여 VPC의 보안 상태를 향상시킬 수 있습니다.
  • VPC 엔드포인트는 프라이빗 IP 주소를 통해 Amazon ECR APIs에 비공개로 액세스할 수 있는 기술인 AWS PrivateLink로 구동됩니다.
  • AWS PrivateLink는 VPC 및 Amazon ECR 간의 모든 네트워크 트래픽을 Amazon 네트워크로 제한합니다.
  • 인터넷 게이트웨이, NAT 디바이스 또는 가상 프라이빗 게이트웨이가 필요 없습니다.

👉 VPC Endpoint 유형

EndPoint 서비스에 필요한 VPC EndPoint 유형을 생성해야 한다.

  • Interface
    Network Load Balancer를 사용하여 트래픽을 분산하는 엔드포인트 서비스로 트래픽을 전송하기 위한 인터페이스 엔드포인트 를 생성한다.  엔드포인트 서비스로 향하는 트래픽은 DNS를 사용하여 확인됩니다.
  • GatewayLoadBalancer
    게이트웨이 로드 밸런서 엔드포인트 를 생성 하여 프라이빗 IP 주소를 사용하여 가상 어플라이언스 집합에 트래픽을 보낸다.  라우팅 테이블을 사용하여 VPC에서 게이트웨이 로드 밸런서 엔드포인트로 트래픽을 라우팅합니다.  게이트웨이 로드 밸런서는 트래픽을 가상 어플라이언스로 분산하고 수요에 따라 확장할 수 있습니다.
  • Gateway
    프라이빗 IP 주소를 사용하여 Amazon S3 또는 DynamoDB로 트래픽을 전송 하는 게이트웨이 엔드포인트 를 생성합니다.  라우팅 테이블을 사용하여 VPC에서 게이트웨이 엔드포인트로 트래픽을 라우팅합니다.  게이트웨이 엔드포인트는 AWS PrivateLink를 활성화하지 않습니다.

📌 NAT Gateway란?

NAT 게이트웨이는 NAT(네트워크 주소 변환) 서비스 입니다.

프라이빗 서브넷의 인스턴스가 VPC 외부의 서비스에 연결할 수 있지만 외부 서비스에서 이러한 인스턴스와의 연결을 시작할 수 없도록 NAT 게이트웨이를 사용할 수 있습니다.

NAT 게이트웨이를 만들 때 다음 연결 유형 중 하나를 지정합니다.

  • 퍼블릭
    프라이빗 서브넷의 인스턴스는 퍼블릭 NAT 게이트웨이를 통해 인터넷에 연결할 수 있지만 인터넷에서 원치 않는 인바운드 연결을 수신할 수 없습니다. 퍼블릭 서브넷에서 퍼블릭 NAT 게이트웨이를 생성하고 생성 시 탄력적 IP 주소를 NAT 게이트웨이와 연결해야 합니다. 트래픽을 NAT 게이트웨이에서 VPC용 인터넷 게이트웨이로 라우팅합니다. 또는 퍼블릭 NAT 게이트웨이를 사용하여 다른 VPC 또는 온프레미스 네트워크에 연결할 수 있습니다. 이 경우 NAT 게이트웨이에서 Transit Gateway 또는 가상 프라이빗 게이트웨이를 통해 트래픽을 라우팅합니다.

  • 프라이빗
    프라이빗 서브넷의 인스턴스는 프라이빗 NAT 게이트웨이를 통해 다른 VPC 또는 온프레미스 네트워크에 연결할 수 있습니다. 트래픽을 NAT 게이트웨이에서 Transit Gateway 또는 가상 프라이빗 게이트웨이를 통해 트래픽을 라우팅할 수 있습니다. 탄력적 IP 주소를 프라이빗 NAT 게이트웨이에 연결할 수 없습니다. 프라이빗 NAT 게이트웨이를 사용하여 VPC에 인터넷 게이트웨이를 연결할 수 있지만 프라이빗 NAT 게이트웨이에서 인터넷 게이트웨이로 트래픽을 라우팅하는 경우 인터넷 게이트웨이가 트래픽을 삭제합니다.


📌 VPC Endpoint vs NAT gateway

💡 요금관련

  • VPC Endpoint Interface는 PrivateLink의 요금에 따라 부과된다
  • Gateway는 PrivateLink 요금이 적용되지 않으며 인스턴스의 데이터 처리량에 따라 요금이 부과된다.

아키텍처를 구성하기 전 VPC Endpoint와 NAT gateway의 비용을 계산해 보았다.

리전 - ap-northeast-2(서울) 기준

현재 아키텍처에서 S3는 Private 비용이 적용 되지 않지만, 요금의 추이를 간편하게 파악하기 위해 인터페이스 게이트웨이 하나로 산정하여 총 4ea의 VPC 엔드포인트를 사용하는 것으로 계산하였다.

  • USD 기준
100GB1TB1PB
PrivateLink38.9648.2010227.96
NAT gateway48.95103.4960459.07

트래픽이 작을 경우 비용 산정에 큰 영향이 없지만 점점 트래픽이 많은 시스템에서 사용할 경우 비용차이가 기하급수적으로 늘어나는 것을 확인할 수 있었다.

👉 요금 비교 사진

  • 100GB

  • 1TB

  • 1PB

✅ NAT Gateway

  • 100GB
  • 1TB

  • 1PB

📌 결론

AWS에서 서비스 운영시 Private 환경의 인스턴스가 VPC 외부의 AWS 서비스를 이용하고자 할때는 VPC 엔드포인트 사용을 고려하여 비용을 줄일 수 있다.

✅ 참조 레퍼런스

profile
안녕하세요! DevOps 엔지니어 이재찬입니다. 블로그에 대한 피드백은 언제나 환영합니다! 기술, 개발, 운영에 관한 다양한 주제로 함께 나누며, 더 나은 협업과 효율적인 개발 환경을 만드는 과정에 대해 인사이트를 나누고 싶습니다. 함께 여행하는 기분으로, 즐겁게 읽어주시면 감사하겠습니다! 🚀

0개의 댓글