aws

[AWS]비용 최적화 아키텍쳐

하리하링웹 2024. 8. 22. 19:06

개요

클라우드 기반의 개플리케이션 구현에 앞서 비용 관련한 철저한 분석이 필요하다. 또한 적절한 비용으로 리소스를 실행할 수 있게 준비했다 하더라도 낭비되는 리소스가 발생할 수 있고, 해커에 의해 예기치 못한 비용이 지출될 수 있다.

비용 계획, 추적, 제어

AWS 관리 콘솔 상단 결제 대시보드에서 대금, 비용 관리 대시보드를 확인할 수 있다.

AWS Budgets

비용 대시보드 좌측, 기본 설정에서 비용 청구에 대한 설정 페이지를 확인할 수 있다. 이를 통해 Amazon CloudWatch Alarms을 통한 경고 메시지, AWS Budgets를 통한 비용 추적을 사용할 수 있다.

budgets는 실행 중인 리소스 관련 비용을 추적하며, 기준선을 벗어나면 경고 메시지를 전송한다. 리소스에 비용 할당 태그를 부착해 예산 항목 구성 시 필터링 또한 가능하다.

비용 할당 태그 페이지에서 태그 기능 활성화가 가능하며, AWS 콘솔 내 Resource Groups 드롭다운 메뉴에서 Tag Editor를 통해 사용자 정의 태그 생성이 가능하다.

  • 생성한 비용 태그가 대시보드에 반영되는데 최대 24시간이 소요될 수 있다.
  • 태그 생성 이전 론칭된 리소스에 대해서는 태그를 적용할 수 없다.

계정당 2개의 예산 생성이 가능하며 태그 이용로는 개당 월 0.02달러이다.

비용 모니터링 도구

Const Explorer

비용 대시보드에서 Cost Explorer를 클릭하여 일정 기간 동안의 AWS 사용량, 비용 그래프를 볼 수 있다. 서비스 단위로 그룹화해 그래프로 시각화 가능하며, CSV 형태로 다운로드도 가능하다.

AWS 비용 및 사용량 보고서

비용 및 사용량 보고서 역시 각종 정보를 제공한다. 이는 Athena, Redshift, QuickSight를 통합해 사용 가능하다.

AWS Trusted Advisor

계정 환경설정과 AWS의 베스트 프랙티스를 비교할 수 있는 서비스이다. 계정 환경 설정과 관련된 규정 및 성능 데이터는 아래 5가지가 있다.

  • Cost Optimization: 활성화 수준이 낮거나 대기 상태의 리소스로서 비용 청구의 대상이 되는 요소에 대한 정보
  • Performance: 부적절한 환경 요소에 대한 정보
  • Security: 잠재적인 환경설정 상의 문제점에 대한 정보
  • Fault Tolerance: 단일 실패 지점을 통해 중대한 시스템 실패 상황이 벌어지지 않도록 하기 위한, 적절한 수준의 복제 및 중복 구현 실행과 관련된 정보
  • Service Limits: 기본 사용량 제한 조건에 근접하고 있는지 여부에 대한 정보

온라인 비용 계산기

AWS는 리소스 스택과 관련된 모든 가격과 공식을 반영한 비용 모델 또는 비용 계산기를 제공하며, 사용자는 Simple Monthly Calculator와 AWS TCO Calculator를 이용할 수 있다.

Simple Monthly Calculator

Simple Monthly Calculator는 매우 세분화된 수준에서 서비스 리소스를 선택하고 관련 비용을 계산할 수 있도록 돕는다. 리소스 비용은 AWS 리전마다 다르므로 애플리케이션이 실행되는 리전별로 리소스 비용을 계산해야한다. 또한 EBS 및 RDS 타입별로도 비용이 다르다.

프로젝트에 필요한 모든 스택 리소스를 입력하면 상단에 월간 예상 비용이 출력된다.

장점은 AWS 리소스를 선택하고 실행하는 경험을 계산기에서도 그대로 할 수 있다는 점이다.

 

AWS TCO Calculator

복합적인 워크로드 수행에 대한 온프레미스에서의 비용과 AWS 클라우드의 비용을 비교할 때 사용 가능한 총소유비용(TCO) 계산기이다. 사용자는 로컬 환경에서 애플리케이션 실행에 필요한 인프라를 정의하게되며 서버의 수, 용량, 물리 서버, 가상서버 여부, 가상화 하이퍼바이저의 종류, 총 저장 용량을 입력하고 계산하면 향후 3년간의 매우 상세한 아이템별 비용 시트가 출력된다.

비용 최적화 컴퓨트 전략

AWS와 같은 클라우드 컴퓨팅 플랫폼은 가상화 환경에서 존재하기에 AWS 비용 최적화를 위한 베스트 프랙티스를 따라 하는것이 좋다.

서버 밀도 최대화

워크로드에 맞는 인스턴스를 선택하는 일은 성능 최적화는 물론 비용 최적화라는 목표를 위해서도 매우 중요하다. AWS Lambda또한 중요한데 필요에 따라 서버리스 모델을 도입하면 컴퓨팅 비용을 절감할 수 있다.

AWS ECS, EKS 등을 사용해 도커와 같은 컨테이너 기술을 적용해도 비용 절감의 잠재력이 있다.

EC2 예약 인스턴스

예약 인스턴스를 구매해 장기간, 저비용으로 컴퓨트 리소스를 사용할 수 있다.

조금 더 많은 비용을 지불하고 전환 예약 인스턴스를 구매해 성능이 더 우수한 인스턴스로 교체할수도 있고 필요에 따라 단일 AZ로 한정해 비용을 절감할수도 있다. 보통의 예약 인스턴스 대신 반복적 일정 계획에 따라 예약 인스턴스를 론칭하도록 할수도 있다.

마지막으로 예약 인스턴스에 대한 비용 지불 옵션은 전체 선결제, 부분 선결제, 선결제 없음 세가지가 있다. 전체 선결제 옵션이 가장 저렴하고, 선결제 없음 옵션은 시간 단위로 비용이 청구된다.

Savings Plans

최근 EC2 지불 방식으로 추가된 방법이 Savings Plans이며 1~3년간 동일 수준 서비스를 사용한다는 계약을 맺는 측면에서 예약 인스턴스와 유사하지만 훨씬 높은 수준의 유연성을 제공받을 수 있다.

아래 두 가지 타입이 있다.

  • Compute Savings Plans: 온디맨드 인스턴스 대비 66% 저렴한 비용으로 EMR,ECS,EKS,Fargate 워크로드를 처리할 수 있으며 다른 AWS 리전에서 실행되는 또 다른 리소스로 변경이 가능하다.
  • EC2 Instance Plans: 온디맨드 인스턴스 대비 72% 저렴한 비용으로 인스턴스를 사용할 수 있으며, 단일 AWS 리전 내에서만 리소스를 변경 가능하다.

EC2 스팟 인스턴스

단기간 EC2 인스턴스를 빌려 쓴느 개념이며 매우 저렴한 대신 생애주기 관리 변동성이 크고, 조건에 따라 언제든 종료될 수 있다.

  • Spot Price: 인스턴스 타입, 리전, 각종 프로필 값 등 론칭 속성에 따른 스팟 인스턴스의 현재 가격이며, 예고없이 변동될 수 있고, 더 높은 가격 입찰자가 있을 경우 실행중인 인스턴스가 강제 종료된다.
  • Spot Instance Interruption: 스팟 가격이 제시간 최고 입찰 가격보다 높을 경우 EC2는 폐기, 중지, 휴면 등 3가지 방식으로 반응할 수 있다. 폐지는 모든 리소스 및 볼륨을 영구 삭제이며 중지는 EBS 지원 AMI 일 때 만 선택 가능하다.
  • Spot Instance Pool: 특정 론칭 속성을 갖춘 미사용 EC2 인스턴스를 가리키며, 스팟 플릿을 이 인스턴스 풀의 일부를 이용해 구성된다.
  • Spot Fleet: 스팟 플릿 요청에 부합하는 스팟 인스턴스 그룹으로서 때론 온디맨드 인스턴스도 포함된다. 스팟 플릿은 다수의 스팟 인스턴스 풀에서 여러 가지 론칭 속성에 부합하는 인스턴스로 구성된다.
  • Request Type: Request Spot Instances 페이지에서 요청을 설정할 때 일회성의 Request, 플릿을 이용해 목표 용량을 유지하는 Request And Maintain, 1~6시간 동안 간섭받지 안고 사용할 수 있는 Reserve For Duration 등 3가지 타입의 요청 방식을 사용할 수 있다.

Auto Scaling

Auto Scaling은 수요 감소 시 즉각적으로 리소스를 제거해 낭비되는 컴퓨팅 비용을 줄이는데도 효과적인 도구이다.

Auto Scaling 환경설정에서 실행중인 인스턴스의 평균 이용량이 기준치 이하로 내려가면 그룹 크기를 줄이도록 설정한다. 이용량에 따라 그룹 크기가 변동되도록 설정해 클라우드 컴퓨팅 모델 특유의 장점을 활용하고, 비용도 효과적으로 감소시킬 수 있다.

EBS Lifecycle Manager

EC2 인스턴스에 부착된 EBS 볼륨은 다중 복제 방식으로 데이터를 안전하게 보호하지만 데이터의 중요도에 따라 추가 보호 장치가 필요하다. 널리 사용되는 방법은 스냅샷이지만 이는 비용이 많이 청구될 수 있다. 이에 대한 명확한 해결책은 구 버전 스냅샷은 정기적으로 삭제하고 최신 스냅샷만 실행 대기 상태로 유지하는 것이다. 자동화 도구인 EBS Lifecycle Manager를 이용해 최신 스냅샷 유지 업무를 수행할 수 있으며, EC2 대시보드에서 정책을 설정 가능하다.

정리

  • AWS Budgets은 계정에서 발생하는 모든 비용을 확인할 수 있도록 도와주고 기준선을 넘으면 경고 메시지를 전송한다. 비용 할당 태그도 설정 가능하다.
  • Cost Explorer과 Cost and Usage Reports를 이용해 청구 비용, 요금 비율, 제품 속성 등을 시간 순으로 일목요연하게 확인할 수 있다. Reports는 대규모 작업에 소요되는 리소스 사용량 및 비용 빅데이터 분석 자료라는 특징이 있다.
  • AWS Organizations을 이용해 다수 계정에 대한 과금, 조직 접근 권한을 통합 관리할 수 있다.
  • AWS Trusted Advisor는 계정 설정 내역, 비용 관리 활동이 AWS 베스트 프랙티스와 어느정도 차이가 있는지 알려주고 계정 용량 제한 근접 수준도 설명해준다.
  • Simple Monthly Calculator 및 AWS Total Cost of Ownership 도구는 애플리케이션 스택의 비용 효율적이며 효과적인 구성 방식을 파악하는데 도움을 준다.
  • 워크로드 처리에 적합한 EC2 인스턴스 타입을 선택하고, 컨테이너 및 마이크로서비스 아키텍쳐 도입으로 서버 리소스 활용성을 극대화하고 비용을 절감할 수 있다.
  • EC2 예약 인스턴스 사용 시 전환예약 옵션이 있는 예약 인스턴스를 선택해 자익간의 안정성 및 유연성을 확보할 수 있고 예약 스케쥴을 통해 비용 절감이 가능하다.
  • 스팟 인스턴스는 개별적으로 혹은 플릿이라는 그룹으로 활용 가능하며, 애플리케이션 실행 방식에 따라 인스턴스의 종료, 중지 방식을 선택 가능하다.