AWS 기술 블로그
AWS에서 Windows Server 워크로드를 최적화하기 위한 10가지 권장 사항
본 게시물은 AWS Blog에 게시된 “Top 10 recommendations to optimize your Windows Server workloads on AWS” by Yogi Barot, Ben Groeneveld, and Jerroll Harewood 게시물을 한국어로 번역 및 편집하였습니다.
이 블로그 게시물에서는 AWS에서 Windows Server 워크로드를 실행할 때 비용을 절감하고 성능을 개선하는 데 도움이 되는 상위 10가지 권장 사항을 공유합니다.
첫 번째 단계는 워크로드에 적합한 Amazon EC2(Amazon Elastic Compute Cloud) 인스턴스 제품군, 크기 및 라이선스 옵션을 선택하는 것입니다. 인스턴스 제품군마다 CPU, 메모리, 스토리지, 및 네트워크 성능 수준이 다릅니다. 워크로드 요구 사항에 맞는 올바른 옵션을 선택하면 불필요한 비용과 성능 저하로 이어질 수 있는 리소스의 과대 또는 과소 프로비저닝을 방지하는 데 도움이 됩니다.
Windows Server 워크로드 라이선싱을 위해 가장 적합한 라이선싱 모델 선택에 대한 권장 사항을 제공합니다. AWS로 마이그레이션하는 워크로드를 검토하기 위해 AWS Optimization and Licensing Assessment(OLA)를 사용하거나 기존 워크로드를 위해 AWS Cost Explorer 를 사용하는 등 다양한 방법으로 이 정보를 수집할 수 있습니다.
또한 AWS Compute Optimizer 같은 AWS 서비스를 사용하여 Amazon EC2를 적절하게 사이징하는 방법도 보여드립니다. 마지막으로, 투자를 최적화하고 성능 요구 사항을 충족하기 위한 현대화 권장 사항을 제공합니다.
다음은 Windows Server 워크로드에 대한 비용을 최적화하기 위한 상위 10가지 권장 사항입니다.
1. 적절한 인스턴스 제품군을 선택합니다.
Amazon EC2는 다양한 사용 사례에 맞게 최적화된 폭넓은 인스턴스 제품군을 제공합니다. 여기에는 범용, 컴퓨트 최적화, 메모리 최적화, 가속 컴퓨팅, 스토리지 최적화 인스턴스가 포함됩니다. 대부분의 고객은 범용, 컴퓨트 최적화, 메모리 최적화 인스턴스에서 Windows Server 워크로드를 실행합니다.
워크로드에 맞는 인스턴스 제품군을 선택할 때 몇 가지의 요소를 고려해야 합니다. 인스턴스는 CPU, 메모리, 스토리지 및 네트워킹 용량과 같은 리소스 요구 사항을 충족해야 합니다. 인스턴스를 선택할 때는 다음 요소를 고려하세요:
- 애플리케이션의 유형과 특성. 예를 들어 CPU 사용량이 많은 애플리케이션의 경우 컴퓨트 최적화 인스턴스 제품군을 선택하는 것이 좋습니다.
- 예상 워크로드 패턴 및 수요. 범용 인스턴스 제품군은 웹 서버 및 코드 리포지토리와 같이, 리소스를 동일한 비율로 사용하는 애플리케이션에 이상적입니다.
- 애플리케이션 성능 요구 사항, 비용 영향, 예산 제약을 고려하세요. 애플리케이션의 성능 요구 사항을 충족하는 인스턴스 제품군을 선택해야 합니다. 예를 들어, 메모리 최적화 인스턴스는 메모리에서 대용량 데이터 세트를 처리하는 워크로드에 빠른 성능을 제공하며 데이터베이스 워크로드에도 이상적입니다.
예를 들어 보겠습니다. 메모리 사용량이 많은 Windows 애플리케이션을 실행하는 경우 최소 16GiB의 메모리가 있는 Amazon EC2 인스턴스가 필요하므로 r6i 메모리 최적화 인스턴스 또는 c6i 컴퓨트 최적화 인스턴스 유형을 사용하는 것이 좋습니다. 다음 표는 각 인스턴스 유형이 16GiB 워크로드를 실행하는 데 필요한 특정 메모리 및 CPU 할당에 대한 세부 정보를 제공합니다. 표에서 볼 수 있듯이, r6i 인스턴스는 2개의 가상 CPU만 사용하므로 8개의 vCPU가 필요한 c6i 인스턴스보다 71% 저렴합니다.
인스턴스 크기 | vCPU | 메모리(GiB) | 인스턴스 스토리지(GB) | 네트워크 대역폭(Gbps) | EBS 대역폭(Gbps) |
r6i.large(메모리 최적화) | 2 | 16 | EBS 전용 | 최대 12.5 | 최대 10 |
c6i.2xlarge(컴퓨트 최적화) | 8 | 16 | EBS 전용 | 최대 12.5 | 최대 10 |
2. 올바른 인스턴스 유형 선택
다양한 Amazon EC2 인스턴스 유형을 통해 애플리케이션에 적합한 리소스 조합을 유연하게 선택할 수 있습니다. 그러나 Amazon EC2에서 리소스를 과도하게 프로비저닝하면 불필요한 비용과 리소스 낭비로 이어질 수 있습니다. AWS Optimization and Licensing Assessment는 워크로드에 비용 최적화된 인스턴스를 선택하는 데 도움이 될 수 있습니다.
Amazon EC2에서 Windows Server 워크로드를 실행하는 경우, 인스턴스가 워크로드의 수요와 일치하는지 확인하기 위해 Amazon Elastic Block Store(EBS) CloudWatch 메트릭을사용하여 사용량을 능동적으로 모니터링할 수 있습니다. AWS는 또한 오버프로비저닝된 인스턴스를 식별하는 데 도움이 되는 rightsizing tools 을 제공합니다.
이전 세대의 Amazon EC2 인스턴스에서 실행 중인 워크로드가 있는 경우, 최신 세대의 인스턴스로 이동할 수 있습니다. 최신 세대는 더 빠른 초당 스토리지 입출력 작업 수(IOPS)와 더 높은 처리량을 특징으로 하는, 더 높은 성능과 효율성의 프로세서를 사용합니다. 따라서 이전 세대 인스턴스에 비해 가격 대비 성능이 더 우수합니다.
3. 적합한 스토리지 선택
스토리지를 평가할 때는 항상 최신 세대의 스토리지 기능을 고려하는 것이 좋습니다. 범용 스토리지의 경우, 범용 SSD(gp2) Amazon EBS 볼륨과 범용 SSD(gp3) Amazon EBS 볼륨을 제공합니다.
범용과 고성능 워크로드 모두에 gp3 볼륨을 사용하는 것을 권장합니다. 동일한 스토리지 용량으로 gp2 볼륨보다 최대 두 배의 성능을 제공하기 때문입니다.
또한, gp3 볼륨은 I/O 작업당 비용이 더 낮습니다. gp2 볼륨은 100 IOPS의 기본 성능을 제공하고 볼륨의 크기에 따라 확장되는 반면에, gp3 볼륨은 볼륨 크기에 관계없이, 예측 가능한 3000 IOPS의 기본 성능과 125 MiB/s의 처리량을 제공합니다. gp3 볼륨을 사용하면 IOPS 및 처리량을 프로비저닝할 수 있습니다.
스토리지 크기를 늘리지 않고도 독립적으로 마이그레이션할 수 있습니다. gp2에서 gp3로 마이그레이션하면 gp2에 비해 GiB당 최대 20%까지 비용을 절감할 수 있습니다.
gp2에서 gp3로 원활하게 마이그레이션하려면 Elastic 볼륨 수정 가이드를 참조하는 것이 좋습니다. 다음 단계를 따르면 gp2에서 gp3로 마이그레이션할 때 다운타임을 방지하는 데 도움이 됩니다.
밀리초 미만의 응답시간이 필요하거나 현재의 단일 볼륨 피크 성능 및 처리량을 뛰어넘어야 하는 워크로드의 경우, 범용 볼륨에서 프로비저닝된 IOPS SSD(io1 및 io2)로 마이그레이션하는 것이 좋습니다.
Io1 및 io2 볼륨은 스토리지 성능과 일관성에 민감한 I/O 집약적인 워크로드, 특히 데이터베이스 워크로드의 요구 사항을 충족하도록 설계되었습니다. 프로비저닝된 IOPS SSD 볼륨은 볼륨을 생성할 때 지정하는 일관된 IOPS 속도를 사용합니다. 이 옵션을 선택하면 Amazon EBS는 99.9%의 시간 동안 프로비저닝된 성능을 제공합니다.
io1에서 범용 SSD(gp3) Amazon EBS 볼륨으로 전환하는 것이 가능한지 결정하려면 IOPS 및 처리량에 대한 EBS CloudWatch 메트릭을 검토하는 것이 좋습니다.
4. 스토리지 구성과 인스턴스 용량의 일치
각 Amazon EC2 인스턴스 유형 및 크기에는 최대 IOPS 및 처리량 제한이 있습니다. Amazon EBS는 다양한 수준의 IOPS 및 처리량을 제공하는 다양한 볼륨 유형을 제공하며, 각 유형에는 자체적으로 정의된 제한이 있습니다. 인스턴스에 연결된 EBS 볼륨이 Amazon EC2 인스턴스 제한보다 작은지 확인하는 것이 좋습니다.
예를 들어 EBS io1 볼륨이 18,000 IOPS로 설정된 r5a.4xlarge 인스턴스가 있을 수 있습니다. 그러나 r5a.4xlarge 인스턴스의 최대 IOPS는 16,000입니다. 인스턴스의 최대 제한과 일치하도록 EBS 볼륨 IOPS를 16,000으로 줄이면 비용을 절감할 수 있습니다. 애플리케이션에 16,000 IOPS 이상이 필요한 경우 EBS 볼륨의 성능을 최대한 활용하려면 IOPS 제한이 더 높은 인스턴스 크기를 선택해야 합니다.
또한 EC2 인스턴스가 EBS 볼륨의 성능 요구 사항을 충족할 수 있도록 EBS에 최적화된 인스턴스를사용하는 것이 좋습니다. 이러한 EBS 최적화 인스턴스는 일반 네트워크 트래픽과 분리된 EBS 볼륨 트래픽 전용 대역폭을 제공합니다.
5. 적합한 라이선스 유형 선택
AWS에서 신규 및 기존 Microsoft 소프트웨어 라이선스를 사용할 수 있는 다양한 옵션이 있습니다. 라이선스가 포함된 Amazon EC2 인스턴스를 구매하면 AWS에서 완전히 호환되는 새로운 Windows Server 워크로드를 실행할 수 있습니다. Amazon EC2 전용 호스트, Amazon EC2 전용 인스턴스 또는 기본 테넌시가 있는 Amazon EC2 인스턴스와 함께, AWS에서 기존의 라이선스를 Software Assurance를 통해 Microsoft License Mobility 를 사용하여 활용할 수 있습니다.
앞서 라이선스가 최적화되고 워크로드에 적합한 인스턴스 권장 사항을 제공하여 비용을 절감하고 효율성을 개선하는 데 도움이 되는 OLA에 대해 설명했습니다. 또한 OLA는 기존의 Microsoft 라이선스를 활용하고, 자체 라이선스(BYOL)를 AWS로 가져와 투자 수익을 극대화하여, 라이선스 비용을 최소화하는 데 도움이 될 수 있습니다.
Amazon EC2 전용 호스트를사용하는 경우 T3 전용 호스트를 사용해야 합니다. T3 전용 호스트는 CPU 리소스를 공유할 수 있는 확장 가능한 인스턴스를 지원하여, 기본 CPU 성능과 필요할 때 버스트 기능을 제공합니다. CPU 리소스를 공유하면 단일 T3 전용 호스트가 동급의 범용 전용 호스트보다 최대 4배 더 많은 인스턴스를 지원할 수 있습니다. 이를 통해 라이선스 및 인프라 비용을 최대 70%까지 절약할 수 있습니다.
6. 최적화 도구 사용
AWS는 워크로드를 효율적으로 유지 관리하기 위한 인사이트와 권장 사항을 제공하는 광범위한 도구를 제공합니다.
AWS Compute Optimizer 는 사용하지 않는 인스턴스를 중지하고 활용도가 낮은 인스턴스를 재구성하는 등 워크로드 최적화를 위한 제안을 제공합니다. Amazon CloudWatch에서 제공하는 사용률 데이터를 기반으로 Amazon EC2 인스턴스 유형, Amazon EBS 볼륨, AWS Fargate의 Amazon Elastic Container Service(ECS) 서비스, AWS Lambda 함수를 비롯한 많은 AWS 리소스의 과대 프로비저닝 및 과소 프로비저닝을 방지할 수 있도록 도와줍니다. 이를 통해 최대 25%의 비용을 절감할 수 있습니다.
AWS Trusted Advisor를 사용하여 유휴 상태이거나 활용도가 낮은 Amazon EBS 볼륨과 연결되지 않은 Elastic IP 주소를 식별할 수 있습니다. Trusted Advisor는 사용량, 구성, 지출을 분석한 다음 실행 가능한 권장 사항을 제공함으로써 비용을 절감할 수 있도록 도와줍니다.
또한 AWS Cost Explorer를 사용하여 최대 12개월의 과거 사용량 데이터를 확인하고 향후 12개월 동안 지출할 것으로 예상되는 금액을 예측할 수 있습니다. AWS Cost Explorer를 사용하면 비용과 사용량을 확인하고 분석할 수 있습니다. 또한 비용 절감을 위한 Compute Savings Plans과 Amazon EC2 Reserved Instances 구매 추천을 받을 수도 있습니다.
7. 인스턴스 스케줄러를 통한 인스턴스 자동 중지/시작
항상 비용 절감을 위해 필요한 경우에만 인스턴스를 실행하는 것이 좋습니다. 그러나 이 작업을 수동으로 수행하면 인적 오류의 위험이 발생할 수 있으며, 이는 워크로드와 사용자에게 부정적인 영향을 미칠 수 있습니다. 이를 완화하려면 AWS Instance Scheduler를 사용하는 것이 좋습니다. 이 기능은 사용자가 정의한 일정에 따라 Amazon EC2 인스턴스의 시작 및 중지를 자동화합니다.
이렇게 하면 사용하지 않는 리소스를 자동으로 중지하고 용량이 필요할 때만 리소스를 시작하여 비용과 인적 오류를 줄일 수 있습니다. 일반적인 사용 사례로는 테스트 및 개발 환경, 자주 사용하지 않는 워크로드, 사용 패턴을 예측할 수 있는 워크로드 등이 있습니다.
모든 인스턴스를 계속 최대 사용률로 실행하면 실제로 사용하지 않는 리소스에 대한 비용을 지불하게 될 수 있습니다. AWS 인스턴스 스케줄러를 사용하면 업무 외 시간, 주말 또는 기타 사용량이 적은 기간과 같이 필요하지 않을 때 인스턴스를 끌 수 있습니다. 이렇게 하면 시간이 지남에 따라 상당한 비용을 절감할 수 있습니다.
인스턴스 스케줄러는 계정 간 인스턴스 스케줄링과 자동 태깅 기능도 제공합니다. 또한 명령줄 인터페이스 또는 AWS Systems Manager 유지 관리 윈도우를 사용하여 일정 또는 기간을 구성할 수 있는 기능도 제공합니다. 이러한 기능을 사용하면 인스턴스를 보다 효과적으로 관리하고 여러 프로젝트 또는 팀에 걸쳐 비용을 정확하게 추적하고 할당할 수 있습니다.
8. 스팟 인스턴스 사용
Amazon EC2 스팟 인스턴스를 사용하여 AWS 클라우드에서 사용하지 않는 Amazon EC2 용량을 활용할 수 있습니다. 또한 스팟 인스턴스를 다양한 상태 비저장, 내결함성 또는 유연한 애플리케이션에 사용할 수 있습니다. 여기에는 빅데이터, 컨테이너화된 워크로드, CI/CD(지속적 통합 및 지속적 배포), 웹 서버, 고성능 컴퓨팅(HPC), 테스트 및 개발 워크로드 등이 포함됩니다.
또한 Amazon EC2 Auto Scaling을 사용하여 스팟, 온디맨드, 예약 인스턴스, Savings Plan 인스턴스 전반에서 용량을 프로비저닝하여 워크로드 비용을 성능과 함께 최적화할 수 있습니다. 스팟 인스턴스는 온디맨드 인스턴스 가격 대비 최대 90% 할인된 가격으로 제공됩니다. 스팟 인스턴스 가격 내역 페이지에서, 특정 인스턴스 유형에 대한 스팟 인스턴스 가격 내역을 확인하고, 인스턴스당 절감액을 확인할 수 있습니다.
9. 적합한 Savings Plan 선택
적합한 Amazon EC2 인스턴스를 선택한 후에는 Savings Plans의 사용도 고려를 해야 합니다. Savings Plans은 1년 또는 3년 동안 일정한 사용량(시간당 $ 단위로 측정)을 약정하는 대신 Amazon EC2, AWS Lambda 및 AWS Fargate 사용량에 대해 할인된 가격을 제공하는 유연한 가격 책정 모델입니다. Savings Plan에 가입하면 약정 기간까지의 사용량에 대해 할인된 Savings Plan 가격이 청구됩니다.
AWS는 최대 60%까지 비용을 절감할 수 있는 최고의 유연성을 제공하는 두 가지 유형의 Savings Plan(Compute Savings Plans및 EC2 Instance Savings Plans)을 제공합니다. 이러한 요금제는 인스턴스 제품군, 크기, 가용 영역, 지역, OS 또는 테넌시에 관계없이 Amazon EC2 인스턴스 사용량에 자동으로 적용됩니다. 또한 AWS Fargate 및 AWS Lambda 사용량에도 적용됩니다.
또한 AWS 리전에서 개별 인스턴스 제품군을 사용하기로 약정하는 대신 최대 72%까지 비용을 절감할 수 있는 최저 가격을 제공하는 Amazon EC2 Instance Savings Plans을고려할 수도 있습니다. 이렇게 하면 가용 영역, 크기, OS 또는 테넌시에 관계없이 해당 리전에서 선택한 인스턴스 제품군에 대한 비용이 자동으로 절감됩니다. Amazon EC2 Instance Savings Plans 요금제를 사용하면 해당 지역의 인스턴스 제품군 내에서 사용량을 유연하게 변경할 수 있습니다.
10. 애플리케이션 현대화
Windows Server 워크로드를 위한 몇 가지 현대화 전략에는 Windows Server 워크로드를 Linux로 마이그레이션하기, Amazon Aurora와 같은 오픈 소스 데이터베이스로 마이그레이션하기, SQL Server를 Aurora PostgreSQL용 Babelfish로 이동하기, Windows 컨테이너를 사용하여 애플리케이션을 컨테이너화하기 등이 있습니다.
Windows Server 워크로드를 Linux로 마이그레이션하면 운영 체제 라이선스 비용을 절감할 수 있습니다. 또한 예상치 못한 잠재적으로 불리한 라이선스 정책 변경으로 인해 발생할 수 있는 중단으로부터 조직을 보호할 수 있습니다.
데이터베이스 현대화를 위해 Amazon Aurora는 약 10분의 1의 비용으로 상용 데이터베이스와 동등한 기능을 제공합니다. Aurora PostgreSQL용 Babelfish는 Amazon Aurora PostgreSQL 호환 에디션의 새로운 기능으로, Aurora가 Microsoft SQL Server용으로 작성된 애플리케이션의 명령을 이해할 수 있게 해줍니다. Babelfish를 통해 Aurora PostgreSQL은 T-SQL을 이해하고 동일한 통신 프로토콜을 지원합니다. 즉, 원래 SQL Server용으로 작성된 애플리케이션을 이제 더 적은 코드 변경으로 Aurora PostgreSQL에서 작동할 수 있습니다.
애플리케이션 현대화를 위해 Linux 컨테이너 내에서 애플리케이션을 실행할 수 있도록 .NET 5+로 전환하는 것을 고려할 수 있습니다. 애플리케이션을 Windows의 .NET Framework에서 Linux의 .NET 5+로 리팩토링하면 동급 인스턴스 대비 40% 더 나은 가격 대비 성능을 제공하는 AWS Graviton2 프로세서와 같은 최신 개선 사항을 이용할 수 있습니다. 애플리케이션에 .NET 프레임워크가 필요한 경우, Windows 컨테이너를 사용하고 애플리케이션을 통합하여 더 적은 수의 Amazon EC2 인스턴스에서 실행하는 것을 고려하십시오. 이렇게 하면 Windows Server 라이선스 비용이 절감되고 Amazon EBS 스토리지 요구 사항도 감소할 수 있습니다.
결론
AWS에서 Windows Server 워크로드를 최적화하면 총 소유 비용을 줄이는 데 도움이 될 수 있습니다. 이 게시물에서는 AWS에서 Windows Server 워크로드를 실행하기 위한 최적의 가격 대비 성능 구성을 찾는 데 도움이 되는 몇 가지 도구와 구성 권장 사항을 제공했습니다. 권장 구성을 구현할 때는 워크로드에 대한 스트레스 테스트를 수행하여 예산 요구 사항을 충족할 뿐만 아니라 성능 기대치도 충족하는지 확인하는 것이 중요합니다.
AWS로 마이그레이션하는 경우 AWS Optimization and Licensing Assessment를 사용하고, 이미 AWS를 사용하고 있는 경우 AWS Compute Optimizer 및 AWS Trusted Advisor를사용하여 Windows Server 워크로드를 최적화하는 것을 고려하십시오.
AWS는 귀사가 클라우드를 최대한 활용할 수 있는 방법을 평가하는 데 도움을 드릴 수 있습니다. 클라우드에서 가장 중요한 애플리케이션을 마이그레이션하고 현대화하기 위해, 당사를 신뢰하는 수백만 명의 AWS 고객과 함께 하십시오. Windows Server 또는 SQL Server 현대화에 대해 자세히 알아보려면 Windows on AWS를 방문하십시오. 지금 바로 문의하여 현대화 여정을 시작하시기 바랍니다.