지속 가능한 효율적이고 비용 최적화 된 AWS 기반 애플리케이션 구축하기
오늘날, 그 어느 때보다도, 거의 모든 조직에서 지속 가능성과 비용 절감이 최우선 고려 사항입니다. 클라우드 전환을 통한 탄소 감축 기회와 관련한 조사에 따르면 AWS의 인프라는 미국 기업 데이터 센터의 중앙값보다 3.6배 더 에너지 효율적이며 유럽 평균보다 최대 5배 더 에너지 효율적인 것으로 나타났습니다. 즉, 단순히 AWS로 이전하는 것만으로는 오늘날의 고객들이 설정하는 환경, 사회, 지배 구조(ESG) 및 클라우드 재무관리(CFM) 목표를 충족시키기에 충분하지 않습니다. 지구의 자원들을 지속적으로 사용하려면 클라우드에서 실행되는 애플리케이션을 효율성을 염두에 두고 구축해야 합니다.
그 이유는 클라우드 지속 가능성은 AWS와 고객의 공동 책임이기 때문입니다. AWS는 클라우드의 지속 가능성 최적화에 책임을 지고 효율적인 인프라, 모든 고객의 요구사항을 충족할 수 있는 충분한 옵션, 그리고 이를 효과적으로 관리할 수 있는 도구를 구축합니다. AWS 고객으로서 전체 리소스 요구 사항을 최소화하고 소비해야 하는 것을 최대한 활용하여 솔루션을 구축해야 합니다.
대부분의 AWS서비스 요금은 하드웨어 사용과 관련이 있습니다. 리소스 소비를 줄이면 비용을 절감할 수 있는 추가적인 이점도 있습니다. 이 블로그 게시물에서는 지속 가능성과 비용 절감을 모두 염두에 두고 AWS에서 효율적인 컴퓨팅 환경을 구축하고 리소스 낭비를 줄이는 방법에 대한 모범사례입니다.
지속적인 측정
애플리케이션 최적화는 지속적으로 관리해야 되는 프로세스입니다. 하지만 어디가에서 시작해야 합니다. AWS Well-Architected의 6대 원칙 중, 지속 가능성 원칙에는 고객이 지속적인고 효율적인 워크로드를 선택할 수 있게 아키텍처 개선 프로세스가 포함되어 있습니다. “측정하지 않으면 개선할 수 없다”라는 말이 있듯이, 지표를 설정하고 지속적으로 모니터링 하는 것은 비즈니스에서 아주 중요한 부분입니다. AWS 탄소 배출 추적 도구에서도 지원하는 Scope 2 탄소 배출량의 측정은 많은 조직이 지속 가능성 이니셔티브를 벤치마킹하기 위해 사용하는 하나의 지표이지만 이들이 유일한 지표가 되어서는 안 됩니다.
Amazon은 원래 목표보다 5년 앞선 2025 년까지 탈탄소화 및 100% 재생 가능 에너지 사용을 목표로 길을 걷고 있습니다. 사용하는 리소스의 이용률을 극대화하고 총 에너지 소비를 최소화하는 것이 매우 중요합니다. 그래서 많은 조직에서 vCPU 시간, 스토리지 사용량 및 데이터 전송과 같은 프록시 지표를 사용하여 하드웨어 소비를 평가하고 시간이 지남에 따라 인프라가 개선된 점을 측정합니다.
이러한 지표 외에도 최종 사용자나 고객에게 제공되는 가치를 기준으로 효율성을 측정할 수 있습니다. 출고된 주문, 페이지 뷰, 총 API 호출 수 등과 같은 서비스 활용률을 추적함으로써 클라우드 리소스 소비를 더 효율적으로 사용할 수 있습니다. 예를 들어, 전자 상거래 사이트의 주문수는 지난달과 동일하게 유지되었지만 AWS인프라 사용량은 20% 감소했다면, 효율성 향상은 고객 행동의 변화가 아니라 최적화 노력 덕분이라고 볼 수 있습니다.
효율적이고 목적에 맞게 제작된 프로세서 선택
애플리케이션에 적합한 프로세서를 선택하는 것은 지속 가능성에서 중요한 고려 사항입니다. 더 빠르고 효율적인 프로세서를 사용하면 더 적은 에너지로 동일한 양의 작업을 수행할 수 있기 때문입니다.
AWS에서는 다양한 워크로드의 요구 사항에 잘 부합할 수 있도록 가장 포괄적이고 심층적인 프로세서를 제공합니다. 예를 들어 가속화된 컴퓨팅으로 Intel – Xeon scalable 프로세서, AMD – AMD EPYC 프로세서, GPU’s, FPGAs, and custom ASICs 등과 같은 프로세서를 제공합니다.
AWS Graviton3 프로세서는 AWS Graviton 프로세서 제품군의 최신 버전으로, AWS Graviton2 프로세서와 비교해 최대 25% 개선된 컴퓨팅 성능, 최대 2배의 부동 소수점 성능, 최대 2배 빠른 암호화 워크로드 성능을 제공합니다. 그리고 다양한 워크로드에 대해 동급의 최신 x86 기반 인스턴스보다 최대 40% 더 나은 가격 성능을 제공합니다. (Graviton 기반 인스턴스로 워크로드를 전환하여 성능 효율성 개선 참고 자료: AWS Graviton Fast Start, AWS Graviton2 for ISVs, Considerations when transitioning workloads to AWS Graviton-based Amazon EC2 instances)
머신 러닝 (ML) 워크로드의 경우, AWS Trainium 및 AWS Inferentia 과 같이 머신 러닝의 목적에 맞게 개발된 Amazon EC2 인스턴스를 사용하면, 비슷한 GPU 기반 인스턴스보다 더 적은 에너지를 사용하면서 더 높은 성능을 발휘할 수 있습니다. 효율적이고 목적에 맞는 프로세서의 선택은 탄소 발자국을 줄이는데 중요한 부분일 차지합니다.
하드웨어 활용 최적화
효율적인 환경의 목표는 요구사항을 충족하기 위해 필요한 만큼만 자원을 사용하는 것이므로 필요 이상의 하드웨어를 사용하지 않는지 지속적으로 검증하는 것이 중요합니다. 클라우드에서는 인스턴스 선택의 다양성, 동적 확장 기능, 인프라 추적 및 최적화를 지원하는 다양한 도구 덕분에 효율적인 환경의 구성이 쉬워졌습니다.
AWS에서 활용률을 측정하고 추적하는 가장 중요한 도구 중 두 가지는 Amazon CloudWatch와 AWS 비용 및 사용량 보고서(CUR)입니다. CloudWatch를 사용하면 실시간 로그, 지표 및 이벤트 데이터를 자동화된 대시보드에 수집하고 이를 시각화하여 인프라 및 애플리케이션 유지 관리를 간소화하여 전체적인 효율성을 향상합니다. 비용 및 사용 보고서(CUR)은 AWS 사용량에 가장 많은 기여를 하는 리소스를 이해하는데 도움이 되어 효율성을 조정하고 비용을 절감할 수 있습니다.
AWS 비용 지능형 대시보드는 AWS 비용 및 사용량 보고서의 데이터를 기반으로 AWS 사용에 대한 상세하고 세분화된 권장 사항 기반 보기를 제공합니다. 사전 구축된 시각화를 통해 AWS 사용에 가장 큰 기여를 하는 서비스 와 리소스를 식별하고, 최적화를 통해 실현할 수 있는 잠재적인 절감액을 확인할 수 있습니다. 또한 리소스를 최적화하는 데 도움이 되는 적절한 EC2 인스턴스 제품군의 추천도 제공합니다.
또한 비용 지능형 대시보드는 워크로드 특성을 기반으로 인스턴스 유형 및 크기의 최적화를 권장하는 AWS Compute Optimizer와 통합되어 있습니다. 예를 들어, 워크로드가 CPU 집약적인지, 일별 패턴을 보이는지, 로컬 스토리지에 자주 액세스하는지를 식별할 수 있습니다. 그런 다음 Compute Optimizer는 권장 사항을 제공하기 위해 다양한 하드웨어 플랫폼 (예: Amazon EC2 인스턴스 유형) 또는 다른 구성 (예:Amazon EBS 볼륨 IOPS 설정 및 AWS Lambda 함수 메모리 크기)에서 워크로드의 성능을 추정합니다.
Compute Optimizer를 사용하여 과소 프로비저닝된 리소스를 식별하는 권장 사항을 구현하여 성능 문제를 해결할 수 있으며, 인공 지능 및 기계 학습 기반 분석을 통해 워크로드의 크기를 적절하게 조정하여 비용을 최대 25% 절감할 수 있습니다.
CloudWatch 지표는 Amazon EC2 Auto Scaling 기능을 요구에 맞는 적절한 인스턴스를 자동으로 선택하고 활용률에 따라서 리소스를 자동으로 관리 및 조정에 사용됩니다. 평균 CPU 사용률 또는 네트워크 입출력 같은 지표를 기반으로 예약, 동적 및 Amazon EC2 Auto Scaling의 예측 조정 정책을 사용하여 AWS instance scheduler 와 Amazon EC2 Auto Scaling 의 예약된 스케일링을 통해서 업무일이나 평일에만 리소스를 사용하고, 그 외에는 종료하여 리소스 소비 및 환경적 공간을 더욱 줄일 수 있습니다.
사용 가능한 모든 가격 모델 활용
컴퓨터 작업은 다양한 워크로드의 기반으로 구축이 되며, 컴퓨터 인프라는 일반적으로 최적화하기에 가장 좋은 위치에 있습니다. Amazon EC2는 거의 모든 워크로드에 적합한 안전하고 크기 조정 가능한 컴퓨팅 용량을 제공하며, 다양한 워크로드의 요구 사항에 가장 잘 부합할 수 있도록 가장 포괄적이고 심층적인 컴퓨팅 플랫폼을 제공합니다.
EC2 스팟 인스턴스는 AWS에서 비용을 절감하고 효율성을 높일 수 있는 좋은 방법입니다. 스팟 인스턴스는 사용되지 않는 Amazon EC2 용량을 고객에게 할인된 가격으로 제공합니다. AWS에서는 물리적 자원의 활용도를 최대화하는 것이 목표 중 하나입니다. EC2 Spot 인스턴스를 선택함으로써, AWS 데이터 센터에서 유휴 상태인 하드웨어를 사용할 수 있습니다. 이는 클라우드의 전체적인 효용성을 높이며, 그리고 AWS 데이터 센터의 물리적 자산을 최대한 활용할 수 있도록 도와줍니다. 스팟 인스턴스는 수요와 공급에 따라 자동으로 변경되는 시장 기반 가격을 사용합니다. 즉, 가장 많은 여유 용량을 가진 하드웨어가 가장 높은 할인을 보게 되므로, 스팟 인스턴스는 온디맨드 요금과 비교하여 최대 90% 할인된 금액으로 제공됩니다.
고객의 워크로드에 대한 요구 사항은 다양합니다. 그래서 우리는 다양한 조합의 워크로드 구매를 권장합니다. 예를 들어, 1-3년 이상의 장기간 사용할 워크로드의 경우 Compute savings Plans를 사용하면 비용을 절감할 수 있습니다. 또한, 한 인스턴스 유형에서 보다 새롭고 에너지 효율적인 인스턴스 전환하거나, 컴퓨터 솔루션 간 (예:EC2 인스턴스에서 AWS Lambda 기능 또는 AWS Fargate) 전환에 도움이 됩니다.
Savings Plans는 예측 가능하고 안정적인 작업에 이상적입니다. 온디맨드는 중단할 수 없는 불규칙한 단기 워크로드가 있는 애플리케이션의 경우 사용하는 것이 좋습니다. 마지막으로, 스팟 인스턴스는 애플리케이션이 실행되는 시간을 유연하게 조정할 수 있고 중단할 수 있는 경우에 효율적인 방법입니다. AWS는 워크로드 요구사항과 유연성을 기준으로 가격 모델을 결합하여 사용할 것을 권장합니다.
고객은 이러한 가격 모델을 활용하여 미래에 사용될 컴퓨팅 인프라를 계획할 수 있습니다. 이는, AWS가 리소스 수요를 더 잘 예측하고 용량을 관리하며 인프라를 보다 지속 가능한 방식으로 운영하는 데 도움이 됩니다.
오버헤드를 최소화하고 적은 리소스를 사용하는 애플리케이션 설계
워크로드나 기술 선택에 관계없이 최신 하드웨어와 Amazon Machine Images(AMI)를 사용하면 일반적으로 해당 제품군에서 최상의 가격 대비 성능을 제공할 수 있습니다. 인텔의 DL Boost와 같은 최신 프로세서와 하드웨어는 향상된 성능 및 절전 기능을 탑재한 소프트웨어 라이브러리를 사용하는 경우가 많습니다.
AWS Managed Services를 활용하면 높은 리소스 활용률을 유지해야 하는 책임을 AWS로 이전해서 도움이 될 수 있습니다. AWS Managed Services를 사용하면 해당 서비스를 사용하는 모든 고객에게 서비스의 지속 가능성 영향을 분산시켜 각 고객의 개별 기여를 줄일 수 있습니다. 그러나 모든 관리형 서비스가 기본적으로 최적화되어 있는 것은 아닙니다. 다음 권장 사항은 각 관리형 서비스에 대해 자동으로 최적화된 용량 관리를 통해 환경적 영향을 줄이는 데 도움이 됩니다.
AWS 관리형 서비스 | 지속 가능성 개선을 위한 권장 사항 |
Amazon Aurora Serverless는 애플리케이션의 요구에 따라 자동으로 시작, 종료 및 용량을 확장 또는 축소할 수 있습니다. |
|
Amazon Redshift Serverless는 데이터 웨어하우스 용량을 자동으로 실행 및 확장합니다. |
|
AWS Lambda functions 을 Arm 기반 AWS Graviton 프로세서로 마이그레이션할 수 있습니다. | |
AWS의 지속 가능성 모범 사례가 적용된 Amazon ECS on AWS Fargate를 활용해서 제어관리를 할수 있습니다. | |
EMR Serverless를 사용하면 데이터 처리 작업에 대한 자원 과다 또는 과소 구성을 방지할 수 있습니다. | |
Auto-scaling for AWS Glue을 활성화하여 Glue 컴퓨팅 자원의 요구에 따라 확장 또는 축소할 수 있습니다. |
전송은 지속 가능성에 영향을 미치는 또 다른 애플리케이션 설계의 부분입니다. 엣지 컴퓨팅은 정보 저장 및 컴퓨팅 능력을 해당 정보를 생성하는 디바이스와 이를 소비하는 사용자에게 더 가까이 제공하는 프로세스로, 클라우드로 전송되는 트래픽의 양을 줄이고, 이는 에너지 이용과 탄소 배출을 제한할 수 있습니다. AWS Outposts, AWS Local Zones 및 AWS Wavelength 서비스는 엔드포인트 근처에서 데이터 처리, 분석 및 스토리지를 제공하여 API 및 도구를 AWS 데이터 센터 외부에 배치할 수 있습니다. 엣지 컴퓨팅은 데이터를 사용자 근처에서 처리함으로써 대기 시간을 줄일 수 있으며, 이는 장치와 애플리케이션이 원활하게 실행되는 데 필요한 에너지가 적다는 것을 의미합니다.
지속적인 측정, 하드웨어 활용, 프로세서 선택 및 애플리케이션 설계는 자원 효율성을 위해 AWS 컴퓨팅 인프라를 최적화하는 데 모두 중요합니다. 간단히 말해, 클라우드에서의 지속 가능한 인프라는 가능한 한 적은 자원을 사용하여 비즈니스의 목표를 달성하는 것입니다. 프록시 지표 외에도, 탄소 배출 추적 도구를 사용하여 AWS에서 제공하는 향상된 기능과 결합하여 탄소 배출량을 추적할 수 있습니다.
역자주 – Amazon 및 AWS의 지속 가능성과 국내외 ESG 사례들을 보시려면 AWS ESG 고객 성공 사례 미니북 (PDF)를 다운로드하세요.
– Isha Dua Sr. Solutions Architect AWS
– Ananth Kommuri Solutions Architect AWS
– Dr. Sam Mokhtari Sr. Sustainability Lead SA WA for AWS
– Adam Boeglin, Principal Specialist EC2 Sustainability
이 글은 AWS 블로그의 Building Sustainable, Efficient, and Cost-Optimized Applications on AWS를 기반으로 허태현 Principal Solutions Architect가 한국어로 번역 및 편집하였습니다.