BLOG

지속 가능성을 위한 AWS 인프라 최적화하기- 제1 부: 컴퓨팅
작성일: 2021-09-10

조직이 비즈니스를 ‘지속 가능한 실천’에 맞춰 운용하기 위해서는 모든 기능 영역(functional area)을 검토하는 것이 매우 중요합니다. 또한, IT 스택을 구축하고, 배포 및 유지 관리하는 경우 환경적인 영향을 개선하려면 정보에 입각한 의사 결정이 필요합니다. 이번 포스팅에서는 앞으로 세 번에 걸쳐 컴퓨팅, 스토리지 및 네트워킹 내에서 AWS 아키텍처를 최적화하기 위한 전략을 알아보겠습니다.

1부에서는 IT 경영진을 위한 성공 기준과 지표를 제공하고, 지속 가능성을 위한 AWS 인프라의 컴퓨팅 계층을 조정하는 방법에 대해 설계자와 개발자에게 실질적인 지침을 알려드리고자 합니다. 이와 더불어 이러한 목표 달성을 위해 필요한 주요 지표와 일반적으로 사용되는 서비스 및 도구를 살펴보고, Amazon CloudWatch를 사용 하여 이를 분석하기 위한 인사이트와 개선을 위한 스텝을 알아볼 예정입니다.

 

 

지속 가능한 실천에 대한 우리의 약속

 

AWS에서는 가능한 가장 환경 친화적인 방식으로 비즈니스를 운영하기 위해 최선을 다하고 있습니다. 또한, 고객이 클라우드의 이점을 사용하여 IT 인프라를 더 잘 모니터링하고 최적화할 수 있도록 노력하고 있습니다. The Carbon Reduction Opportunity of Moving to Amazon Web Services 에 보고된 바에 따르면, 우리의 인프라는 중간 규모의 미국 엔터프라이즈 데이터 센터보다 3.6배 더 에너지 효율적이며, AWS로 이전할 경우 동일한 작업의 워크로드에 대한 탄소 발자국을 88% 낮출 수 있다고 합니다. 지속 가능성은 AWS와 고객 간의 공동 책임입니다. 그림 1에서 볼 수 있듯이 우리는 클라우드의 지속 가능성 위해 최적화하는 반면 고객은 클라우드의 지속 가능성 대한 책임이 있으므로 워크로드와 리소스 활용을 최적화해야 합니다.

 

그림 1. 지속가능성을 위한 공동 책임 모델

 

워크로드에서 소비하는 에너지의 양을 줄이기 위해서는 리소스를 효율적으로 사용할 수 있어야 합니다. AWS 글로벌 인프라의 부사장인 Peter DeSantis는 “가장 친환경적인 에너지는 사용하지 않는 에너지” 라고 강조했습니다. 그러나 어쩔 수 없이 꼭 필요한 경우에는 가능한 한 적은 수의 리소스를 최대한으로 활용하여 환경에 미치는 영향을 최소화할 수 있겠죠. 이것을 아키텍처식 결정으로 해석하면 아키텍처가 더 효율적일수록 지속 가능성이 더 높아진다는 의미입니다. 모든 AWS 아키텍처는 다르기 때문에 모든 곳에 적용 가능한 만병통치 솔루션은 존재하지 않습니다. 따라서 제안된 권장 사항이 여러분의 특정 요구 사항을 준수하는지 먼저 검토해보는 것이 필요합니다.

 

 

AWS 인프라의 컴퓨팅 계층 최적화

 

컴퓨팅 서비스는 많은 고객의 워크로드 기반을 구성하고 있으므로 최적화의 가능성 또한 가장 큽니다. 하드웨어의 에너지 비례성(소비 전력과 사용률 간의 비율)을 보면,  에너지 비례 컴퓨팅 사례 에서 볼 수 있듯이 유휴 서버가 여전히 전력을 소비하고 있습니다. 따라서 가장 적은 수의 컴퓨팅 리소스를 사용하고 높은 활용도를 달성함으로써 워크로드의 효율성을 향상시킬 수 있습니다. 다음 섹션의 권장 사항을 구현하면 리소스를 보다 효율적으로 사용하고 비용을 절약할 수 있습니다.

 

 

유휴 자원 감소 활용도 극대화

 

에너지 비례 컴퓨팅: A New Definition 은 성능이 떨어지면 에너지 효율 또한 급격히 떨어지기 때문에 컴퓨팅 리소스를 평균 70-80%로 최대화해야 한다고 강조합니다.

다음 표를 통해 가장 널리 사용되는 컴퓨팅 서비스, 측정하는 기준 및 관련 설명을 확인할 수 있습니다.

 

서비스 측정 기준 소스
Amazon Elastic Compute Cloud(Amazon EC2) CPU 활용도
인스턴스에 사용 가능한 CloudWatch 지표 목록
총 vCPU 수
CloudWatch로 지표 모니터링
Amazon Elastic Container Service(Amazon ECS) CPU 활용도
사용 가능한 측정항목 및 측정기준
아마존 EMR 유휴 상태 Cloudwatch로 지표 모니터링

 

 

그림 2에 표시된 아키텍처를 사용하여 이러한 지표를 모니터링할 수 있습니다. CloudWatch는 리소스 지표에 대한 통합 보기를 제공합니다.

 

그림 2. CloudWatch는 컴퓨팅 리소스를 모니터링합니다.

 

AWS 비용 및 사용 보고서를 통해 리소스 사용량을 이해할 수 있습니다.

 

아래 그림 3과 같이 AWS Usage Queries는 AWS 비용 및 사용 보고서를 생성, 저장, 쿼리 및 시각화할 수 있는 AWS CDK(AWS Cloud Development Kit) 템플릿을 제공하는 샘플 솔루션입니다 .

 

 

그림 3. 컴퓨팅 리소스 모니터링을 위한 AWS 비용 및 사용 보고서

 

유휴 자원을 줄이고 활용도를 극대화하기 위해서 다음 서비스 및 도구를 사용할 것을 권장드립니다.

 

  • Amazon EC2 Auto Scaling 통합: Amazon EC2 Auto Scaling을 설정하면 워크로드가 수요에 따라 자동으로 확장 및 축소될 수 있습니다.
      • 평균 CPU 사용률 또는 평균 네트워크 내부 또는 외부와 같은 메트릭을 기반으로 예약된 또는 동적 확장 정책을 설정합니다.
      • AWS Instance Scheduler 와 Amazon EC2 Auto Scaling용 Scheduled scaling을 통합하여 업무 시간 또는 평일에만 실행되는 리소스를 종료하도록 예약할 수 있습니다.

 

  • AWS Cost Explorer  AWS Graviton2를 사용 하여 리소스 크기를 적절하게 조정 합니다인스턴스 유형을 결정할 때 워크로드의 요구 사항을 고려해야 합니다.
      • 워크로드에 예측할 수 없는 스파이크가 여러 개 있는 경우, 폭발적인 성능을 제공하는 T 인스턴스 를 사용하는 것이 좋습니다. 이렇게 하면 용량을 과도하게 제공할 필요가 줄어듭니다.
      • AWS Cost Explorer를 사용하여 워크로드에 적합한 권장 사항을 확인해보세요. 인스턴스를 축소하여 비용을 절감하고 리소스 효율성을 개선할 수 있습니다.
      • Graviton2 기반 인스턴스로 전환하여 컴퓨팅 워크로드의 전력 효율성을 개선해보세요. Graviton2는 가장 전력 효율적인 프로세서이며, AWS의 다른 어떤 프로세서보다 와트당 CPU 성능이 2~3.5배 더 우수합니다. 또한 Graviton2는 다양한 워크로드에 대해 비교 가능한 현재 세대 x86 기반 인스턴스에 비해 최대 40% 더 나은 가격 성능을 제공합니다.

 

  • 서버리스, 이벤트 중심 아키텍처를 채택해보세요전체 리소스 활용도를 극대화하려면 서버리스 이벤트 기반 아키텍처를 채택하는 것이 좋습니다. 서버리스 아키텍처는 AWS 서비스에 의해 추상화되기 때문에 물리적 서버를 실행하고 유지 관리할 필요가 없습니다. 서버리스 아키텍처의 비용은 일반적으로 사용량 수준과 관련이 있으므로 워크로드의 비용 효율성이 향상됩니다.
      • 비동기식 워크로드의 경우 이벤트 기반 아키텍처를 사용하여 컴퓨팅이 대기하는 동안 유휴 상태가 아닌 필요할 때만 사용되도록 합니다.

 

 

 

기존 공급에 대한 수요 형성

 

자동 조정과 같은 방법을 통해 수요에 공급을 맞추는 것과 달리 기존 공급에 맞게 수요를 형성할 수 있습니다. 이 전략은 특정 작업을 실행할 정확한 시간이 관련이 없는 유연한 워크로드에 특히 적합합니다. 여기에는 밤새 실행되는 반복 예약된 작업이나 중단될 수 있는 작업이 포함될 수 있습니다.

 

기존 공급에 대한 수요를 형성하기 위해서는 다음 서비스 및 도구를 권장드립니다.

  • 아마존 EC2 스팟 인스턴스를 사용해보세요스팟 인스턴스는 AWS 클라우드에서 미사용 EC2 용량을 활용합니다. EC2 인스턴스 용량의 기존 공급에 대한 수요를 형성함으로써 전체 리소스 효율성을 개선하고 유휴 용량을 줄일 수 있습니다.
      • 스팟 인스턴스는 온디맨드 인스턴스에 비해 비용을 최대 90% 절약합니다.
      • 중단될 수 있는 내결함성, 유연성 및 상태 비저장 워크로드에 스팟 인스턴스를 사용합니다.

 

  • 예약된 작업에 지터(jitter) 적용합니다예약된 작업에 지터를 적용하고 시간에 따라 유연한 워크로드를 전환하여 로드 스파이크를 방지합니다.
      • 예약된 작업이 시간 중 임의의 시간에 실행되도록 분산될 수 있는지 평가합니다.
      • 예약된 작업의 시작 분으로 0을 지정하지 마십시오. 이것은 일반적인 기본값이기 때문에 0 대신 2에서 58 사이의 숫자를 사용하여 예약된 작업의 시작 분을 정의하여야 합니다.

 

결론

이번 포스팅에서는 리소스 효율성을 위해 AWS 인프라를 최적화할 수 있는 주요 지표와 권장 조치에 대해 알아보았습니다. 이를 통해 컴퓨팅 리소스의 지속 가능성을 향상시킬 수 있습니다.

비즈니스가 성장함에 따라 ‘총 vCPU 시간’과 같은 지표가 증가하는 것은 당연합니다. 이것이 100명의 사용자 또는 트랜잭션당 vCPU 수와 같은 작업 단위당 이러한 메트릭을 추적하는 것이 중요한 이유입니다. 이렇게 하면 측정하는 KPI는 비즈니스 성장과는 무관합니다.

 

다음 포스팅에서는 클라우드에서 지속 가능성을 위해 IT 인프라의 스토리지 부분을 최적화하는 방법을 소개드리겠습니다.

원문URL: https://aws.amazon.com/ko/blogs/architecture/optimizing-your-aws-infrastructure-for-sustainability-part-i-compute/

 

메가존 클라우드 TechBlog는 AWS BLOG 영문 게재 글이나 관련 기사 중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아 정기적으로 게재하고 있습니다. 추가로 번역 및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS 페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.