

# 선택
<a name="a-selection"></a>

**Topics**
+ [

# PERF 1  최고의 성능을 제공하는 아키텍처를 선택하려면 어떻게 해야 합니까?
](w2aac19c11b5b5.md)
+ [

# PERF 2  컴퓨팅 솔루션을 어떻게 선택합니까?
](w2aac19c11b5b7.md)
+ [

# PERF 3  스토리지 솔루션을 어떻게 선택합니까?
](w2aac19c11b5b9.md)
+ [

# PERF 4  데이터베이스 솔루션을 어떻게 선택합니까?
](w2aac19c11b5c11.md)
+ [

# PERF 5  네트워킹 솔루션을 구성하려면 어떻게 해야 합니까?
](w2aac19c11b5c13.md)

# PERF 1  최고의 성능을 제공하는 아키텍처를 선택하려면 어떻게 해야 합니까?
<a name="w2aac19c11b5b5"></a>

 워크로드에서 최적의 성능을 얻으려면 여러 접근 방식을 취해야 합니다. Well-Architected 시스템은 다수의 솔루션 및 기능을 사용하여 성능을 개선합니다. 

**Topics**
+ [

# PERF01-BP01 사용 가능한 서비스 및 리소스 파악
](perf_performing_architecture_evaluate_resources.md)
+ [

# PERF01-BP02 아키텍처를 선택하는 프로세스 정의
](perf_performing_architecture_process.md)
+ [

# PERF01-BP03 비용 요구 사항을 고려한 의사 결정
](perf_performing_architecture_cost.md)
+ [

# PERF01-BP04 정책 또는 참조 아키텍처 사용
](perf_performing_architecture_use_policies.md)
+ [

# PERF01-BP05 클라우드 공급자 또는 해당하는 파트너의 지침 사용
](perf_performing_architecture_external_guidance.md)
+ [

# PERF01-BP06 기존 워크로드 벤치마크
](perf_performing_architecture_benchmark.md)
+ [

# PERF01-BP07 워크로드 로드 테스트
](perf_performing_architecture_load_test.md)

# PERF01-BP01 사용 가능한 서비스 및 리소스 파악
<a name="perf_performing_architecture_evaluate_resources"></a>

 클라우드에서 사용 가능한 방대한 서비스와 리소스에 대해 알아보고 이해합니다. 워크로드와 관련이 있는 서비스 및 구성 옵션을 확인하고, 성능을 최적화하는 방법을 파악합니다. 

 기존 워크로드를 평가하는 경우에는 워크로드에 사용되는 다양한 서비스 리소스의 인벤토리를 생성해야 합니다. 인벤토리는 관리형 서비스 및 최신 기술로 교체 가능한 구성 요소를 평가하는 데 도움이 됩니다. 

 **일반적인 안티 패턴:** 
+  클라우드를 코로케이션된 데이터 센터로 사용합니다. 
+  영구 스토리지를 필요로 하는 모든 것에 공유 스토리지를 사용합니다. 
+  자동 조정을 사용하지 않습니다. 
+  현재 표준에 가장 근접한 인스턴스 유형을 사용하지만 필요한 경우 더 큰 인스턴스 유형을 사용합니다. 
+  관리형 서비스로 사용할 수 있는 기술을 배포하고 관리합니다. 

 **이 모범 사례 수립의 이점:** 잘 모르는 서비스를 고려할 경우 인프라 비용과 서비스 유지 관리에 필요한 노력이 크게 줄어들 가능성이 있습니다. 새로운 서비스와 기능을 배포하여 출시 시간을 단축할 수 있습니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 높음 

## 구현 가이드
<a name="perf01-bp01-implementation-guidance"></a>

 관련 서비스에 대한 워크로드 소프트웨어 및 아키텍처 인벤토리 생성: 워크로드의 인벤토리를 수집하고 자세히 알아볼 제품 범주를 결정합니다. 관리형 서비스로 대체하여 성능을 개선하고 운영 복잡성을 줄일 수 있는 워크로드 구성 요소를 식별합니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS 아키텍처 센터](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS 솔루션 라이브러리](https://aws.amazon.com/solutions/) 
+  [AWS 지식 센터](https://aws.amazon.com/premiumsupport/knowledge-center/) 

 **관련 동영상:** 
+  [Amazon Builders’ Library 소개(DOP328)](https://www.youtube.com/watch?v=sKRdemSirDM) 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 

 **관련 예시:** 
+  [AWS 샘플](https://github.com/aws-samples) 
+  [AWS SDK 예시](https://github.com/awsdocs/aws-doc-sdk-examples) 

# PERF01-BP02 아키텍처를 선택하는 프로세스 정의
<a name="perf_performing_architecture_process"></a>

 클라우드에 대한 내부 경험과 지식을 사용하거나 게시된 사용 사례, 관련 설명서 또는 백서 등의 외부 리소스를 사용하여 리소스 및 서비스를 선택하는 프로세스를 정의합니다. 워크로드에 사용될 수 있는 서비스는 테스트하고 벤치마킹할 수 있도록 장려하는 프로세스를 정의해야 합니다. 

 아키텍처에 대한 중요한 사용자 사례를 작성할 때는 각 중요 사례를 얼마나 빠르게 실행했는지 명시하는 등 성능 요구 사항을 포함해야 합니다. 이러한 중요 사례에서는 이런 사례들이 요구 사항을 어떻게 만족시키는지 가시성을 확보하기 위한 추가적인 스크립트들이 구현되어야 합니다. 

 **일반적인 안티 패턴:** 
+  시간이 지나면 현재 아키텍처가 정적 아키텍처가 되고 업데이트되지 않는다고 가정합니다. 
+  시간이 지나면 타당한 이유 없이 아키텍처 변경을 도입합니다. 

 **이 모범 사례 정립의 이점:** 아키텍처 변경을 위한 프로세스를 정의하면 수집된 데이터를 사용하여 워크로드 설계에 지속적으로 영향을 줄 수 있습니다. 

 **이 모범 사례를 정립되지 않을 경우 노출되는 위험의 수준:** 높음 

## 구현 가이드
<a name="implementation-guidance"></a>

 아키텍처 접근 방식 선택: 성능 요구 사항을 충족하는 아키텍처의 종류를 식별합니다. 전송 미디어(데스크톱, 웹, 모바일, IoT), 기존 요구 사항 및 통합 등의 제약 조건을 식별합니다. 리팩터링을 포함한 재사용 기회를 식별합니다. AWS 솔루션스 아키텍트, AWS 참조 아키텍처 및 AWS 파트너와 같은 다른 팀, 아키텍처 다이어그램 및 리소스를 참조하면 아키텍처 선택에 도움을 받을 수 있습니다. 

 성능 요구 사항 정의: 고객 경험을 바탕으로 가장 중요한 지표를 식별합니다. 각 지표에 대해 목표, 측정 방식 및 우선 순위를 정합니다. 고객 경험을 정의합니다. 고객이 요구하는 성능 경험 및 고객이 워크로드의 성능을 판단하는 근거를 문서화합니다. 중요한 사용자 사례에 대한 경험 문제를 우선적으로 처리합니다. 성능 요구 사항을 포함하고 스크립트로 작성된 사용자 여정을 구현하여 이러한 사례의 성능이 요구 사항에 부합하는지 확인합니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS 아키텍처 센터](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS Solutions Library](https://aws.amazon.com/solutions/) 
+  [AWS 지식 센터](https://aws.amazon.com/premiumsupport/knowledge-center/) 

 **관련 동영상:** 
+  [Amazon Builders’ Library 소개(DOP328)](https://www.youtube.com/watch?v=sKRdemSirDM) 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 

 **관련 예시:** 
+  [AWS 샘플](https://github.com/aws-samples) 
+  [AWS SDK 예시](https://github.com/awsdocs/aws-doc-sdk-examples) 

# PERF01-BP03 비용 요구 사항을 고려한 의사 결정
<a name="perf_performing_architecture_cost"></a>

 워크로드에는 작업에 대한 비용 요구 사항이 있는 경우가 많습니다. 내부 비용 제어 기능을 사용하여 예상되는 리소스 요구 사항에 적합한 유형 및 크기의 리소스를 선택하십시오. 

 관리형 데이터베이스, 인 메모리 캐시 및 ETL 서비스와 같은 완전관리형 서비스로 대체할 수 있는 워크로드 구성 요소를 결정하십시오. 운영 워크로드를 줄이면 비즈니스 결과에 리소스를 집중시킬 수 있습니다. 

 비용 요구 사항 모범 사례는 다음 백서에서 *비용 효율적인 리소스* 섹션을 참조하십시오. [비용 최적화 원칙 백서](https://docs.aws.amazon.com/wellarchitected/latest/cost-optimization-pillar/welcome.html). 

 **일반적인 안티 패턴:** 
+  인스턴스 패밀리는 하나만 사용합니다. 
+  라이선스가 부여된 솔루션과 오픈 소스 솔루션을 비교 평가하지 않습니다. 
+  블록 스토리지만 사용합니다. 
+  관리형 서비스로 사용 가능한 EC2 인스턴스 및 Amazon EBS 또는 휘발성 볼륨에 공통 소프트웨어를 배포합니다. 

 **이 모범 사례 정립의 이점:** 선택할 때 비용을 고려하면 다른 투자가 가능해집니다. 

 **이 모범 사례를 정립되지 않을 경우 노출되는 위험의 수준:** 보통 

## 구현 가이드
<a name="implementation-guidance"></a>

 워크로드 구성 요소를 최적화하여 비용 절감: 워크로드 구성 요소를 적정 크기로 조정하고 탄력성을 활성화하여 비용을 절감하고 구성 요소 효율성을 극대화합니다. 해당하는 경우 관리형 데이터베이스, 인메모리 캐시 및 역방향 프록시와 같은 관리형 서비스로 대체할 수 있는 워크로드 구성 요소를 결정합니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS 아키텍처 센터](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS Solutions Library](https://aws.amazon.com/solutions/) 
+  [AWS 지식 센터](https://aws.amazon.com/premiumsupport/knowledge-center/) 
+  [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 

 **관련 동영상:** 
+  [Amazon Builders’ Library 소개(DOP328)](https://www.youtube.com/watch?v=sKRdemSirDM) 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 
+  [Optimize performance and cost for your AWS compute(CMP323-R1) ](https://www.youtube.com/watch?v=zt6jYJLK8sg&ref=wellarchitected) 

 **관련 예시:** 
+  [AWS 샘플](https://github.com/aws-samples) 
+  [AWS SDK 예시](https://github.com/awsdocs/aws-doc-sdk-examples) 
+  [Compute Optimizer 및 메모리 활용 지원을 통해 적절한 규모 결정](https://www.wellarchitectedlabs.com/cost/200_labs/200_aws_resource_optimization/5_ec2_computer_opt/) 
+  [AWS Compute Optimizer 데모 코드](https://github.com/awslabs/ec2-spot-labs/tree/master/aws-compute-optimizer) 

# PERF01-BP04 정책 또는 참조 아키텍처 사용
<a name="perf_performing_architecture_use_policies"></a>

 내부 정책 및 기존 참조 아키텍처를 평가하고 분석을 사용하여 워크로드에 사용할 서비스 및 구성을 선택하면 성능 및 효율성을 극대화할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  회사의 관리 오버헤드에 영향을 줄 수 있는 기술 선택의 광범위한 사용을 허용합니다. 

 **이 모범 사례 수립의 이점:** 아키텍처, 기술 및 공급업체 선택에 대한 정책을 수립하면 신속하게 의사 결정을 내릴 수 있습니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 보통 

## 구현 가이드
<a name="implementation-guidance"></a>

 기존 정책 또는 참조 아키텍처를 사용하여 워크로드 배포: 서비스를 클라우드 배포에 통합한 다음 성능 테스트를 사용하여 성능 요구 사항을 계속해서 충족할 수 있는지 확인합니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS 아키텍처 센터](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS 솔루션 라이브러리](https://aws.amazon.com/solutions/) 
+  [AWS 지식 센터](https://aws.amazon.com/premiumsupport/knowledge-center/) 

 **관련 동영상:** 
+  [Amazon Builders’ Library 소개(DOP328)](https://www.youtube.com/watch?v=sKRdemSirDM) 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 

 **관련 예시:** 
+  [AWS 샘플](https://github.com/aws-samples) 
+  [AWS SDK 예시](https://github.com/awsdocs/aws-doc-sdk-examples) 

# PERF01-BP05 클라우드 공급자 또는 해당하는 파트너의 지침 사용
<a name="perf_performing_architecture_external_guidance"></a>

 클라우드 회사 리소스(예: 솔루션스 아키텍트, 전문 서비스 또는 적절한 파트너)를 의사 결정의 지침으로 사용하십시오. 이러한 리소스는 최적의 성능을 위해 아키텍처를 검토하고 개선하는 데 도움이 될 수 있습니다. 

 추가 지침 또는 제품 정보가 필요한 경우 AWS에 문의하여 지원을 받으십시오. AWS 솔루션스 아키텍트 및 [AWS Professional Services](https://aws.amazon.com/professional-services/) 는 솔루션 구현에 대한 지침을 제공합니다. [AWS 파트너](https://aws.amazon.com/partners/) 는 비즈니스 민첩성 및 혁신을 달성하는 데 도움이 되는 AWS 전문 지식을 제공합니다. 

 **일반적인 안티 패턴:** 
+  AWS를 일반적인 데이터 센터 공급자로 사용합니다. 
+  AWS 서비스를 설계 의도와 다른 방식으로 사용합니다. 

 **이 모범 사례 수립의 이점:** 공급자 또는 파트너와 상담하면 의사 결정에서 확신을 얻을 수 있습니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 보통 

## 구현 가이드
<a name="implementation-guidance"></a>

 AWS 리소스에 문의하여 지원 요청: AWS 솔루션스 아키텍트 및 Professional Services는 솔루션 구현에 대한 지침을 제공합니다. APN 파트너는 비즈니스 민첩성 및 혁신을 달성하는 데 도움이 되는 AWS 전문 지식을 제공합니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS 아키텍처 센터](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS Solutions Library](https://aws.amazon.com/solutions/) 
+  [AWS 지식 센터](https://aws.amazon.com/premiumsupport/knowledge-center/) 

 **관련 동영상:** 
+  [Amazon Builders’ Library 소개(DOP328)](https://www.youtube.com/watch?v=sKRdemSirDM) 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 

 **관련 예시:** 
+  [AWS 샘플](https://github.com/aws-samples) 
+  [AWS SDK 예시](https://github.com/awsdocs/aws-doc-sdk-examples) 

# PERF01-BP06 기존 워크로드 벤치마크
<a name="perf_performing_architecture_benchmark"></a>

 기존 워크로드의 성능을 벤치마크하여 클라우드에서의 성능을 파악합니다. 이러한 벤치마크에서 수집된 데이터를 사용하면 아키텍처를 원활하게 결정할 수 있습니다. 

 통합 테스트 및 실제 사용자 모니터링과 함께 벤치마킹을 활용하여 워크로드 구성 요소의 성능에 대한 데이터를 생성합니다. 벤치마킹은 대개 로드 테스트보다 빠르게 설정할 수 있으며, 특정 구성 요소의 기술을 평가할 때 사용됩니다. 벤치마킹은 새 프로젝트를 시작할 때 로드 테스트를 위한 완전한 솔루션이 부족한 경우 종종 사용됩니다. 

 사용자 지정 벤치마크 테스트를 직접 작성할 수도 있고 [TPC-DS](http://www.tpc.org/tpcds/) 등의 업계 표준 테스트를 사용하여 데이터 웨어하우징 워크로드를 벤치마킹할 수도 있습니다. 산업 벤치마크는 여러 환경을 비교할 때 유용합니다. 사용자 지정 벤치마크는 아키텍처 내에서 수행될 것으로 예상되는 특정 작업 유형을 타게팅하는 데 유용합니다. 

 벤치마킹을 사용할 때는 유효한 결과를 얻을 수 있도록 테스트 환경을 사전 준비하는 것이 중요합니다. 동일한 벤치마크를 여러 번 실행하여 시간대별 차이를 파악하십시오. 

 벤치마크는 대개 로드 테스트보다 더 빠르게 실행되므로 배포 파이프라인 초기에 성능 편차 관련 피드백을 더 빠르게 제공하려는 경우에 사용할 수 있습니다. 구성 요소나 서비스의 큰 변화를 평가할 때 벤치마킹을 수행하면 변경 작업의 타당성을 빠르게 확인할 수 있습니다. 벤치마킹은 로드 테스트와 함께 사용해야 합니다. 로드 테스트에서는 프로덕션 환경의 워크로드 성능에 대한 정보를 얻을 수 있기 때문입니다. 

 **일반적인 안티 패턴:** 
+  워크로드 특성을 나타내지 않는 일반적인 벤치마크를 사용합니다. 
+  고객의 피드백과 관점을 유일한 벤치마크로 삼습니다. 

 **이 모범 사례 수립의 이점:** 현재 구현을 벤치마킹하면 성능 개선을 측정할 수 있습니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 보통 

## 구현 가이드
<a name="implementation-guidance"></a>

 개발 중 성능 모니터링: 워크로드가 변경될 때의 성능을 파악할 수 있는 프로세스를 구현합니다. 

 전송 파이프라인에 통합: 전송 파이프라인에서 로드 테스트를 자동으로 실행합니다. 미리 정의된 KPI(핵심 성능 지표) 및 임계값을 기준으로 테스트 결과를 비교하여 성능 요구 사항이 계속 충족되는지 확인합니다. 

 사용자 여정 테스트: 로드 테스트에는 프로덕션 데이터의 통합 또는 제거 버전(민감한 정보 또는 식별 정보 제거)을 사용하십시오. 대규모 애플리케이션에서 재생 또는 사전 프로그래밍된 사용자 여정을 사용하여 전체 아키텍처를 실행합니다. 

 실제 사용자 모니터링: CloudWatch RUM을 사용하면 애플리케이션 성능에 대한 클라이언트 측 데이터를 수집하고 확인하는 데 도움이 됩니다. 이 데이터를 활용하여 실제 사용자 성능 벤치마크를 설정할 수 있습니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS 아키텍처 센터](https://aws.amazon.com/architecture/) 
+  [AWS Partner Network](https://aws.amazon.com/partners/) 
+  [AWS 솔루션 라이브러리](https://aws.amazon.com/solutions/) 
+  [AWS 지식 센터](https://aws.amazon.com/premiumsupport/knowledge-center/) 
+  [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 
+  [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 

 **관련 동영상:** 
+  [Amazon Builders’ Library 소개(DOP328)](https://www.youtube.com/watch?v=sKRdemSirDM) 
+  [This is my Architecture](https://aws.amazon.com/architecture/this-is-my-architecture/) 
+  [Amazon CloudWatch RUM을 통한 애플리케이션 최적화](https://www.youtube.com/watch?v=NMaeujY9A9Y) 
+  [Amazon CloudWatch Synthetics 데모](https://www.youtube.com/watch?v=hF3NM9j-u7I) 

 **관련 예시:** 
+  [AWS 샘플](https://github.com/aws-samples) 
+  [AWS SDK 예시](https://github.com/awsdocs/aws-doc-sdk-examples) 
+  [분산 로드 테스트](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 
+  [Amazon CloudWatch Synthetics를 활용한 페이지 로드 시간 측정](https://github.com/aws-samples/amazon-cloudwatch-synthetics-page-performance) 
+  [Amazon CloudWatch RUM 웹 클라이언트](https://github.com/aws-observability/aws-rum-web) 

# PERF01-BP07 워크로드 로드 테스트
<a name="perf_performing_architecture_load_test"></a>

 다양한 리소스 유형 및 크기의 최신 워크로드 아키텍처를 클라우드에 배포합니다. 배포를 모니터링하여 병목 현상 또는 초과 용량을 식별하는 성능 지표를 캡처합니다. 이 성능 정보를 사용하여 아키텍처 및 리소스 선택을 설계하거나 개선할 수 있습니다. 

 로드 테스트에는 *실제* 워크로드가 사용되므로 프로덕션 환경에서 솔루션의 성능을 확인할 수 있습니다. 로드 테스트는 프로덕션 데이터의 통합 또는 제거 버전(민감한 정보 또는 식별 정보 제거)을 사용하여 실행되어야 합니다. 또한 대규모 워크로드를 통해 전체 아키텍처에서 진행되는 재생/사전 프로그래밍 방식의 사용자 작업 과정을 사용합니다. 전송 파이프라인의 일부로 로드 테스트를 자동으로 수행하고 결과를 미리 정의된 KPI 및 임계값과 비교합니다. 이렇게 하면 필요한 성능을 계속해서 달성할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  전체 워크로드가 아니라 워크로드의 개별 부분에 대해 로드 테스트를 수행합니다. 
+  프로덕션 환경과 동일하지 않은 인프라에서 로드 테스트를 수행합니다. 
+  향후 문제가 발생할 수 있는 위치를 예측할 때 예상 로드에 대해서만 로드 테스트를 수행합니다. 
+  AWS Support에 알리지 않은 채로 로드 테스트를 수행하고, 서비스 거부 이벤트처럼 보여 테스트에 실패한 것으로 처리합니다. 

 **이 모범 사례 수립의 이점:** 로드 테스트에서 성능을 측정하면 로드 증가의 영향을 받게 될 위치를 알 수 있습니다. 이렇게 하면 워크로드에 영향을 미치기 전에 필요한 변경 사항을 예상할 수 있습니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 낮음 

## 구현 가이드
<a name="implementation-guidance"></a>

 로드 테스트를 수행하여 선택한 접근 방식 검증: 개념 증명에 대한 로드 테스트를 수행하여 성능 요구 사항이 충족되는지 확인합니다. AWS 서비스를 사용하면 프로덕션 규모의 환경을 실행하여 아키텍처를 테스트할 수 있습니다. 테스트 환경이 필요할 때에만 비용을 지불하므로 온프레미스 환경을 사용하는 데 드는 비용의 일부로 필요한 모든 테스트를 수행할 수 있습니다. 

 지표 모니터링: Amazon CloudWatch는 아키텍처의 리소스 전반에서 지표를 수집할 수 있습니다. 또한 사용자 지정 지표를 수집하고 게시하여 비즈니스 또는 파생 지표를 파악할 수도 있습니다. CloudWatch 또는 타사 솔루션을 사용하여 임계값 위반 시점을 나타내는 경보를 설정합니다. 

 대규모 데스트: 로드 테스트에는 실제 워크로드가 사용되므로 프로덕션 환경에서 솔루션의 성능을 확인할 수 있습니다. AWS 서비스를 사용하면 프로덕션 규모의 환경을 실행하여 아키텍처를 테스트할 수 있습니다. 테스트 환경이 필요할 때만 비용을 지불하므로 온프레미스 환경을 사용할 때보다 저렴한 비용으로 전체 테스트를 실행할 수 있습니다. AWS 클라우드를 활용하여 워크로드를 테스트하면 확장에 실패한 위치 또는 비선형 방식으로 확장되는 위치를 찾을 수 있습니다. 예를 들어, 스팟 인스턴스를 사용하여 저렴한 비용으로 로드를 생성하고 프로덕션 환경에서 발생하기 전에 병목 현상을 발견할 수 있습니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
+  [CloudFormer를 사용한 AWS CloudFormation 템플릿 구축](https://aws.amazon.com/blogs/devops/building-aws-cloudformation-templates-using-cloudformer/) 
+  [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 
+  [Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) 
+  [AWS에서의 분산 로드 테스트](https://docs.aws.amazon.com/solutions/latest/distributed-load-testing-on-aws/welcome.html) 

 **관련 동영상:** 
+  [Amazon Builders’ Library 소개(DOP328)](https://www.youtube.com/watch?v=sKRdemSirDM) 
+  [Amazon CloudWatch RUM을 통한 애플리케이션 최적화](https://www.youtube.com/watch?v=NMaeujY9A9Y) 
+  [Amazon CloudWatch Synthetics 데모](https://www.youtube.com/watch?v=hF3NM9j-u7I) 

 **관련 예시:** 
+  [AWS에서의 분산 로드 테스트](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 

# PERF 2  컴퓨팅 솔루션을 어떻게 선택합니까?
<a name="w2aac19c11b5b7"></a>

워크로드에 가장 적합한 컴퓨팅 솔루션은 애플리케이션 설계, 사용량 패턴 및 구성 설정에 따라 다릅니다. 아키텍처는 다양한 구성 요소에 대해 서로 다른 컴퓨팅 솔루션을 사용하고 다양한 기능을 활성화하여 성능을 개선할 수 있습니다. 아키텍처에 대해 잘못된 컴퓨팅 솔루션을 선택하면 성능 효율성 저하로 이어질 수 있습니다.

**Topics**
+ [

# PERF02-BP01 사용 가능한 컴퓨팅 옵션 평가
](perf_select_compute_evaluate_options.md)
+ [

# PERF02-BP02 사용 가능한 컴퓨팅 구성 옵션 파악
](perf_select_compute_config_options.md)
+ [

# PERF02-BP03 컴퓨팅 관련 지표 수집
](perf_select_compute_collect_metrics.md)
+ [

# PERF02-BP04 적절하게 크기를 조정하여 필요한 구성 확인
](perf_select_compute_right_sizing.md)
+ [

# PERF02-BP05 사용 가능한 리소스 탄력성 사용
](perf_select_compute_elasticity.md)
+ [

# PERF02-BP06 지표를 기준으로 컴퓨팅 요구 사항 재평가
](perf_select_compute_use_metrics.md)

# PERF02-BP01 사용 가능한 컴퓨팅 옵션 평가
<a name="perf_select_compute_evaluate_options"></a>

 워크로드가 인스턴스, 컨테이너 및 함수와 같은 다양한 컴퓨팅 옵션을 사용하여 어떻게 이점을 얻을 수 있는지 알아봅니다. 

 **원하는 결과:** 사용 가능한 모든 컴퓨팅 옵션을 이해하여 성능을 개선하고, 불필요한 인프라 비용을 절감하며, 워크로드를 유지하는 데 필요한 운영 노력을 줄일 기회를 파악할 수 있습니다. 또한 새로운 서비스와 기능을 배포할 때 출시 시간을 단축할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  마이그레이션 후 워크로드에 온프레미스에서 사용하던 것과 동일한 컴퓨팅 솔루션을 활용합니다. 
+  클라우드 컴퓨팅 솔루션과 이러한 솔루션이 컴퓨팅 성능을 어떻게 개선할 수 있는지를 잘 모르고 있습니다. 
+  대체 컴퓨팅 솔루션이 워크로드 특성에 보다 적절한데도 확장 또는 성능 요구 사항을 충족하려고 기존 컴퓨팅 솔루션의 규모를 과도하게 키웁니다. 

 **이 모범 사례 정립의 이점:** 비즈니스 이해관계자와 엔지니어링 팀이 컴퓨팅 요구 사항을 파악하고 사용 가능한 컴퓨팅 솔루션을 평가하여 선택한 컴퓨팅 솔루션을 사용할 경우의 이점과 한계를 이해할 수 있습니다. 선택한 컴퓨팅 솔루션은 워크로드 성능 기준에 적합해야 합니다. 주요 기준에는 처리 요구 사항, 트래픽 패턴, 데이터 액세스 패턴, 확장 요구 사항 및 지연 시간 요구 사항이 포함됩니다. 

 **이 모범 사례를 정립되지 않을 경우 노출되는 위험의 수준:** 높음 

## 구현 가이드
<a name="implementation-guidance"></a>

 워크로드에 도움이 되고 성능 요구 사항을 충족할 수 있는 가상화, 컨테이너화 및 관리 솔루션을 이해해야 합니다. 워크로드에는 여러 유형의 컴퓨팅 솔루션이 포함될 수 있는데 컴퓨팅 솔루션마다 특성이 다릅니다. 원하는 워크로드 규모와 컴퓨팅 요건에 따라 컴퓨팅 솔루션을 선택하고 구성하여 요구 사항을 충족할 수 있습니다. 클라우드 아키텍트는 인스턴스, 컨테이너 및 함수의 장점과 단점을 숙지해야 합니다. 다음 단계에서는 워크로드 특성 및 성능 요구 사항에 적합한 컴퓨팅 솔루션을 선택하는 방법에 대해 설명합니다. 


|  **유형**  |  **서버**  |  **컨테이너**  |  **함수**  | 
| --- | --- | --- | --- | 
|  AWS 서비스  |  Amazon Elastic Compute Cloud(Amazon EC2)  |  Amazon Elastic Container Service(Amazon ECS), Amazon Elastic Kubernetes Service(Amazon EKS)  |  AWS Lambda  | 
|  주요 특징  |  하드웨어 라이선스 요구 사항, 배치 옵션 및 컴퓨팅 지표를 기반으로 다양하게 선택할 수 있는 인스턴스 패밀리 전용 옵션이 있음  |  간편한 배포, 일관된 환경, EC2 인스턴스 위에서 실행, 확장성  |  짧은 런타임(15분 이하), 최대 메모리 및 CPU가 다른 서비스보다 높지 않음, 관리형 하드웨어 계층, 수백만 개의 동시 요청으로 확장 가능  | 
|  일반 사용 사례  |  리프트 앤드 시프트 마이그레이션, 단일 애플리케이션, 하이브리드 환경, 엔터프라이즈 애플리케이션  |  마이크로서비스, 하이브리드 환경  |  마이크로서비스, 이벤트 기반 애플리케이션  | 

 

 **구현 단계:** 

1.  섹션을 평가하여 컴퓨팅 솔루션이 상주해야 하는 위치를 선택합니다 [PERF05-BP06 네트워크 요구 사항에 따라 워크로드의 위치 선택](perf_select_network_location.md). 이 위치에서는 사용 가능한 컴퓨팅 솔루션 유형이 제한됩니다. 

1.  위치 및 애플리케이션 요구 사항에 맞는 컴퓨팅 솔루션 유형을 식별합니다.  

   1.  [https://aws.amazon.com/ec2/](https://aws.amazon.com/ec2/) 가상 서버 인스턴스는 폭넓은 패밀리와 크기로 제공됩니다. 이러한 인스턴스는 솔리드 스테이트 드라이브(SSD) 및 그래픽 처리 장치(GPU)를 비롯하여 다양한 기능을 제공합니다. EC2 인스턴스는 인스턴스를 선택할 때 가장 큰 유연성을 제공합니다. EC2 인스턴스를 시작할 때 지정한 인스턴스 유형에 따라 인스턴스의 하드웨어가 정해집니다. 각 인스턴스 유형은 서로 다른 컴퓨팅, 메모리 및 스토리지 기능을 제공합니다. 인스턴스 유형은 이러한 기능에 따라 인스턴스 패밀리로 그룹화됩니다. 대표적인 사용 사례로는 엔터프라이즈 애플리케이션 실행, 고성능 컴퓨팅(HPC), 기계 학습 애플리케이션 훈련 및 배포, 클라우드 네이티브 애플리케이션 실행 등이 있습니다. 

   1.  [https://aws.amazon.com/ecs/](https://aws.amazon.com/ecs/) 는 AWS Fargate를 사용하여 EC2 인스턴스 또는 서버리스 인스턴스의 클러스터에서 컨테이너를 자동으로 실행하고 관리할 수 있는 완전관리형 컨테이너 오케스트레이션 서비스입니다. Amazon ECS를 Amazon Route 53, Secrets Manager, AWS Identity and Access Management(IAM), Amazon CloudWatch 등 다른 서비스와 함께 사용할 수 있습니다. 애플리케이션이 컨테이너화되어 있고 엔지니어링 팀이 도커 컨테이너를 선호하는 경우 Amazon ECS를 사용하는 것이 좋습니다. 

   1.  [https://aws.amazon.com/eks/](https://aws.amazon.com/eks/) 는 완전관리형 Kubernetes 서비스입니다. AWS Fargate를 사용하여 EKS 클러스터를 실행하도록 선택하면 서버를 프로비저닝하고 관리할 필요가 없습니다. Amazon EKS는 Amazon CloudWatch, 오토 스케일링, AWS Identity and Access Management(IAM), Amazon Virtual Private Cloud(VPC)와 같은 AWS 서비스에 통합되어 관리하기가 편리합니다. 컨테이너를 사용할 때는 계산 지표를 활용하여 EC2 또는 AWS Fargate 인스턴스 유형을 선택하는 방식과 마찬가지로 계산 지표를 통해 워크로드에 가장 적합한 유형을 선택해야 합니다. 애플리케이션이 컨테이너화되어 있고 엔지니어링 팀이 도커 컨테이너보다 Kubernetes를 선호하는 경우 Amazon EKS를 선택하는 것이 좋습니다. 

   1.  기존 파이프라인과 함께 [https://aws.amazon.com/lambda/](https://aws.amazon.com/lambda/) 를 사용하여 허용된 런타임, 메모리 및 CPU 옵션을 지원하는 코드를 실행할 수 있습니다. 코드를 업로드하기만 하면 AWS Lambda가 해당 코드를 실행하고 확장하는 데 필요한 모든 것을 관리합니다. 다른 AWS 서비스에서 자동으로 트리거하거나 직접 호출하도록 코드를 설정할 수 있습니다. Lambda는 클라우드용으로 개발된 단기 실행 마이크로서비스 아키텍처에 권장됩니다.  

1.  새로운 컴퓨팅 솔루션을 실험한 후 마이그레이션을 계획하고 성능 지표를 검증합니다. 이는 한 번으로 끝나는 과정이 아닙니다. 다음 섹션을 참조하십시오 [PERF02-BP04 적절하게 크기를 조정하여 필요한 구성 확인](perf_select_compute_right_sizing.md). 

 **구현 계획의 작업 수준:** 워크로드가 한 컴퓨팅 솔루션에서 다른 컴퓨팅 솔루션으로 이동하는 경우 애플리케이션을 리팩터링하는 데 *보통* 수준의 노력이 필요할 수 있습니다.   

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS로 클라우드 컴퓨팅 ](https://aws.amazon.com/products/compute/?ref=wellarchitected) 
+  [EC2 인스턴스 유형 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html?ref=wellarchitected) 
+  [EC2 인스턴스에 대한 프로세서 상태 제어 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html?ref=wellarchitected) 
+  [EKS 컨테이너: EKS 워커 노드 ](https://docs.aws.amazon.com/eks/latest/userguide/worker.html?ref=wellarchitected) 
+  [Amazon ECS 컨테이너: Amazon ECS 컨테이너 인스턴스 ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html?ref=wellarchitected) 
+  [함수: Lambda 함수 구성](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html?ref=wellarchitected#function-configuration) 
+  [컨테이너 권장 가이드](https://aws.amazon.com/prescriptive-guidance/?apg-all-cards.sort-by=item.additionalFields.sortText&apg-all-cards.sort-order=desc&awsf.apg-new-filter=*all&awsf.apg-content-type-filter=*all&awsf.apg-code-filter=*all&awsf.apg-category-filter=categories%23containers&awsf.apg-rtype-filter=*all&awsf.apg-isv-filter=*all&awsf.apg-product-filter=*all&awsf.apg-env-filter=*all) 
+  [서버리스 권장 가이드](https://aws.amazon.com/prescriptive-guidance/?apg-all-cards.sort-by=item.additionalFields.sortText&apg-all-cards.sort-order=desc&awsf.apg-new-filter=*all&awsf.apg-content-type-filter=*all&awsf.apg-code-filter=*all&awsf.apg-category-filter=categories%23serverless&awsf.apg-rtype-filter=*all&awsf.apg-isv-filter=*all&awsf.apg-product-filter=*all&awsf.apg-env-filter=*all) 

 **관련 동영상:** 
+  [How to choose compute option for startups](https://aws.amazon.com/startups/start-building/how-to-choose-compute-option/) 
+  [Optimize performance and cost for your AWS compute(CMP323-R1)](https://www.youtube.com/watch?v=zt6jYJLK8sg) 
+  [Amazon EC2 foundations(CMP211-R2) ](https://www.youtube.com/watch?v=kMMybKqC2Y0&ref=wellarchitected) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system ](https://www.youtube.com/watch?v=rUY-00yFlE4&ref=wellarchitected) 
+  [Deliver high-performance ML inference with AWS Inferentia(CMP324-R1) ](https://www.youtube.com/watch?v=17r1EapAxpk&ref=wellarchitected) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2(CMP202-R1) ](https://www.youtube.com/watch?v=_dvh4P2FVbw&ref=wellarchitected) 

 **관련 예시:** 
+  [웹 애플리케이션을 컨테이너로 마이그레이션](https://application-migration-with-aws.workshop.aws/en/container-migration.html) 
+  [서버리스 Hello World 실행](https://aws.amazon.com/getting-started/hands-on/run-serverless-code/) 

# PERF02-BP02 사용 가능한 컴퓨팅 구성 옵션 파악
<a name="perf_select_compute_config_options"></a>

 각 컴퓨팅 솔루션에는 워크로드 특성을 지원하는 옵션과 구성이 있습니다. 다양한 옵션을 통해 워크로드를 보완할 수 있는 방식과 애플리케이션에 가장 적합한 구성 옵션을 알아봅니다. 이러한 옵션의 예로는 인스턴스 패밀리, 크기, 기능(GPU, I/O), 버스팅, 시간 초과, 함수 크기, 컨테이너 인스턴스 및 동시성이 있습니다. 

 **원하는 결과:** CPU, 메모리, 네트워크 처리량(throughput), GPU, IOPS, 트래픽 패턴, 데이터 액세스 패턴을 비롯한 워크로드 특성이 문서화되어 있어 워크로드 특성에 맞는 컴퓨팅 솔루션을 구성하는 데 사용됩니다. 이러한 각 지표와 워크로드별 사용자 지정 지표를 기록하여 모니터링한 후 요구 사항을 효과적으로 충족하도록 컴퓨팅 구성을 최적화하는 데 사용합니다. 

 **일반적인 안티 패턴:** 
+  온프레미스에서 사용하던 컴퓨팅 솔루션을 그대로 활용합니다. 
+  워크로드 특성에 맞게 컴퓨팅 옵션 또는 인스턴스 패밀리를 검토하지 않습니다. 
+  버스팅 기능을 보장하기 위해 컴퓨팅 규모를 과도하게 키웁니다. 
+  동일한 워크로드에 여러 컴퓨팅 관리 플랫폼을 사용합니다. 

** 이 모범 사례 수립의 이점:** 각 워크로드에 적합한 솔루션을 결정하려면 AWS 컴퓨팅 오퍼링에 대해 잘 알아야 합니다. 워크로드에 사용할 컴퓨팅 오퍼링을 선택한 후에는 이러한 컴퓨팅 오퍼링을 신속하게 실험하여 워크로드 요구 사항이 제대로 충족되는지 확인할 수 있습니다. 워크로드 특성에 맞게 최적화된 컴퓨팅 솔루션을 사용하면 성능이 향상되고 ,비용이 줄어들며, 신뢰성이 높아집니다.

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 높음 

## 구현 가이드
<a name="implementation-guidance"></a>

 워크로드에서 4주 이상 동일한 컴퓨팅 옵션을 사용하고 있으며 앞으로도 특성이 변하지 않을 것으로 예상되는 경우 [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 를 사용하여 컴퓨팅 특성에 따라 권장 사항을 알아볼 수 있습니다. 지표 부족, 지원되지 않는 인스턴스 유형 또는 예측 가능한 특성 변경으로 인해 AWS Compute Optimizer를 [사용할 수 없는 경우](https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html#requirements-ec2-instances) 로드 테스트 및 실험을 기반으로 지표를 예측해야 합니다.  

 **구현 단계:** 

1.  EC2 시작 유형을 사용하여 EC2 인스턴스 또는 컨테이너에서 실행 중입니까? 

   1.  워크로드에서 GPU를 사용하여 성능을 높일 수 있습니까? 

      1.  [가속화된 컴퓨팅](https://aws.amazon.com/ec2/instance-types/?trk=36c6da98-7b20-48fa-8225-4784bced9843&sc_channel=ps&sc_campaign=acquisition&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Compute|EC2|US|EN|Text&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types&ef_id=CjwKCAjwiuuRBhBvEiwAFXKaNNRXM5FrnFg5H8RGQ4bQKuUuK1rYWmU2iH-5H3VZPqEheB-pEm-GNBoCdD0QAvD_BwE:G:s&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types#Accelerated_Computing) 인스턴스는 기계 학습 훈련, 추론 및 고성능 컴퓨팅에 최상의 성능을 제공하는 GPU 기반 인스턴스입니다. 

   1.  워크로드에서 기계 학습 추론 애플리케이션을 실행합니까? 

      1.  [AWS Inferentia(Inf1)](https://aws.amazon.com/ec2/instance-types/inf1/) - Inf1 인스턴스는 기계 학습 추론 애플리케이션을 지원하도록 구축되었습니다. Inf1 인스턴스를 사용하는 고객은 이미지 인식, 음성 인식, 자연어 처리, 개인화 및 사기 탐지와 같은 대규모 기계 학습 추론 애플리케이션을 실행할 수 있습니다. TensorFlow, PyTorch 또는 MXNet과 같이 널리 사용되는 기계 학습 프레임워크 중 하나에 모델을 구축하고 GPU 인스턴스를 사용하여 모델을 훈련할 수 있습니다. 요구 사항을 충족하도록 기계 학습 모델을 훈련한 후에는 Inferentia 칩의 기계 학습 추론 성능을 최적화하는 컴파일러, 런타임 및 프로파일링 도구로 구성된 특수 SDK(소프트웨어 개발 키트)인 [AWS Neuron](https://aws.amazon.com/machine-learning/neuron/)을 사용하여 Inf1 인스턴스에 모델을 배포할 수 있습니다. 

   1.  워크로드를 낮은 수준의 하드웨어와 통합하여 성능을 개선합니까?  

      1.  [FPGA(Field Programmable Gate Array)](https://aws.amazon.com/ec2/instance-types/f1/) - FPGA를 사용하면 매우 까다로운 워크로드에 사용자 지정 하드웨어 가속 실행 기능을 사용함으로써 워크로드를 최적화할 수 있습니다. C, Go 등의 지원되는 일반 프로그래밍 언어나 Verilog, VHDL 등의 하드웨어 중심 언어를 활용해 알고리즘을 정의할 수 있습니다. 

   1.  최소 4주간의 지표를 보유하고 있으며 향후 트래픽 패턴과 지표가 흡사하게 유지될 것으로 예측 가능합니까? 

      1.  사용 [Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 를 활용하여 사용자의 컴퓨팅 특성에 가장 알맞은 컴퓨팅 구성에 대한 기계 학습 권장 사항을 알아봅니다. 

   1.  CPU 지표로 인해 워크로드 성능이 제한됩니까?  

      1.  [컴퓨팅 최적화](https://aws.amazon.com/ec2/instance-types/?trk=36c6da98-7b20-48fa-8225-4784bced9843&sc_channel=ps&sc_campaign=acquisition&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Compute|EC2|US|EN|Text&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types&ef_id=CjwKCAjwiuuRBhBvEiwAFXKaNNRXM5FrnFg5H8RGQ4bQKuUuK1rYWmU2iH-5H3VZPqEheB-pEm-GNBoCdD0QAvD_BwE:G:s&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types#Compute_Optimized) 인스턴스는 고성능 프로세서가 필요한 워크로드에 이상적입니다.  

   1.  메모리 지표로 인해 워크로드 성능이 제한됩니까?  

      1.  [메모리 최적화](https://aws.amazon.com/ec2/instance-types/?trk=36c6da98-7b20-48fa-8225-4784bced9843&sc_channel=ps&sc_campaign=acquisition&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Compute|EC2|US|EN|Text&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types&ef_id=CjwKCAjwiuuRBhBvEiwAFXKaNNRXM5FrnFg5H8RGQ4bQKuUuK1rYWmU2iH-5H3VZPqEheB-pEm-GNBoCdD0QAvD_BwE:G:s&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types#Memory_Optimized) 인스턴스는 상당한 메모리를 제공하여 메모리를 많이 사용하는 워크로드를 지원합니다. 

   1.  IOPS로 인해 워크로드 성능이 제한됩니까? 

      1.  [스토리지 최적화](https://aws.amazon.com/ec2/instance-types/?trk=36c6da98-7b20-48fa-8225-4784bced9843&sc_channel=ps&sc_campaign=acquisition&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Compute|EC2|US|EN|Text&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types&ef_id=CjwKCAjwiuuRBhBvEiwAFXKaNNRXM5FrnFg5H8RGQ4bQKuUuK1rYWmU2iH-5H3VZPqEheB-pEm-GNBoCdD0QAvD_BwE:G:s&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types#Storage_Optimized) 인스턴스는 로컬 스토리지에 대한 높은 순차 읽기 및 쓰기 액세스(IOPS)가 필요한 워크로드에 적합하도록 설계되었습니다. 

   1.  워크로드 특성에 모든 지표에 걸친 균형 잡힌 요구 사항이 반영되었습니까? 

      1.  트래픽 급증을 처리하려면 워크로드 CPU를 버스트해야 합니까? 

         1.  [버스트 가능 성능](https://aws.amazon.com/ec2/instance-types/?trk=36c6da98-7b20-48fa-8225-4784bced9843&sc_channel=ps&sc_campaign=acquisition&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Compute|EC2|US|EN|Text&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types&ef_id=CjwKCAjwiuuRBhBvEiwAFXKaNNRXM5FrnFg5H8RGQ4bQKuUuK1rYWmU2iH-5H3VZPqEheB-pEm-GNBoCdD0QAvD_BwE:G:s&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types#Instance_Features) 인스턴스는 컴퓨팅 최적화 인스턴스와 유사하지만, 컴퓨팅에 최적화된 인스턴스에서 식별된 고정 CPU 기준을 초과하여 버스트할 수 있습니다. 

      1.  [범용](https://aws.amazon.com/ec2/instance-types/?trk=36c6da98-7b20-48fa-8225-4784bced9843&sc_channel=ps&sc_campaign=acquisition&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Compute|EC2|US|EN|Text&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types&ef_id=CjwKCAjwiuuRBhBvEiwAFXKaNNRXM5FrnFg5H8RGQ4bQKuUuK1rYWmU2iH-5H3VZPqEheB-pEm-GNBoCdD0QAvD_BwE:G:s&s_kwcid=AL!4422!3!536392622533!e!!g!!ec2%20instance%20types#General_Purpose) 인스턴스는 모든 특성을 균형 있게 제공하여 다양한 워크로드를 지원합니다. 

   1.  컴퓨팅 인스턴스가 Linux에서 실행 중이고 네트워크 인터페이스 카드의 네트워크 처리량(throughput)으로 인해 제한을 받습니까? 

      1.  검토 ['성능 질문 5, 모범 사례 2: 사용 가능한 네트워킹 기능 평가'를 검토하여](https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/network-architecture-selection.html) 성능 요구 사항을 충족하는 올바른 인스턴스 유형 및 패밀리를 찾아봅니다. 

   1.  워크로드에 1년 동안 사용할 수 있는 특정 가용 영역의 일관되고 예측 가능한 인스턴스가 필요합니까?  

      1.  [예약 인스턴스](https://aws.amazon.com/ec2/pricing/reserved-instances/) 는 특정 가용 영역에서 용량 예약을 확정합니다. 예약 인스턴스는 특정 가용 영역에서 컴퓨팅 기능이 필요한 경우에 이상적입니다.  

   1.  워크로드에 전용 하드웨어가 필요한 라이선스가 있습니까? 

      1.  [전용 호스트](https://aws.amazon.com/ec2/dedicated-hosts/) 는 기존 소프트웨어 라이선스를 지원하고 규정 준수 요구 사항을 충족할 수 있도록 합니다. 

   1.  컴퓨팅 솔루션을 버스트해야 하고 동기식 처리가 필요합니까? 

      1.  [온디맨드 인스턴스](https://aws.amazon.com/ec2/pricing/on-demand/) 를 사용하면 장기 약정 없이 시간 또는 초 단위로 컴퓨팅 용량을 이용할 수 있습니다. 이러한 인스턴스는 성능 기준 요구를 넘어서 버스팅하는 데 도움이 됩니다. 

   1.  스테이스리스, 내결함성 및 비동기식인 컴퓨팅 솔루션을 사용합니까?  

      1.  [스팟 인스턴스](https://aws.amazon.com/ec2/spot/) 를 사용하면 내결함성을 갖춘 스테이스리스 워크로드를 위해 미사용 인스턴스 용량을 활용할 수 있습니다.  

1.  컨테이너를 [Fargate에서 실행하고 있습니까](https://aws.amazon.com/fargate/)? 

   1.  메모리 또는 CPU로 인해 작업 성능이 제한됩니까? 

      1.  SAP 환경의 보안 관련 작업에 대한 지침은 [태스크 크기](https://docs.aws.amazon.com/AmazonECS/latest/bestpracticesguide/capacity-tasksize.html) 를 사용하여 메모리 또는 CPU를 조정할 수 있습니다. 

   1.  성능이 트래픽 패턴 버스트의 영향을 받고 있습니까? 

      1.  SAP 환경의 보안 관련 작업에 대한 지침은 [Auto Scaling](https://docs.aws.amazon.com/AmazonECS/latest/bestpracticesguide/capacity-autoscaling.html) 구성을 사용하여 트래픽 패턴을 일치시킬 수 있습니다. 

1.  컴퓨팅 솔루션이 [Lambda에 있습니까](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-features.html)? 

   1.  최소 4주간의 지표를 보유하고 있으며 향후 트래픽 패턴과 지표가 흡사하게 유지될 것으로 예측 가능합니까? 

      1.  사용 [Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 를 활용하여 사용자의 컴퓨팅 특성에 가장 알맞은 컴퓨팅 구성에 대한 기계 학습 권장 사항을 알아봅니다. 

   1.  AWS Compute Optimizer를 사용하는 데 필요한 지표가 충분하지 않습니까? 

      1.  Compute Optimizer를 사용하는 데 활용할 지표가 없는 경우 [AWS Lambda 파워 튜닝](https://docs.aws.amazon.com/lambda/latest/operatorguide/profile-functions.html) 을 통해 최적의 구성을 선택할 수 있습니다. 

   1.  메모리 또는 CPU로 인해 함수 성능이 제한됩니까? 

      1.  성능 요구 지표를 충족하도록 [Lambda 메모리](https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-memory-console) 를 구성합니다. 

   1.  함수 실행 시 시간이 초과되었습니까? 

      1.  시간 초과 설정을 [변경합니다.](https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html) 

   1.  함수 성능이 활동 및 동시성 버스트로 인해 제한됩니까?  

      1.  성능 요구 사항을 충족하도록 [동시성 설정](https://docs.aws.amazon.com/lambda/latest/dg/configuration-concurrency.html) 을 구성합니다. 

   1.  함수가 비동기적으로 실행되며 재시도 시 실패합니까? 

      1.  비동기 구성 설정에서 이벤트의 최대 사용 기간과 [최대 재시도 제한을](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html) 구성합니다. 

## 구현 계획의 작업 수준: 
<a name="level-of-effort-for-the-implementation-plan-to-establish-this-best-practice-you-must-be-aware-of-your-current-compute-characteristics-and-metrics.-gathering-those-metrics-establishing-a-baseline-and-then-using-those-metrics-to-identify-the-ideal-compute-option-is-a-low-to-moderate-level-of-effort.-this-is-best-validated-by-load-tests-and-experimentation."></a>

이 모범 사례를 적용하려면 현재 컴퓨팅 특성과 지표를 알고 있어야 합니다. 이러한 지표를 수집하고 기준선을 설정한 다음 해당 지표를 사용하여 이상적인 컴퓨팅 옵션을 식별하는 작업은 *낮음* 수준부터 *보통* 수준의 노력을 투자하여 수행됩니다. 이는 로드 테스트 및 실험을 통해 가장 효과적으로 검증됩니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS 클라우드 컴퓨팅 ](https://aws.amazon.com/products/compute/?ref=wellarchitected) 
+  [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 
+  [EC2 인스턴스 유형 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html?ref=wellarchitected) 
+  [EC2 인스턴스에 대한 프로세서 상태 제어 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html?ref=wellarchitected) 
+  [EKS 컨테이너: EKS 워커 노드 ](https://docs.aws.amazon.com/eks/latest/userguide/worker.html?ref=wellarchitected) 
+  [Amazon ECS 컨테이너: Amazon ECS 컨테이너 인스턴스 ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html?ref=wellarchitected) 
+  [함수: Lambda 함수 구성](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html?ref=wellarchitected#function-configuration) 

 **관련 동영상:** 
+  [Amazon EC2 foundations(CMP211-R2) ](https://www.youtube.com/watch?v=kMMybKqC2Y0&ref=wellarchitected) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system ](https://www.youtube.com/watch?v=rUY-00yFlE4&ref=wellarchitected) 
+  [AWS 컴퓨팅의 성능 및 비용 최적화(CMP323-R1) ](https://www.youtube.com/watch?v=zt6jYJLK8sg&ref=wellarchitected) 

 **관련 예시:** 
+  [Compute Optimizer 및 메모리 사용률을 활성화하여 적절한 크기 지정](https://www.wellarchitectedlabs.com/cost/200_labs/200_aws_resource_optimization/5_ec2_computer_opt/) 
+  [AWS Compute Optimizer 데모 코드](https://github.com/awslabs/ec2-spot-labs/tree/master/aws-compute-optimizer) 

# PERF02-BP03 컴퓨팅 관련 지표 수집
<a name="perf_select_compute_collect_metrics"></a>

계산 리소스의 성능을 이해하려면 다양한 시스템의 활용률을 기록하고 추적해야 합니다. 이 데이터를 사용하면 리소스 요구 사항을 보다 정확하게 파악할 수 있습니다.  

 워크로드를 통해 지표, 로그 및 이벤트와 같은 대량의 데이터가 생성될 수 있습니다. 기존 스토리지, 모니터링 및 관찰성 서비스가 이렇게 만들어진 데이터를 관리할 수 있는지를 결정해야 합니다. 리소스 활용률을 반영하는 지표를 식별하고, 단일 플랫폼에서 수집 및 집계되고 상관 관계가 지정될 수 있는 지표를 파악하십시오. 이러한 지표는 모든 워크로드 리소스, 애플리케이션 및 서비스를 반영하여 시스템 전체를 한눈에 살펴보고 성능 향상 기회 및 문제를 신속하게 식별할 수 있도록 지원합니다.

 **원하는 결과:** 컴퓨팅 관련 리소스에 대한 모든 지표는 보존 기능이 구현된 단일 플랫폼에서 식별, 수집 및 집계되고 상관 관계가 지정되어 비용 및 운영 목표를 지원합니다. 

 **일반적인 안티 패턴:** 
+  지표에 대해 수동 로그 파일 검색만 사용합니다.  
+  지표를 내부 도구에만 게시합니다. 
+  선택한 모니터링 소프트웨어에서 기록한 기본 지표만 사용합니다. 
+  문제가 발생한 경우에만 지표를 검토합니다. 

 

 **이 모범 사례 정립의 이점:** 워크로드의 성능을 모니터링하려면 일정 기간에 걸쳐 여러 성능 지표를 기록해야 합니다. 이러한 지표를 바탕으로 성능 이상을 감지할 수 있습니다. 비즈니스 지표를 기준으로 성능을 측정하여 워크로드 요구 사항을 충족하는지 확인할 수도 있습니다. 

 **이 모범 사례를 정립되지 않을 경우 노출되는 위험의 수준:** 높음 

## 구현 가이드
<a name="implementation-guidance"></a>

 컴퓨팅 관련 지표를 식별, 수집 및 집계하고 상관 관계를 지정하십시오. Amazon CloudWatch와 같은 서비스를 사용하면 구현을 보다 빠르고 편리하게 유지 관리할 수 있습니다. 기록된 기본 지표 외에도 워크로드 내에서 추가 시스템 수준 지표를 식별하고 추적해야 합니다. CPU 활용률, 메모리, 디스크 I/O, 네트워크 인바운드 및 아웃바운드 지표와 같은 데이터를 기록하면 활용률 수준이나 병목 현상을 파악할 수 있습니다. 이와 같은 데이터는 워크로드의 성능과 컴퓨팅 솔루션의 활용 방법을 이해하는 데 매우 중요합니다. 데이터 기반 접근 방식의 일환으로 이 지표를 사용하면 워크로드 리소스를 능동적으로 튜닝하고 최적화할 수 있습니다.  

 **구현 단계:** 

1.  어떤 컴퓨팅 솔루션 지표를 추적해야 합니까? 

   1.  [EC2 기본 지표](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html) 

   1.  [Amazon ECS 기본 지표](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch-metrics.html) 

   1.  [EKS 기본 지표](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/kubernetes-eks-metrics.html) 

   1.  [Lambda 기본 지표](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions-access-metrics.html) 

   1.  [EC2 메모리 및 디스크 지표](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html) 

1.  현재 승인되어 사용 중인 로깅 및 모니터링 솔루션이 있습니까? 

   1.  [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 

   1.  [AWS Distro for OpenTelemetry](https://aws.amazon.com/otel/) 

   1.  [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/grafana/latest/userguide/prometheus-data-source.html) 

1.  보안 및 운영 목표에 맞게 데이터 보존 정책을 식별하고 구성했습니까? 

   1.  [CloudWatch 지표용 기본 데이터 보존](https://aws.amazon.com/cloudwatch/faqs/#AWS_resource_.26_custom_metrics_monitoring) 

   1.  [CloudWatch Logs용 기본 데이터 보존](https://aws.amazon.com/cloudwatch/faqs/#Log_management) 

1.  지표 및 로그 집계 에이전트를 어떻게 배포합니까? 

   1.  [AWS Systems Manager 자동화](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html?ref=wellarchitected) 

   1.  [OpenTelemetry Collector](https://aws-otel.github.io/docs/getting-started/collector) 

 **구현 계획의 작업 수준: **보통 수준의 *노력을 들여* 모든 컴퓨팅 리소스에서 지표를 식별, 추적, 수집 및 집계하고 상관 관계를 지정할 수 있습니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [Amazon CloudWatch 설명서](https://docs.aws.amazon.com/cloudwatch/index.html?ref=wellarchitected) 
+  [CloudWatch 에이전트를 사용하여 Amazon EC2 인스턴스 및 온프레미스 서버에서 지표 및 로그 수집](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html?ref=wellarchitected) 
+  [AWS Lambda의 Amazon CloudWatch Logs 액세스](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions-logs.html?ref=wellarchitected) 
+  [컨테이너 인스턴스와 CloudWatch Logs 사용](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_cloudwatch_logs.html?ref=wellarchitected) 
+  [사용자 지정 지표 게시](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html?ref=wellarchitected) 
+  [AWS Answers: 중앙 집중식 로깅](https://aws.amazon.com/answers/logging/centralized-logging/?ref=wellarchitected) 
+  [CloudWatch 지표를 게시하는 AWS 서비스](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html?ref=wellarchitected) 
+  [AWS Fargate에서의 Amazon EKS 모니터링](https://aws.amazon.com/blogs/containers/monitoring-amazon-eks-on-aws-fargate-using-prometheus-and-grafana/) 

 

 **관련 동영상:** 
+  [AWS의 애플리케이션 성능 관리](https://www.youtube.com/watch?v=5T4stR-HFas&ref=wellarchitected) 
+  [모니터링 플랜 세우기](https://www.youtube.com/watch?v=OMmiGETJpfU&ref=wellarchitected) 

 

 **관련 예시:** 
+  [레벨 100: CloudWatch 대시보드를 통한 모니터링](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_with_cloudwatch_dashboards/) 
+  [레벨 100: CloudWatch 대시보드를 통한 Windows EC2 인스턴스 모니터링](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_windows_ec2_cloudwatch/) 
+  [레벨 100: CloudWatch 대시보드를 통한 Amazon Linux EC2 인스턴스 모니터링](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_linux_ec2_cloudwatch/) 

# PERF02-BP04 적절하게 크기를 조정하여 필요한 구성 확인
<a name="perf_select_compute_right_sizing"></a>

 워크로드의 다양한 성능 특성, 그리고 이러한 특성과 메모리/네트워크/CPU 사용량 간의 관계를 분석합니다. 이 데이터를 사용하면 워크로드 프로필에 가장 적합한 리소스를 선택할 수 있습니다. 예를 들어 데이터베이스와 같은 메모리 집약적 워크로드는 r-패밀리 인스턴스로 처리하는 것이 가장 좋습니다. 하지만 버스트 워크로드의 경우 탄력적인 컨테이너 시스템을 사용하는 것이 더 유리할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  모든 워크로드에 사용할 수 있는 가장 큰 인스턴스를 선택합니다. 
+  관리 용이성을 위해 모든 인스턴스 유형을 한 가지 유형으로 표준화합니다. 

 **이 모범 사례 정립의 이점:** AWS 컴퓨팅 오퍼링에 익숙해지면 다양한 워크로드에 적합한 솔루션을 결정할 수 있습니다. 워크로드에 사용할 다양한 컴퓨팅 오퍼링을 선택한 후에는 이러한 컴퓨팅 오퍼링을 신속하게 실험하여 워크로드 요구 사항을 충족하는 오퍼링을 결정할 수 있습니다. 

 **이 모범 사례를 정립되지 않을 경우 노출되는 위험의 수준:** 보통 

## 구현 가이드
<a name="implementation-guidance"></a>

 적절한 크기 조정을 통해 워크로드 구성 수정: 성능과 전반적인 효율성을 모두 최적화하려면 워크로드에 필요한 리소스를 결정해야 합니다. CPU보다 메모리가 많이 필요한 시스템의 경우에는 메모리 최적화 인스턴스를 선택하고, 메모리가 많이 사용되지 않는 데이터 처리를 수행하는 구성 요소의 경우에는 컴퓨팅 최적화 인스턴스를 선택합니다. 올바른 크기 조정을 수행하면 필요한 리소스만 사용하면서 워크로드의 성능을 최대한 높일 수 있습니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/)  
+  [AWS로 클라우드 컴퓨팅](https://aws.amazon.com/products/compute/) 
+  [EC2 인스턴스 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) 
+  [ECS 컨테이너: Amazon ECS 컨테이너 인스턴스](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html) 
+  [EKS 컨테이너: EKS 워커 노드](https://docs.aws.amazon.com/eks/latest/userguide/worker.html) 
+  [함수: Lambda 함수 구성](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html#function-configuration) 
+  [EC2 인스턴스에 대한 프로세서 상태 제어](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html) 

 **관련 동영상:** 
+  [Amazon EC2 foundations(CMP211-R2)](https://www.youtube.com/watch?v=kMMybKqC2Y0) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2(CMP202-R1)](https://www.youtube.com/watch?v=_dvh4P2FVbw) 
+  [Deliver high performance ML inference with AWS Inferentia(CMP324-R1)](https://www.youtube.com/watch?v=17r1EapAxpk) 
+  [Optimize performance and cost for your AWS compute(CMP323-R1)](https://www.youtube.com/watch?v=zt6jYJLK8sg) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system](https://www.youtube.com/watch?v=rUY-00yFlE4) 
+  [How to choose compute option for startups](https://aws.amazon.com/startups/start-building/how-to-choose-compute-option/) 
+  [Optimize performance and cost for your AWS compute(CMP323-R1)](https://www.youtube.com/watch?v=zt6jYJLK8sg) 

 **관련 예시:** 
+  [Compute Optimizer 및 메모리 활용 지원을 통해 적절한 규모 결정](https://www.wellarchitectedlabs.com/cost/200_labs/200_aws_resource_optimization/5_ec2_computer_opt/) 
+  [AWS Compute Optimizer 데모 코드](https://github.com/awslabs/ec2-spot-labs/tree/master/aws-compute-optimizer) 

# PERF02-BP05 사용 가능한 리소스 탄력성 사용
<a name="perf_select_compute_elasticity"></a>

 클라우드는 수요 변화에 맞춰 다양한 메커니즘을 통해 리소스를 동적으로 확장 또는 축소할 수 있는 유연성을 제공합니다. 컴퓨팅 관련 지표를 함께 활용하는 경우 워크로드가 변화에 자동으로 대응하여 목표를 달성하는 데 가장 적합한 리소스 세트를 활용할 수 있습니다. 

 수요에 가장 적합한 리소스를 공급하면 워크로드의 비용을 최대한 낮출 수 있습니다. 하지만 그와 동시에 프로비저닝 시간과 개별 리소스 장애를 고려해 리소스를 충분히 공급할 수 있는 계획도 마련해야 합니다. 수요는 고정되어 있을 수도 있고 변경될 수도 있으므로, 관리상의 부담을 방지하고 관리 작업에서 비용이 너무 많이 발생하지 않도록 하려면 적절한 지표와 자동화 기능이 필요합니다. 

 AWS에서는 다양한 방식을 사용하여 수요와 공급을 일치시킬 수 있습니다. 비용 최적화 원칙 백서에서는 다음과 같은 접근 방식을 사용하여 비용을 절감하는 방법을 설명합니다. 
+  수요 기반 방식 
+  버퍼 기반 방식 
+  시간 기반 방식 

 워크로드 배포에서 확장 및 축소 이벤트를 모두 처리할 수 있는지 확인해야 합니다. 축소 이벤트에 대한 테스트 시나리오를 생성하여 워크로드가 예상대로 작동하는지 확인하십시오. 

 **일반적인 안티 패턴:** 
+  용량을 수동으로 늘려 경보에 대응합니다. 
+  조정 이벤트 후에 다시 축소하는 대신 증가된 용량을 그대로 둡니다. 

 **이 모범 사례 정립의 이점:** 워크로드 탄력성을 구성하고 테스트하면 비용을 절감하고, 성능 벤치마크를 유지하며, 트래픽 변화에 따른 신뢰성을 높일 수 있습니다. 대부분의 비 프로덕션 인스턴스는 사용되지 않을 때 중지되어야 합니다. 미사용 인스턴스를 수동으로 종료할 수도 있지만 대규모 환경에서는 실용적이지 않습니다. 볼륨 기반 탄력성을 활용할 수도 있습니다. 탄력성을 활용하면 수요가 급증할 경우 컴퓨팅 인스턴스 수를 자동으로 늘리고 수요가 감소할 경우 용량을 줄임으로써 성능과 비용을 최적화할 수 있습니다. 

 **이 모범 사례를 정립되지 않을 경우 노출되는 위험의 수준:** 보통 

## 구현 가이드
<a name="implementation-guidance"></a>

 탄력성 활용: 탄력성은 보유한 리소스의 공급을 해당 리소스의 수요에 맞춥니다. 인스턴스, 컨테이너 및 함수를 자동 조정과 함께 사용하거나 서비스의 기능으로 사용하는 경우 탄력성 개선을 위한 메커니즘이 제공됩니다. 아키텍처에서 탄력성을 사용하여 모든 사용 규모에 대한 성능 요구 사항을 충족하기에 충분한 용량이 있는지 확인합니다. 탄력적 리소스의 확장 또는 축소에 대한 지표가 배포 중인 워크로드 유형에 대해 검증되었는지 확인합니다. 동영상 트랜스코딩 애플리케이션을 배포하는 경우 100%의 CPU 활용률이 예상되므로, 기본 지표로 사용해서는 안 됩니다. 또는 대기 중인 트랜스코딩 작업의 대기열 깊이를 기준으로 측정하여 인스턴스 유형을 조정할 수 있습니다. 워크로드 배포에서 확장 및 축소 이벤트를 모두 처리할 수 있는지 확인합니다. 워크로드 구성 요소를 안전하게 축소하는 것은 수요에 따라 리소스를 확장하는 것만큼 중요합니다. 축소 이벤트에 대한 테스트 시나리오를 생성하여 워크로드가 예상대로 작동하는지 확인하십시오. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS로 클라우드 컴퓨팅](https://aws.amazon.com/products/compute/) 
+  [EC2 인스턴스 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) 
+  [ECS 컨테이너: Amazon ECS 컨테이너 인스턴스](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html) 
+  [EKS 컨테이너: EKS 워커 노드](https://docs.aws.amazon.com/eks/latest/userguide/worker.html) 
+  [함수: Lambda 함수 구성](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html#function-configuration) 
+  [EC2 인스턴스에 대한 프로세서 상태 제어](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html) 

 **관련 동영상:** 
+  [Amazon EC2 foundations(CMP211-R2)](https://www.youtube.com/watch?v=kMMybKqC2Y0) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2(CMP202-R1)](https://www.youtube.com/watch?v=_dvh4P2FVbw) 
+  [Deliver high performance ML inference with AWS Inferentia(CMP324-R1)](https://www.youtube.com/watch?v=17r1EapAxpk) 
+  [Optimize performance and cost for your AWS compute(CMP323-R1)](https://www.youtube.com/watch?v=zt6jYJLK8sg) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system](https://www.youtube.com/watch?v=rUY-00yFlE4) 

 **관련 예시:** 
+  [Amazon EC2 Auto Scaling 그룹 예시](https://github.com/aws-samples/amazon-ec2-auto-scaling-group-examples) 
+  [Amazon EFS 튜토리얼](https://github.com/aws-samples/amazon-efs-tutorial) 

# PERF02-BP06 지표를 기준으로 컴퓨팅 요구 사항 재평가
<a name="perf_select_compute_use_metrics"></a>

 시스템 수준 지표를 사용하여 시간별 워크로드 동작 및 요구 사항을 파악합니다. 사용 가능한 리소스를 이러한 요구 사항과 비교해 워크로드 요구를 평가한 다음, 워크로드 프로필에 가장 적합하도록 컴퓨팅 환경을 변경합니다. 예를 들어 시스템을 계속 사용하다 보면 초기 예상보다 메모리가 더 많이 사용될 수 있습니다. 이 경우 다른 인스턴스 패밀리나 크기로 전환하면 성능과 효율성이 모두 개선될 수 있습니다. 

 **일반적인 안티 패턴:** 
+  시스템 수준 지표만 모니터링하여 워크로드에 대한 인스턴스를 얻습니다. 
+  피크 워크로드 요구 사항에 따라 컴퓨팅 요구 사항을 설계합니다. 
+  워크로드 특성에 맞는 새로운 컴퓨팅 솔루션으로 전환하는 경우 확장 또는 성능 요구 사항에 부응하도록 컴퓨팅 솔루션 규모를 키울 수 있습니다. 

 **이 모범 사례 수립의 이점:** 성능 및 리소스 사용률을 최적화하려면 통합된 운영 보기, 세분화된 실시간 데이터 및 기간별 참조가 필요합니다. 자동 대시보드를 생성하여 이 데이터를 시각화하고 지표 산술을 수행하여 운영 및 사용률에 관한 인사이트를 도출할 수 있습니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 낮음 

## 구현 가이드
<a name="implementation-guidance"></a>

 데이터 기반 접근 방식을 사용하여 리소스 최적화: 성능 및 효율성을 극대화하려면 워크로드에서 시간대별로 수집된 데이터를 사용하여 리소스를 튜닝하고 최적화합니다. 워크로드의 현재 리소스 사용량 추세를 파악하고, 워크로드의 요구에 더 적합하게 리소스 사용 방식을 변경할 수 있는 영역을 확인합니다. 리소스가 너무 많이 커밋되면 시스템 성능이 저하되고, 너무 적게 커밋되면 리소스 사용 효율성이 낮아지고 비용은 높아집니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS로 클라우드 컴퓨팅 ](https://aws.amazon.com/products/compute/?ref=wellarchitected) 
+  [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/) 
+  [AWS로 클라우드 컴퓨팅](https://aws.amazon.com/products/compute/) 
+  [EC2 인스턴스 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) 
+  [ECS 컨테이너: Amazon ECS 컨테이너 인스턴스](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html) 
+  [EKS 컨테이너: EKS 워커 노드](https://docs.aws.amazon.com/eks/latest/userguide/worker.html) 
+  [함수: Lambda 함수 구성](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html#function-configuration) 
+  [EC2 인스턴스에 대한 프로세서 상태 제어](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html) 

 **관련 동영상:** 
+  [Amazon EC2 foundations(CMP211-R2)](https://www.youtube.com/watch?v=kMMybKqC2Y0) 
+  [Better, faster, cheaper compute: Cost-optimizing Amazon EC2(CMP202-R1)](https://www.youtube.com/watch?v=_dvh4P2FVbw) 
+  [Deliver high performance ML inference with AWS Inferentia(CMP324-R1)](https://www.youtube.com/watch?v=17r1EapAxpk) 
+  [Optimize performance and cost for your AWS compute(CMP323-R1)](https://www.youtube.com/watch?v=zt6jYJLK8sg) 
+  [Powering next-gen Amazon EC2: Deep dive into the Nitro system](https://www.youtube.com/watch?v=rUY-00yFlE4) 

 **관련 예시:** 
+  [Compute Optimizer 및 메모리 활용 지원을 통해 적절한 규모 결정](https://www.wellarchitectedlabs.com/cost/200_labs/200_aws_resource_optimization/5_ec2_computer_opt/) 
+  [AWS Compute Optimizer 데모 코드](https://github.com/awslabs/ec2-spot-labs/tree/master/aws-compute-optimizer) 

# PERF 3  스토리지 솔루션을 어떻게 선택합니까?
<a name="w2aac19c11b5b9"></a>

 시스템에 대한 최적의 스토리지 솔루션은 액세스 방식 종류(블록, 파일, 객체), 액세스 패턴(랜덤 또는 순차), 필요한 처리량, 액세스 빈도(온라인, 오프라인, 보관), 업데이트 빈도(WORM, 동적) 및 가용성과 내구성 제약 사항에 따라 다릅니다. 설계가 잘된 시스템은 여러 스토리지 솔루션을 사용하며, 다양한 기능을 통해 성능을 개선하고 리소스를 효율적으로 사용할 수 있도록 지원합니다. 

**Topics**
+ [

# PERF03-BP01 스토리지 특성 및 요구 사항 파악
](perf_right_storage_solution_understand_char.md)
+ [

# PERF03-BP02 사용 가능한 구성 옵션 평가
](perf_right_storage_solution_evaluated_options.md)
+ [

# PERF03-BP03 액세스 패턴과 지표를 기준으로 결정
](perf_right_storage_solution_optimize_patterns.md)

# PERF03-BP01 스토리지 특성 및 요구 사항 파악
<a name="perf_right_storage_solution_understand_char"></a>

 워크로드 스토리지의 요구 사항 파악하여 문서화하고 각 위치의 스토리지 특성을 정의합니다. 스토리지 특성 예시에는 공유 가능한 액세스, 파일 크기, 성장률, IOPS, 지연 시간, 액세스 패턴 및 데이터 지속성 등이 있습니다. 이러한 특성을 사용하여 스토리지의 요구 사항에 대해 블록, 파일, 객체 또는 인스턴스 스토리지 서비스가 가장 효율적인 솔루션인지 평가합니다. 

 **원하는 결과:** 스토리지 요구 사항을 파악하여 스토리지의 요구 사항별로 문서화하고 사용 가능한 스토리지 솔루션을 평가합니다. 주요 스토리지 특성을 바탕으로 팀에서는 선택한 스토리지 서비스가 워크로드 성능에 어떻게 도움이 될지 이해합니다. 주요 기준에는 데이터 액세스 패턴, 성장률, 스케일링 요구 사항 및 지연 시간 요구 사항이 포함됩니다. 

 **일반적인 안티 패턴:** 
+  모든 워크로드에 Amazon Elastic Block Store(Amazon EBS)와 같은 하나의 스토리지 유형만 사용합니다. 
+  모든 워크로드의 스토리지 액세스 성능 요구 사항이 비슷하다고 가정합니다. 

 **이 모범 사례 확립의 이점:** 파악한 특성과 필요한 특성을 바탕으로 스토리지 솔루션을 선택하면 워크로드 성능을 개선하고 비용을 절감하며 워크로드 유지 관리를 위한 운영 작업을 줄일 수 있습니다. 워크로드 성능은 스토리지 서비스의 솔루션, 구성 및 위치에 따라 향상됩니다. 

 **이 모범 사례가 확립되지 않을 경우 노출되는 위험 수준:** 높음 

## 구현 가이드
<a name="implementation-guidance"></a>

 벤치마킹 또는 로드 테스트를 사용하여 워크로드의 가장 중요한 스토리지 성능 지표를 식별하고 데이터 기반 접근 방식의 일부로 개선 사항을 구현합니다. 이 데이터를 사용하여 스토리지 솔루션이 제한되는 위치를 식별하고, 솔루션을 개선할 수 있는 구성 옵션을 검사합니다. 워크로드의 예상 증가율을 확인하고 해당 속도에 맞는 스토리지 솔루션을 선택합니다. AWS 스토리지 서비스를 조사하여 다양한 워크로드에 적합한 스토리지 솔루션을 결정하세요. AWS의 프로비저닝 스토리지 솔루션은 스토리지 서비스를 테스트하고 이것이 워크로드의 요구 사항에 적합한지 확인할 수 있는 기회를 늘립니다. 


| AWS 서비스 | 주요 특징 | 일반 사용 사례 | 
| --- | --- | --- | 
| Amazon S3 |  99.999999999% 내구성, 무제한 성장, 어디에서나 액세스 가능, 액세스 및 복원력에 기반한 여러 가지 비용 모델  |  클라우드 네이티브 애플리케이션 데이터, 데이터 아카이빙 및 백업, 분석, 데이터 레이크, 정적 웹 사이트 호스팅, IoT 데이터   | 
| Amazon Glacier |  몇 초에서 몇 시간에 이르는 지연 시간, 무제한 성장, 최저 가격, 장기 스토리지  |  데이터 아카이빙, 미디어 아카이브, 장기 백업 보존  | 
| Amazon EBS | 스토리지 크기에 관리 및 모니터링, 낮은 지연 시간, 지속적인 스토리지, 99.8%\$199.9% 내구성이 필요하며, 대부분의 볼륨 유형은 하나의 EC2 인스턴스에서만 액세스 가능 |  COTS 애플리케이션, I/O 집약적 애플리케이션, 관계형 및 NoSQL 데이터베이스, 백업 및 복구  | 
| EC2 인스턴스 스토어 |  미리 정의된 스토리지 크기, 가장 짧은 지연 시간, 지속성 없음, EC2 인스턴스에서만 액세스 가능  |  COTS 애플리케이션, I/O 집약적 애플리케이션, 인 메모리 데이터 저장소  | 
| Amazon EFS |  99.999999999% 내구성, 무제한 성장, 여러 컴퓨팅 서비스에서 액세스 가능  |  여러 컴퓨팅 서비스 간에 현대화된 애플리케이션 파일 공유, 콘텐츠 관리 시스템 스케일링을 위한 파일 스토리지  | 
| Amazon FSx |  네 가지 파일 시스템(NetApp, OpenZFS, Windows File Server 및 Amazon FSx for Lustre) 지원, 여러 파일별 시스템에 사용할 수 있는 스토리지, 여러 컴퓨팅 서비스에서 액세스 가능  |  클라우드 네이티브 워크로드, 프라이빗 클라우드 버스팅, 특정 파일 시스템이 필요한 마이그레이션된 워크로드, VMC, ERP 시스템, 온프레미스 파일 스토리지 및 백업   | 
| Snow 제품군 |  휴대용 디바이스, 256비트 암호화, NFS 엔드포인트, 온보드 컴퓨팅, TB 스토리지  |  클라우드로 데이터 마이그레이션, 스토리지, 극한의 온프레미스 조건에서 컴퓨팅, 재해 복구, 원격 데이터 수집  | 
| AWS Storage Gateway |  클라우드 지원 스토리지에 대해 지연 시간이 짧은 온프레미스 액세스 제공, 완전 관리형 온프레미스 캐시   |  클라우드 마이그레이션에 대한 온프레미스 데이터, 온프레미스 소스에서 클라우드 데이터 레이크 채우기, 현대화된 파일 공유  | 

 **구현 단계:** 

1. 벤치 마킹 또는 로드 테스트를 사용하여 스토리지 필요의 주요 특성을 수집합니다. 주요 특징은 다음과 같습니다. 

   1. 공유 가능(구성 요소가 이 스토리지에 액세스할 수 있음) 

   1. 성장률 

   1. 처리량 

   1. 지연 시간 

   1. I/O 크기 

   1. 내구성 

   1. 액세스 패턴(일기와 쓰기, 빈도, 급증하는지 또는 일관적인지) 

1. 스토리지 특성을 지원하는 스토리지 솔루션 유형을 파악합니다. 

   1. [Amazon S3](https://aws.amazon.com/s3/) 은(는) 무제한 확장성, 높은 가용성과 액세스 가능성을 위한 여러 옵션을 갖춘 객체 스토리지 서비스입니다. Amazon S3 안팎에서 객체 전송 및 액세스는 [Transfer Acceleration](https://aws.amazon.com/s3/transfer-acceleration/) 또는 [액세스 포인트](https://aws.amazon.com/s3/features/access-points/) 등과 같은 서비스를 사용하여 위치, 보안 필요 및 액세스 패턴을 지원할 수 있습니다. [Amazon S3의 성능 지침](https://docs.aws.amazon.com/AmazonS3/latest/userguide/optimizing-performance-guidelines.html) 을 사용하여 워크로드 성능의 요구 사항을 충족하도록 Amazon S3 구성을 최적화할 수 있습니다. 

   1. [Amazon Glacier](https://aws.amazon.com/s3/storage-classes/glacier/) 은(는) 데이터 아카이빙을 위해 구축된 Amazon S3의 스토리지 클래스입니다. 밀리초에서 5\$112시간까지 액세스 시간이 다양하고 비용 및 보안 옵션이 제각각인 세 가지 아카이빙 솔루션 중에서 선택할 수 있습니다. Amazon Glacier은(는) 비즈니스 요구 사항 및 데이터 특성을 지원하는 데이터 수명 주기를 구현하여 성능 요구 사항을 충족하도록 돕습니다. 

   1. [Amazon Elastic Block Store(Amazon EBS)](https://aws.amazon.com/ebs/) 은(는) Amazon Elastic Compute Cloud(Amazon EC2)을(를) 위해 설계된 고성능 블록 스토리지 서비스입니다. IOPS 또는 처리량에 대한 우선 순위를 지정하는 특성이 다른 [SSD 기반 또는 HDD 기반](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html) 솔루션 중에서 [선택할](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/provisioned-iops.html) 수 [있습니다](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hdd-vols.html). EBS 볼륨은 고성능 워크로드, 파일 시스템을 위한 기본 스토리지, 데이터베이스 또는 연결된 스테이지 시스템에만 액세스할 수 있는 애플리케이션에 적합합니다. 

   1. [Amazon EC2 인스턴스 스토어](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) 는 Amazon EC2 인스턴스에 연결되므로 Amazon EBS과(와) 유사하지만 이상적으로 버퍼, 캐시 또는 기타 임시 콘텐츠로 사용해야 하는 임시 스토리지에 불과합니다. 인스턴스 스토어는 분리할 수 없으며 인스턴스가 종료되면 모든 데이터가 손실됩니다. 인스턴스 스토어는 데이터를 지속할 필요가 없는 높은 I/O 성능 및 짧은 지연 시간 사용 사례에 사용할 수 있습니다. 

   1. [Amazon Elastic File System(Amazon EFS)](https://aws.amazon.com/efs/) 은(는) 여러 유형의 컴퓨팅 솔루션에서 액세스할 수 있는 탑재 가능한 파일 시스템입니다. Amazon EFS은(는) 스토리지를 자동으로 늘리고 줄이며 대기 시간을 일정하게 짧게 유지하기 위해 성능이 최적화됩니다. EFS에는 [두 가지 성능 구성 모드](https://docs.aws.amazon.com/efs/latest/ug/performance.html)인 범용 모드와 최대 I/O 모드가 있습니다. 범용은 읽기 지연 시간이 1밀리초 미만이며, 쓰기 지연 시간은 한 자릿수 밀리초입니다. 최대 I/O 기능은 공유 파일 시스템이 필요한 수천 개의 컴퓨팅 인스턴스를 지원할 수 있습니다. Amazon EFS은(는) [두 가지 처리량 모드](https://docs.aws.amazon.com/efs/latest/ug/managing-throughput.html)즉, 버스팅과 프로비저닝을 지원합니다. 갑작스러운 액세스 급증 패턴이 나타나는 워크로드는 버스팅 처리량 모드에서 이점을 얻을 수 있는 동시에 일정하게 액세스가 높은 워크로드는 프로비저닝 처리량 모드에서 잘 작동할 수 있습니다. 

   1. [Amazon FSx](https://aws.amazon.com/fsx/) 은(는) 일반적으로 사용되는 네 가지 파일 시스템인 NetApp ONTAP, OpenZFS, Windows File Server 및 Lustre를 지원하는 최신 AWS 컴퓨팅 솔루션을 기반으로 구축되었습니다. Amazon FSx [지연 시간, 처리량 및 IOPS](https://aws.amazon.com/fsx/when-to-choose-fsx/) 는 파일 시스템에 따라 달라지며 워크로드의 요구 사항에 적합한 파일 시스템을 선택할 때 고려해야 합니다. 

   1. [AWS Snow Family](https://aws.amazon.com/snow/) 은(는) 클라우드과 데이터 스토리지로 온라인 및 오프라인 데이터 마이그레이션과 온프레미스 컴퓨팅을 지원하는 스토리지 및 컴퓨팅 디바이스입니다. AWS Snow 디바이스는 많은 양의 온프레미스 데이터 수집, 해당 데이터의 처리 및 클라우드로 해당 데이터 이동을 지원합니다. 파일 수, 파일 크기 및 압축과 관련하여 여러 가지 [문서화된 성능 모범 사례](https://docs.aws.amazon.com/snowball/latest/developer-guide/performance.html) 가 있습니다. 

   1. [AWS Storage Gateway](https://aws.amazon.com/storagegateway/) 은(는) 클라우드 기반 스토리지에 대한 온프레미스 애플리케이션 액세스를 제공합니다. AWS Storage Gateway는 Amazon S3, Amazon Glacier, Amazon FSx 및 Amazon EBS 등과 같은 여러 클라우드 스토리지 서비스를 지원하고 iSCSI, SMB 및 NFS 등과 같은 여러 프로토콜을 지원합니다. 자주 액세스하는 데이터를 온프레미스에 캐싱하여 지연 시간이 짧은 성능을 제공하고 변경된 데이터와 압축된 데이터만 AWS(으)로 전송합니다. 

1. 새로운 스토리지 솔루션을 실험하고 최적의 구성을 파악한 후 마이그레이션을 계획하고 성능 지표를 검증합니다. 이는 지속적인 프로세스이며 주요 특성이 변경되거나 사용 가능한 서비스 또는 옵션이 변경되면 다시 평가해야 합니다. 

 **구현 계획의 작업 수준: **워크로드가 한 스토리지 솔루션에서 다른 컴퓨팅 솔루션으로 이동하는 경우 애플리케이션을 리팩터링하는 데 *중간* 수준의 작업이 필요할 수 있습니다.   

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [Amazon EBS 볼륨 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) 
+  [Amazon EC2 스토리지](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Storage.html) 
+  [Amazon EFS: Amazon EFS 성능](https://docs.aws.amazon.com/efs/latest/ug/performance.html) 
+  [Amazon FSx for Lustre 성능](https://docs.aws.amazon.com/fsx/latest/LustreGuide/performance.html) 
+  [Amazon FSx for Windows File Server 성능](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/performance.html) 
+ [Amazon FSx for NetApp ONTAP 성능](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/performance.html)
+ [Amazon FSx for OpenZFS 성능](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/performance.html)
+  [Amazon Glacier: Amazon Glacier 설명서](https://docs.aws.amazon.com/amazonglacier/latest/dev/introduction.html) 
+  [Amazon S3: 요청 속도 및 성능 고려 사항](https://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html) 
+  [AWS의 클라우드 스토리지](https://aws.amazon.com/products/storage/) 
+ [AWS Snow Family](https://aws.amazon.com/snow/#Feature_comparison)
+  [EBS I/O 특성](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-io-characteristics.html) 

 **관련 동영상:** 
+  [Deep dive on Amazon EBS(STG303-R1)](https://www.youtube.com/watch?v=wsMWANWNoqQ) 
+  [Optimize your storage performance with Amazon S3(STG343)](https://www.youtube.com/watch?v=54AhwfME6wI) 

 **관련 예시:** 
+  [Amazon EFS CSI 드라이버](https://github.com/kubernetes-sigs/aws-efs-csi-driver) 
+  [Amazon EBS CSI 드라이버](https://github.com/kubernetes-sigs/aws-ebs-csi-driver) 
+  [Amazon EFS 유틸리티](https://github.com/aws/efs-utils) 
+  [Amazon EBS 오토 스케일링](https://github.com/awslabs/amazon-ebs-autoscale) 
+  [Amazon S3 예시](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-examples.html) 
+ [Amazon FSx for Lustre Container Storage Interface(CSI) 드라이버](https://github.com/kubernetes-sigs/aws-fsx-csi-driver)

# PERF03-BP02 사용 가능한 구성 옵션 평가
<a name="perf_right_storage_solution_evaluated_options"></a>

 다양한 특성 및 구성 옵션과 스토리지와의 관련성을 평가합니다. 프로비저닝된 IOPS, SSD, 마그네틱 스토리지, 객체 스토리지, 아카이브 스토리지 또는 휘발성 스토리지를 사용하는 위치와 방법을 파악하여 워크로드의 성능과 스토리지 공간을 최적화합니다. 

 [Amazon EBS](https://aws.amazon.com/ebs) 는 워크로드에 맞게 스토리지 성능과 비용을 최적화할 수 있는 광범위한 옵션을 제공합니다. 이러한 옵션은 두 가지 주요 범주로 구분됩니다. 그중 하나는 데이터베이스 및 부트 볼륨과 같은 트랜잭션 워크로드용 SSD-지원 스토리지이고(주로 IOPS에 따라 성능이 달라짐), 다른 하나는 MapReduce 및 로그 처리와 같은 처리량이 높은 워크로드용 HDD 지원 스토리지입니다(주로 초당 MB에 따라 성능이 달라짐). 

 SSD 지원 볼륨에는 지연 시간에 따라 달라지는 트랜잭션 워크로드용으로 최상의 성능을 제공하는 프로비저닝된 IOPS SSD와 다양한 트랜잭션 데이터용으로 사용 가능하도록 가격과 성능이 적절하게 절충된 범용 SSD가 포함됩니다. 

 [Amazon S3 Transfer Acceleration](https://aws.amazon.com/s3/transfer-acceleration/) 을 사용하면 클라이언트와 S3 버킷 간의 장거리 파일 전송을 빠르게 수행할 수 있습니다. Transfer Acceleration은 전 세계에 분산된 Amazon CloudFront의 엣지 로케이션을 활용하여 최적화된 네트워크 경로를 통해 데이터를 라우팅합니다. GET 요청을 많이 수행하는 S3 버킷의 워크로드에는 CloudFront가 포함된 Amazon S3를 사용합니다. 큰 파일을 업로드할 때는 여러 부분이 동시에 업로드되는 멀티 파트 업로드를 사용하면 네트워크 처리량을 극대화할 수 있습니다. 

 [Amazon Elastic File System(Amazon EFS)](https://aws.amazon.com/efs/) 은 AWS 클라우드 서비스 및 온프레미스 리소스에 사용할 수 있는 간편하고 확장 가능하며 탄력적인 완전관리형 NFS 파일 시스템을 제공합니다. Amazon EFS는 범용 성능 모드와 최대 I/O 성능 모드라는 두 성능 모드를 제공하여 다양한 클라우드 스토리지 워크로드를 지원합니다. 또한 버스팅 처리량(throughput) 및 프로비저닝된 처리량(throughput)이라는 두 처리량(throughput) 모드 중에서 파일 시스템에 적합한 모드를 선택할 수 있습니다. 워크로드에 사용할 설정을 결정하려면 [Amazon EFS 사용 설명서](https://docs.aws.amazon.com/efs/latest/ug/performance.html)를 참조하십시오. 

 [Amazon FSx](https://aws.amazon.com/fsx/) 는 엔터프라이즈 워크로드용 [Amazon FSx for Windows File Server,](https://aws.amazon.com/fsx/windows/) 고성능 워크로드용 [Amazon FSx for Lustre,](https://aws.amazon.com/fsx/lustre/) NetApps 주요 ONTAP 파일 시스템용 [Amazon FSx for NetApp ONTAP,](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/index.html) Linux 기반 파일 서버용 [Amazon FSx for OpenZFS](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/what-is-fsx.html) 등 4가지 파일 시스템 중에서 선택할 수 있는 옵션을 제공합니다. FSx는 SSD를 지원하며, 빠르고 예측 가능하며 확장 가능하고 일관된 성능을 제공하도록 설계되었습니다. Amazon FSx 파일 시스템은 지속적으로 높은 읽기 및 쓰기 속도와 일관되게 지연 시간이 짧은 데이터 액세스를 제공합니다. 워크로드의 요구 사항에 따라 필요한 처리량 수준을 선택할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  모든 워크로드에 Amazon EBS와 같은 하나의 스토리지 유형만 사용합니다. 
+  모든 스토리지 계층을 기준으로 한 실제 테스트 없이 워크로드 전체에 프로비저닝된 IOPS를 사용합니다. 
+  모든 워크로드의 스토리지 액세스 성능 요구 사항이 비슷하다고 가정합니다. 

 **이 모범 사례 수립의 이점:** 모든 스토리지 서비스 옵션을 평가하면 인프라 비용과 워크로드를 유지 관리하는 데 필요한 노력을 줄일 수 있습니다. 새로운 서비스와 기능의 배포에 대한 출시 시간을 가속화할 수 있습니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 보통 

## 구현 가이드
<a name="implementation-guidance"></a>

 스토리지 특성 결정: 스토리지 솔루션을 평가할 때는 공유 기능, 파일 크기, 캐시 크기, 지연 시간, 처리량(throughput) 및 데이터 지속성 등 필요한 스토리지 특성이 무엇인지 결정합니다. 그런 다음 요구 사항에 가장 적합한 AWS 서비스에 요구 사항을 맞춥니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS의 클라우드 스토리지](https://aws.amazon.com/products/storage/?ref=wellarchitected) 
+  [Amazon EBS 볼륨 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) 
+  [Amazon EC2 스토리지](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Storage.html) 
+  [Amazon EFS: Amazon EFS 성능](https://docs.aws.amazon.com/efs/latest/ug/performance.html) 
+  [Amazon FSx for Lustre 성능](https://docs.aws.amazon.com/fsx/latest/LustreGuide/performance.html) 
+  [Amazon FSx for Windows File Server 성능](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/performance.html) 
+  [Amazon Glacier: Amazon Glacier 설명서](https://docs.aws.amazon.com/amazonglacier/latest/dev/introduction.html) 
+  [Amazon S3: 요청 속도 및 성능 고려 사항](https://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html) 
+  [AWS의 클라우드 스토리지](https://aws.amazon.com/products/storage/) 
+  [AWS의 클라우드 스토리지](https://aws.amazon.com/products/storage/?ref=wellarchitected) 
+  [EBS I/O 특성](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-io-characteristics.html) 

 **관련 동영상:** 
+  [Deep dive on Amazon EBS(STG303-R1)](https://www.youtube.com/watch?v=wsMWANWNoqQ) 
+  [Optimize your storage performance with Amazon S3(STG343)](https://www.youtube.com/watch?v=54AhwfME6wI) 

 **관련 예시:** 
+  [Amazon EFS CSI 드라이버](https://github.com/kubernetes-sigs/aws-efs-csi-driver) 
+  [Amazon EBS CSI 드라이버](https://github.com/kubernetes-sigs/aws-ebs-csi-driver) 
+  [Amazon EFS 유틸리티](https://github.com/aws/efs-utils) 
+  [Amazon EBS 자동 확장](https://github.com/awslabs/amazon-ebs-autoscale) 
+  [Amazon S3 예시](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-examples.html) 

# PERF03-BP03 액세스 패턴과 지표를 기준으로 결정
<a name="perf_right_storage_solution_optimize_patterns"></a>

 워크로드의 액세스 패턴을 기준으로 스토리지 시스템을 선택하고, 워크로드에서 데이터에 액세스하는 방법을 결정하여 이러한 스토리지 시스템을 구성합니다. 블록 스토리지 대신 객체 스토리지를 선택하여 스토리지 효율성을 높이십시오. 선택한 스토리지 옵션을 데이터 접근 패턴과 일치하도록 구성합니다. 

 데이터에 액세스하는 방식은 스토리지 솔루션의 성능에 영향을 줍니다. 따라서 성능을 극대화하려면 접근 패턴에 가장 적합한 스토리지 솔루션을 선택하거나, 스토리지 솔루션에 따라 접근 패턴을 변경하는 것이 좋습니다. 

 RAID 0 어레이를 생성하면 단일 볼륨에서 프로비저닝할 때보다 파일 시스템의 성능 수준을 더 높일 수 있습니다. 내결함성보다 I/O 성능이 더 중요할 때는 RAID 0를 사용하는 것이 좋습니다. 예를 들어 데이터 복제가 이미 별도로 설정되어 있으며 사용 빈도가 매우 높은 데이터베이스의 경우에는 RAID 0를 사용해야 합니다. 

 워크로드에 사용된 모든 스토리지 옵션에서 워크로드에 적절한 스토리지 지표를 선택합니다. 버스트 크레딧을 이용하는 파일 시스템을 사용하는 경우에는 이러한 크레딧 제한에 근접할 때 알림을 제공하는 경보를 생성합니다. 전체 워크로드 스토리지 상태를 보여주는 스토리지 대시보드를 생성해야 합니다. 

 Amazon EBS 또는 Amazon FSx와 같이 크기가 고정된 스토리지 시스템의 경우 전체 스토리지 크기 대비 사용된 스토리지의 양을 모니터링해야 하며, 임계값에 도달할 때 스토리지 크기를 늘릴 수 있는 자동화 기능을 생성해야 합니다. 

 **일반적인 안티 패턴:** 
+  고객이 불만을 제기하지 않으면 스토리지 성능이 적절한 것이라고 가정합니다. 
+  모든 워크로드가 해당 계층 내에서 적합하다고 가정하고 하나의 스토리지 계층만 사용합니다. 

 **이 모범 사례 수립의 이점:** 성능 및 리소스 사용률을 최적화하려면 통합된 운영 보기, 세분화된 실시간 데이터 및 기간별 참조가 필요합니다. 1초의 세분성을 포함하는 자동 대시보드와 데이터를 생성하여 데이터에 대한 지표 산술을 수행하고 스토리지 요구 사항에 대한 운영 및 사용률 인사이트를 도출할 수 있습니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 낮음 

## 구현 가이드
<a name="implementation-guidance"></a>

 스토리지 사용량 및 액세스 패턴 최적화: 워크로드 액세스 패턴 및 사용 가능한 스토리지 옵션의 특성에 따라 스토리지 시스템을 선택합니다. 오버헤드를 줄이면서 요구 사항을 충족할 수 있는 최적의 데이터 저장 위치를 결정합니다. 스토리지의 특성에 따라 데이터를 구성하고 데이터와 상호 작용할 때는 성능 최적화 및 액세스 패턴을 사용합니다(예: 볼륨 스트라이핑 또는 데이터 분할). 

 스토리지 옵션에 적합한 지표 선택: 워크로드에 적합한 스토리지 지표를 선택해야 합니다. 각 스토리지 옵션은 워크로드의 시간대별 성능을 추적할 수 있는 다양한 지표를 제공합니다. 스토리지 버스트 지표를 기준으로 측정해야 합니다(예: Amazon EFS의 버스트 크레딧 모니터링). Amazon Elastic Block Store 또는 Amazon FSx와 같이 크기가 고정된 스토리지 시스템의 경우 사용된 스토리지의 양과 전체 스토리지 크기를 비교하여 모니터링해야 합니다. 임계값에 도달하면 가능한 경우 스토리지 크기를 늘리는 자동화를 생성합니다. 

 지표 모니터링: Amazon CloudWatch는 아키텍처의 리소스 전반에서 지표를 수집할 수 있습니다. 또한 사용자 지정 지표를 수집하고 게시하여 비즈니스 또는 파생 지표를 파악할 수도 있습니다. CloudWatch 또는 타사 솔루션을 사용하여 임계값 위반 시점을 나타내는 경보를 설정합니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [Amazon EBS 볼륨 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) 
+  [Amazon EC2 스토리지](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Storage.html) 
+  [Amazon EFS: Amazon EFS 성능](https://docs.aws.amazon.com/efs/latest/ug/performance.html) 
+  [Amazon FSx for Lustre 성능](https://docs.aws.amazon.com/fsx/latest/LustreGuide/performance.html) 
+  [Amazon FSx for Windows File Server 성능](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/performance.html) 
+  [Amazon Glacier: Amazon Glacier 설명서](https://docs.aws.amazon.com/amazonglacier/latest/dev/introduction.html) 
+  [Amazon S3: 요청 속도 및 성능 고려 사항](https://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html) 
+  [AWS의 클라우드 스토리지](https://aws.amazon.com/products/storage/) 
+  [EBS I/O 특성](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-io-characteristics.html) 
+  [Amazon CloudWatch를 사용한 Amazon EBS 성능 모니터링 및 이해](https://aws.amazon.com/blogs/storage/valuable-tips-for-monitoring-and-understanding-amazon-ebs-performance-using-amazon-cloudwatch/) 

 **관련 동영상:** 
+  [Deep dive on Amazon EBS(STG303-R1)](https://www.youtube.com/watch?v=wsMWANWNoqQ) 
+  [Optimize your storage performance with Amazon S3(STG343)](https://www.youtube.com/watch?v=54AhwfME6wI) 

 **관련 예시:** 
+  [Amazon EFS CSI 드라이버](https://github.com/kubernetes-sigs/aws-efs-csi-driver) 
+  [Amazon EBS CSI 드라이버](https://github.com/kubernetes-sigs/aws-ebs-csi-driver) 
+  [Amazon EFS 유틸리티](https://github.com/aws/efs-utils) 
+  [Amazon EBS 자동 확장](https://github.com/awslabs/amazon-ebs-autoscale) 
+  [Amazon S3 예시](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-examples.html) 

# PERF 4  데이터베이스 솔루션을 어떻게 선택합니까?
<a name="w2aac19c11b5c11"></a>

 시스템에 대한 최적의 데이터베이스 솔루션은 가용성, 일관성, 파티션 허용 오차, 지연 시간, 내구성, 확장성, 쿼리 기능에 대한 요구 사항에 따라 다릅니다. 여러 시스템은 다양한 하위 시스템에 서로 다른 데이터베이스 솔루션을 사용하고 다양한 기능을 활성화하여 성능을 개선할 수 있습니다. 시스템에 대해 잘못된 데이터베이스 솔루션 및 기능을 선택하면 성능 효율성이 저하될 수 있습니다. 

**Topics**
+ [

# PERF04-BP01 데이터 특성 파악
](perf_right_database_solution_understand_char.md)
+ [

# PERF04-BP02 사용 가능한 옵션 평가
](perf_right_database_solution_evaluate_options.md)
+ [

# PERF04-BP03 데이터베이스 성능 지표 수집 및 기록
](perf_right_database_solution_collect_metrics.md)
+ [

# PERF04-BP04 액세스 패턴을 기준으로 데이터 스토리지 선택
](perf_right_database_solution_access_patterns.md)
+ [

# PERF04-BP05 액세스 패턴 및 지표를 기준으로 데이터 스토리지 최적화
](perf_right_database_solution_optimize_metrics.md)

# PERF04-BP01 데이터 특성 파악
<a name="perf_right_database_solution_understand_char"></a>

 워크로드 데이터 세트의 특성, 액세스 패턴 및 요구 사항에 최적으로 일치하는 데이터 관리 솔루션을 선택합니다. 데이터 관리 솔루션을 선택하고 구현할 때는 쿼리, 확장 및 스토리지 특성이 워크로드 데이터 요구 사항을 지원하는지 확인해야 합니다. 다양한 데이터베이스 옵션이 데이터 모델과 어떻게 일치하는지, 어떤 구성 옵션이 사용 사례에 가장 적합한지 알아보십시오.  

 AWS에서는 관계형, 키 값, 문서, 인 메모리, 그래프, 시계열 및 원장 데이터베이스를 포함한 수많은 데이터베이스 엔진을 제공합니다. 각 데이터 관리 솔루션에는 사용 사례 및 데이터 모델을 지원하는 옵션과 구성이 있습니다. 워크로드에서 데이터 특성에 따라 여러 가지 데이터베이스 솔루션을 사용할 수 있습니다. 특정 문제에 가장 적합한 데이터베이스 솔루션을 선택하면, 모든 상황에 한 가지 접근 방식을 사용하는 제한적인 모놀리식 데이터베이스에서 탈피하여 고객의 요구를 충족하는 데이터 관리에 집중할 수 있습니다. 

 **원하는 결과:** 지원 데이터베이스 솔루션의 선택과 구성을 용이하게 하고 잠재적인 대안에 대한 인사이트를 제공하도록 충분한 세부 정보를 담아 워크로드 데이터 특성을 문서화합니다. 

 **일반적인 안티 패턴:** 
+  대규모 데이터 세트를 유사한 특성을 가진 더 작은 데이터 모음으로 분할하는 방법을 고려하지 않아 데이터 및 성장 특성에 보다 적합한 목적별 데이터베이스를 더 많이 사용할 기회를 놓칩니다. 
+  데이터 액세스 패턴을 사전에 식별하지 않아 나중에 많은 비용이 들고 복잡한 재작업을 해야 합니다. 
+  필요에 따라 신속하게 확장되지 않는 데이터 스토리지 전략을 사용하여 성장을 제한합니다. 
+  모든 워크로드에 하나의 데이터베이스 유형과 공급업체를 선택합니다. 
+  특정 데이터베이스 솔루션 유형에 대한 내부 경험과 지식이 있어 하나의 데이터베이스 솔루션만 고수합니다. 
+  온프레미스 환경에서 잘 작동했다는 이유로 같은 데이터베이스 솔루션을 그대로 사용합니다. 

 **이 모범 사례 수립의 이점:** 다양한 워크로드에 적합한 데이터베이스 솔루션을 결정하려면 모든 AWS 데이터베이스 솔루션에 대해 잘 알아야 합니다. 워크로드에 사용할 데이터베이스 솔루션을 선택한 후에는 이러한 각 데이터베이스 오퍼링을 신속하게 실험하여 워크로드 요구 사항이 계속해서 충족되는지 확인할 수 있습니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 높음 
+  잠재적인 비용 절감 효과가 나타나지 않을 수 있습니다. 
+  데이터가 필요한 수준으로 보호되지 않을 수 있습니다. 
+  데이터 액세스 및 스토리지 성능이 최적의 상태가 아닐 수 있습니다. 

## 구현 가이드
<a name="implementation-guidance"></a>

 워크로드의 데이터 특성과 액세스 패턴을 정의하십시오. 사용 가능한 모든 데이터베이스 솔루션을 검토하여 데이터 요건을 지원하는 솔루션을 식별해야 합니다. 주어진 워크로드 내에서 다양한 데이터베이스를 선택할 수 있습니다. 각 서비스 또는 서비스 그룹을 평가하고 개별적으로 검토하십시오. 데이터의 일부 또는 전체에 대해 사용할 수 있는 대체 데이터 관리 솔루션이 확인된 경우 비용, 보안, 성능, 신뢰성 측면에서 이점을 제공할 수 있는 대체 구현을 시험해 보면 좋습니다. 새로운 데이터 관리 전략을 채택할 경우 기존 문서를 업데이트합니다. 


|  **유형**  |  **AWS 서비스**  |  **주요 특징**  |  **일반 사용 사례**  | 
| --- | --- | --- | --- | 
|  관계형  |  Amazon RDS, Amazon Aurora  |  참조 무결성, ACID 트랜잭션, 쓰기 스키마  |  ERP, CRM, 상용 소프트웨어  | 
|  키-값  |  Amazon DynamoDB  |  높은 처리량(throughput), 짧은 지연 시간, 무한에 가까운 확장성  |  장바구니(전자 상거래), 제품 카탈로그, 채팅 애플리케이션  | 
|  문서  |  Amazon DocumentDB  |  JSON 문서를 저장하고 모든 속성 쿼리  |  콘텐츠 관리(CMS), 고객 프로파일, 모바일 애플리케이션  | 
|  인 메모리  |  Amazon ElastiCache, Amazon MemoryDB  |  마이크로초 단위의 지연 시간  |  캐싱, 게임 리더보드  | 
|  그래프  |  Amazon Neptune  |  데이터 간의 관계가 의미를 갖는 고도의 관계형 데이터  |  소셜 네트워크, 개인화 엔진, 사기 탐지  | 
|  시계열  |  Amazon Timestream  |  기본 차원이 시간인 데이터  |  DevOps, IoT, 모니터링  | 
|  와이드 컬럼  |  Amazon Keyspaces  |  Cassandra 워크로드  |  산업 장비 유지보수, 경로 최적화  | 
|  원장  |  Amazon QLDB  |  변경 불가능하고 암호로 확인할 수 있는 원장 변경 사항  |  기록 시스템, 의료, 공급망, 금융 기관  | 

 **구현 단계** 

1.  데이터가 어떻게 구조화되었습니까?(예: 비정형, 키 값, 반정형, 관계형) 

   1.  데이터가 비정형인 경우 [Amazon S3](https://aws.amazon.com/products/storage/data-lake-storage/) 와 같은 객체 스토어 또는 [Amazon DocumentDB와 같은 NoSQL 데이터베이스를 고려합니다.](https://aws.amazon.com/documentdb/) 

   1.  키 값 데이터의 경우 [DynamoDB](https://aws.amazon.com/documentdb/), [ElastiCache for Redis](https://aws.amazon.com/elasticache/redis/) 또는 [MemoryDB를 고려합니다.](https://aws.amazon.com/memorydb/) 

   1.  데이터가 관계형 구조를 가진다면 어느 정도의 참조 무결성이 요구됩니까? 

      1.  외래 키 제약 조건의 경우 [Amazon RDS](https://aws.amazon.com/rds/) 및 [Aurora](https://aws.amazon.com/rds/aurora/) 와 같은 관계형 데이터베이스가 원하는 무결성 수준을 제공할 수 있습니다. 

      1.  일반적으로 NoSQL 데이터 모델 내에서는 문서나 테이블을 조인하는 대신 단일 요청으로 검색하도록 데이터를 단일 문서 또는 문서 모음으로 비정규화합니다.  

1.  원자성, 일관성, 격리, 내구성(ACID) 규정 준수가 필요합니까? 

   1.  관계형 데이터베이스와 연결된 ACID 속성이 필요한 경우 [Amazon RDS](https://aws.amazon.com/rds/) 및 [Aurora와 같은 관계형 데이터베이스를 고려합니다.](https://aws.amazon.com/rds/aurora/) 

1.  어떤 정합성 모델이 필요합니까? 

   1.  애플리케이션에서 최종 일관성을 허용할 수 있다면 NoSQL 구현을 고려합니다. 다른 특성을 검토하면 가장 적합한 [NoSQL 데이터베이스를](https://aws.amazon.com/nosql/) 선택하는 데 도움이 됩니다. 

   1.  철저한 일관성이 필요한 경우 [DynamoDB](https://aws.amazon.com/documentdb/) 또는 [Amazon RDS와 같은 관계형 데이터베이스로 강력히 일관된 읽기를 사용할 수 있습니다](https://aws.amazon.com/rds/). 

1.  어떤 쿼리 및 결과 형식을 지원해야 합니까?(예: SQL, CSV, Parque, Avro, JSON 등) 

1.  어떤 데이터 유형, 필드 크기 및 전체 용량을 사용합니까?(예: 텍스트, 숫자, 공간, 시계열 계산, 바이너리 또는 블롭, 문서) 

1.  시간이 흐르면서 스토리지 요구 사항이 어떻게 변경되며, 이러한 변화가 확장성에 어떤 영향을 미칩니까? 

   1.  서버리스 데이터베이스( [DynamoDB](https://aws.amazon.com/documentdb/) 및 [Amazon Quantum Ledger Database](https://aws.amazon.com/qldb/) )는 무한에 가까운 스토리지로 동적으로 확장됩니다. 

   1.  관계형 데이터베이스는 프로비저닝된 스토리지에 대한 상한선이 있으며, 한도에 도달하면 샤딩과 같은 메커니즘을 통해 수평으로 분할해야 하는 경우가 많습니다. 

1.  쓰기 쿼리 대비 읽기 쿼리의 비율은 얼마입니까? 캐싱이 성능을 향상시킬 가능성이 있습니까? 

   1.  읽기 집약적인 워크로드는 캐싱 계층을 통해 이점을 얻을 수 있습니다. 이는 [ElastiCache](https://aws.amazon.com/elasticache/) 또는 [DAX일 수 있습니다](https://aws.amazon.com/dynamodb/dax/) (데이터베이스가 DynamoDB인 경우). 

   1.  읽기는 관계형 데이터베이스 [(예: Amazon RDS)가 있는 읽기 전용 복제본으로 오프로드될 수 있습니다](https://aws.amazon.com/rds/). 

1.  저장 및 수정(OLTP - 온라인 트랜잭션 처리) 또는 검색 및 보고(OLAP - 온라인 분석 처리)가 높은 우선순위를 가집니까? 

   1.  처리량(throughput)이 많은 트랜잭션 처리의 경우 DynamoDB 또는 Amazon DocumentDB와 같은 NoSQL 데이터베이스를 고려합니다. 

   1.  분석 쿼리의 경우 [Amazon Redshift](https://aws.amazon.com/redshift/) 와 같은 열 형식 데이터베이스를 사용하거나 데이터를 Amazon S3로 내보내고 [Athena](https://aws.amazon.com/athena/) 또는 [QuickSight를 사용하여 분석을 수행하는 것을 고려합니다.](https://aws.amazon.com/quicksight/) 

1.  이 데이터의 중요도와 필요한 보호 및 암호화 수준은 어느 정도입니까? 

   1.  Amazon RDS 및 Aurora 엔진은 AWS KMS를 사용하여 데이터 암호화를 지원합니다. 또한 Microsoft SQL Server 및 Oracle은 Amazon RDS를 사용할 때 기본 투명한 데이터 암호화(TDE)를 지원합니다. 

   1.  DynamoDB의 경우 [IAM](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-overview.html) 과 함께 세분화된 액세스 제어를 통해 누가 키 수준에서 어떤 데이터에 액세스할지 제어할 수 있습니다. 

1.  데이터에 필요한 내구성은 어느 정도입니까? 

   1.  Aurora는 리전 내 3개의 가용 영역에서 데이터를 자동으로 복제하므로, 데이터 손실 가능성이 적으면서도 데이터의 내구성이 매우 높아집니다. 

   1.  DynamoDB는 여러 가용 영역에 걸쳐 자동으로 복제되므로, 높은 가용성과 데이터 내구성을 제공합니다. 

   1.  Amazon S3는 99.999999999%의 내구성을 지원합니다. Amazon RDS 및 DynamoDB와 같은 많은 데이터베이스 서비스는 장기 보존 및 아카이브를 위해 Amazon S3로 데이터 내보내기를 지원합니다. 

1.  할 것 [Recovery Time Objective(RTO) 또는 Recovery Point Objective(RPO)](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/plan-for-disaster-recovery-dr.html) 요건이 솔루션에 영향을 미칩니까? 

   1.  Amazon RDS, Aurora, DynamoDB, Amazon DocumentDB, Neptune은 모두 시점 복구와 온디맨드 백업 및 복원을 지원합니다.  

   1.  고가용성 요구 사항을 위해 DynamoDB 테이블은 [글로벌 테이블](https://aws.amazon.com/dynamodb/global-tables/) 기능을 사용하여 전역적으로 복제할 수 있으며, Aurora 클러스터는 글로벌 데이터베이스 기능을 사용하여 여러 리전에 걸쳐 복제할 수 있습니다. 나아가 S3 버킷은 교차 리전 복제를 사용하여 AWS 리전에 걸쳐 복제 가능합니다.  

1.  상용 데이터베이스 엔진/라이선싱 비용에 대한 걱정을 덜고 싶습니까? 

   1.  Amazon RDS 또는 Aurora에서 PostgreSQL 및 MySQL과 같은 오픈 소스 엔진을 고려합니다. 

   1.  그리고 [AWS DMS](https://aws.amazon.com/dms/) 및 [AWS SCT](https://aws.amazon.com/dms/schema-conversion-tool/) 를 활용하여 상용 데이터베이스 엔진에서 오픈 소스로 마이그레이션을 수행합니다. 

1.  데이터베이스에 대한 운영상의 기대치는 어떠합니까? 관리형 서비스로 전환하는 것이 주요 관심사입니까? 

   1.  Amazon EC2 대신 Amazon RDS를 활용하고 자체 호스팅한 NoSQL 데이터베이스 대신 DynamoDB 또는 Amazon DocumentDB를 활용하여 운영 오버헤드를 줄일 수 있습니다. 

1.  현재 데이터베이스에 어떻게 액세스합니까? 애플리케이션 액세스만 가능합니까? 아니면 비즈니스 인텔리전스(BI) 사용자와 기타 연결된 상용 애플리케이션이 있습니까? 

   1.  외부 도구에 의존하는 경우 해당 도구가 지원하는 데이터베이스와의 호환성을 유지해야 할 수도 있습니다. Amazon RDS는 Microsoft SQL Server, Oracle, MySQL, PostgreSQL 등 지원하는 다양한 엔진 버전과 완벽하게 호환됩니다. 

1.  잠재적인 데이터 관리 서비스 목록과 이러한 서비스를 가장 효과적으로 사용할 수 있는 위치는 다음과 같습니다. 

   1.  관계형 데이터베이스는 미리 정의된 스키마와 스키마 간의 관계를 사용하여 데이터를 저장합니다. 이러한 데이터베이스는 ACID(원자성, 일관성, 격리, 내구성) 트랜잭션을 지원하고 참조 무결성과 강력한 데이터 일관성을 유지하도록 설계되었습니다. 많은 기존 애플리케이션, 엔터프라이즈 리소스 계획(ERP), 고객 관계 관리(CRM) 및 전자 상거래의 데이터가 관계형 데이터베이스를 사용하여 저장됩니다. 이러한 데이터베이스 엔진의 다수를 Amazon EC2에서 실행하거나 AWS 관리형 [데이터베이스 서비스](https://aws.amazon.com/products/databases/): [Amazon Aurora](https://aws.amazon.com/rds/aurora), [Amazon RDS](https://aws.amazon.com/rds) 및 [Amazon Redshift](https://aws.amazon.com/redshift)중에서 선택할 수 있습니다. 

   1.  키-값 데이터베이스는 대개 대량의 데이터를 저장 및 검색하는 일반적인 액세스 패턴에 최적화되어 있습니다. 이 데이터베이스는 동시 요청의 양이 매우 많은 경우에도 빠른 응답 시간을 제공합니다. 트래픽이 많은 웹 앱, 전자 상거래 시스템 및 게임 애플리케이션은 키 값 데이터베이스의 일반적인 사용 사례입니다. AWS에서는 [Amazon DynamoDB](https://aws.amazon.com/dynamodb/)를 활용할 수 있습니다. Amazon DynamoDB는 인터넷 규모의 애플리케이션을 위한 보안, 백업 및 복원, 인 메모리 캐싱 기능이 내장된 탁월한 내구성을 지닌 완전관리형 다중 리전, 다중 마스터 데이터베이스입니다. 

   1.  인 메모리 데이터베이스는 데이터에 대한 실시간 액세스, 가장 짧은 지연 시간 및 가장 높은 처리량(throughput)이 필요한 애플리케이션에 사용됩니다. 이 데이터베이스는 데이터를 메모리에 직접 저장함으로써 밀리초 단위의 지연 시간도 허용되지 않는 애플리케이션에 마이크로초 단위의 지연 시간을 제공합니다. 애플리케이션 캐싱, 세션 관리, 게임 순위표 및 지리 공간 애플리케이션에 인메모리 데이터베이스를 사용할 수 있습니다. [Amazon ElastiCache](https://aws.amazon.com/elasticache/) 는 다음과 호환되는 완전관리형 인메모리 데이터 스토어입니다. [Redis](https://aws.amazon.com/elasticache/redis/) 또는 [Memcached](https://aws.amazon.com/elasticache/memcached). 애플리케이션의 내구성 요건이 더 높은 경우 [Amazon MemoryDB for Redis](https://aws.amazon.com/memorydb/) 에서는 이를 조합하여 놀랍도록 빠르고 내구성이 뛰어난 인 메모리 데이터베이스 서비스를 제공합니다. 

   1.  도큐먼트 데이터베이스는 반정형 데이터를 JSON 유사 문서로 저장하도록 설계되었습니다. 이러한 데이터베이스는 개발자가 콘텐츠 관리, 카탈로그 및 사용자 프로필과 같은 애플리케이션을 신속하게 구축하고 업데이트하는 데 도움이 됩니다. [Amazon DocumentDB](https://aws.amazon.com/documentdb/) 는 MongoDB 워크로드를 지원하는 완전관리형 문서 데이터베이스 서비스로, 탁월한 속도, 확장성 및 고가용성을 제공합니다. 

   1.  와이드 컬럼 스토어는 NoSQL 데이터베이스의 한 유형입니다. 테이블, 행 및 열을 사용하지만 관계형 데이터베이스와 달리 열의 이름과 형식은 동일한 테이블에서 행마다 다를 수 있습니다. 일반적으로 와이드 컬럼 스토어는 대규모 산업 앱에서 장비 유지 관리, 플릿 관리 및 라우팅 최적화를 위해 사용됩니다. [Amazon Keyspaces(Apache Cassandra용)](https://aws.amazon.com/mcs/) 는 와이드 컬럼 확장성 및 고가용성을 갖춘 관리형 Apache Cassandra 호환 데이터베이스 서비스입니다. 

   1.  그래프 데이터베이스는 밀접한 관계가 있는 그래프 데이터 세트 간에 밀리초 단위의 지연 시간으로 수백만 개의 관계를 탐색하고 쿼리해야 하는 애플리케이션을 위한 솔루션입니다. 많은 기업에서 사기 탐지, 소셜 네트워킹 및 추천 엔진에 그래프 데이터베이스를 사용합니다. [Amazon Neptune](https://aws.amazon.com/neptune/) 은 빠르고 안정적인 완전 관리형 그래프 데이터베이스 서비스로, 상호 연결성이 높은 데이터 세트를 활용하는 애플리케이션을 쉽게 구축하고 실행할 수 있습니다. 

   1.  시계열 데이터베이스는 시간이 지남에 따라 변화하는 데이터에서 효율적으로 분석 정보를 수집, 통합 및 도출합니다. IoT 애플리케이션, DevOps 및 산업용 텔레메트리에 시계열 데이터베이스를 활용할 수 있습니다. [Amazon Timestream](https://aws.amazon.com/timestream/) 은 IoT 및 운영 애플리케이션을 위한 고속의 확장 가능한 완전관리형 시계열 데이터베이스 서비스입니다. 이 서비스를 사용하면 하루에 수조 건의 이벤트를 손쉽게 저장하고 분석할 수 있습니다. 

   1.  원장 데이터베이스는 모든 애플리케이션에 대해 확장 가능하고 변경 불가능하며 암호화 방식으로 확인 가능한 트랜잭션 레코드를 유지하는 신뢰할 수 있는 중앙 집중식 권한을 제공합니다. 레코드 시스템, 공급망, 등록 및 심지어 은행 거래 시스템에 원장 데이터베이스가 사용되는 것을 볼 수 있습니다. [Amazon Quantum Ledger Database(Amazon QLDB)](https://aws.amazon.com/qldb/) 는 신뢰할 수 있는 중앙 기관이 소유한 투명하고 변경 불가능하며 암호화 방식으로 확인 가능한 트랜잭션 로그를 제공하는 완전관리형 원장 데이터베이스입니다. Amazon QLDB는 모든 애플리케이션 데이터 변경 사항을 추적하고 시간 경과에 따른 완전하고 확인 가능한 변경 기록을 유지합니다. 

 **구현 계획의 작업 수준: **워크로드가 한 데이터베이스 솔루션에서 다른 데이터베이스 솔루션으로 이동하는 경우 데이터 및 애플리케이션을 리팩터링하는 데 *많은* 노력이 필요할 수 있습니다.   

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS 클라우드 데이터베이스 ](https://aws.amazon.com/products/databases/?ref=wellarchitected) 
+  [AWS 데이터베이스 캐싱 ](https://aws.amazon.com/caching/database-caching/?ref=wellarchitected) 
+  [Amazon DynamoDB Accelerator ](https://aws.amazon.com/dynamodb/dax/?ref=wellarchitected) 
+  [Amazon Aurora 모범 사례 ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html?ref=wellarchitected) 
+  [Amazon Redshift 성능 ](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html?ref=wellarchitected) 
+  [Amazon Athena 10가지 성능 향상 팁 ](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/?ref=wellarchitected) 
+  [Amazon Redshift Spectrum 모범 사례 ](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/?ref=wellarchitected) 
+  [Amazon DynamoDB 모범 사례](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html?ref=wellarchitected) 
+  [EC2 및 Amazon RDS 간 선택](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/comparison.html) 
+  [Amazon ElastiCache 구현 모범 사례](https://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/BestPractices.html) 

 **관련 동영상:** 
+ [AWS 목적별 데이터베이스(DAT209-L) ](https://www.youtube.com/watch?v=q81TVuV5u28) 
+ [Amazon Aurora 스토리지 상세 설명: 작동 방식(DAT309-R) ](https://www.youtube.com/watch?v=uaQEGLKtw54) 
+ [Amazon DynamoDB deep dive: Advanced design patterns(DAT403-R1) ](https://www.youtube.com/watch?v=6yqfmXiZTlM) 

 **관련 예시:** 
+  [Amazon Redshift 데이터 공유를 사용하여 데이터 패턴 최적화](https://wellarchitectedlabs.com/sustainability/300_labs/300_optimize_data_pattern_using_redshift_data_sharing/) 
+  [데이터베이스 마이그레이션](https://github.com/aws-samples/aws-database-migration-samples) 
+  [MS SQL Server - AWS Database Migration Service(DMS) 복제 데모](https://github.com/aws-samples/aws-dms-sql-server) 
+  [데이터베이스 현대화 실습 워크숍](https://github.com/aws-samples/amazon-rds-purpose-built-workshop) 
+  [Amazon Neptune 샘플](https://github.com/aws-samples/amazon-neptune-samples) 

# PERF04-BP02 사용 가능한 옵션 평가
<a name="perf_right_database_solution_evaluate_options"></a>

 데이터 관리 솔루션을 선택하기 전에 사용 가능한 데이터베이스 옵션과 데이터베이스 옵션을 통해 성능을 최적화하는 방법을 이해해야 합니다. 로드 테스트를 통해 워크로드에 중요한 데이터베이스 지표를 식별하십시오. 데이터베이스 옵션을 탐색하면서 파라미터 그룹, 스토리지 옵션, 메모리, 컴퓨팅, 읽기 전용 복제본, 최종 일관성, 연결 풀링 및 캐싱 옵션과 같은 다양한 측면을 고려해야 합니다. 지표를 개선하려면 다음과 같은 다양한 구성 옵션을 사용해 보십시오. 

 **원하는 결과:** 워크로드에서 데이터 유형에 따라 하나 이상의 데이터베이스 솔루션을 사용할 수 있습니다. 데이터베이스 기능과 이점이 데이터 특성, 액세스 패턴 및 워크로드 요구 사항과 최적으로 맞아떨어집니다. 데이터베이스 성능과 비용을 최적화하려면 데이터 액세스 패턴을 평가하여 적절한 데이터베이스 옵션을 결정해야 합니다. 허용 가능한 쿼리 시간을 평가하여 선택한 데이터베이스 옵션이 요구 사항을 충족할 수 있는지 확인합니다. 

 **일반적인 안티 패턴:** 
+  데이터 액세스 패턴을 식별하지 않습니다. 
+  선택한 데이터 관리 솔루션의 구성 옵션을 알지 못합니다. 
+  다른 사용 가능한 구성 옵션을 고려하지 않고 인스턴스 크기만 늘립니다. 
+  선택한 솔루션의 확장 특성을 테스트하지 않습니다. 

 

 **이 모범 사례 수립의 이점:** 데이터베이스 옵션을 탐색하고 실험하여 인프라 비용을 절감하고, 성능 및 확장성을 향상하고, 워크로드를 유지하는 데 들여야 하는 수고를 줄일 수 있습니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 높음 
+  불필요하게 타협하며 모든 데이터베이스에 적합하게 *하나로* 최적화해야 할 필요는 없습니다. 
+  트래픽 패턴과 일치하도록 데이터베이스 솔루션을 구성하지 않으면 비용이 증가합니다. 
+  확장 문제로 인해 운영 문제가 발생할 수 있습니다. 
+  데이터가 필요한 수준으로 보호되지 않을 수 있습니다. 

## 구현 가이드
<a name="implementation-guidance"></a>

 데이터베이스 옵션을 구성할 수 있도록 워크로드 데이터 특성을 파악하십시오. 로드 테스트를 실행하면 주요 성능 지표와 병목 현상을 식별할 수 있습니다. 이러한 특성과 지표를 사용하여 데이터베이스 옵션을 평가하고 다른 구성을 실험합니다. 


|  AWS 서비스  |  Amazon RDS, Amazon Aurora  |  Amazon DynamoDB  |  Amazon DocumentDB  |  Amazon ElastiCache  |  Amazon Neptune  |  Amazon Timestream  |  Amazon Keyspaces  |  Amazon QLDB  | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | 
|  컴퓨팅 규모 조정  |  인스턴스 크기 증가, 로드 변화에 따라 Aurora 서버리스 인스턴스 자동 확장  |  온디맨드 용량 모드로 자동 읽기/쓰기 확장 또는 프로비저닝된 용량 모드에서 프로비저닝된 읽기/쓰기 용량 자동 확장  |  인스턴스 크기 증가  |  인스턴스 크기 증가, 클러스터에 노드 추가  |  인스턴스 크기 증가  |  용량을 조정하기 위해 자동 확장  |  온디맨드 용량 모드로 자동 읽기/쓰기 확장 또는 프로비저닝된 용량 모드에서 프로비저닝된 읽기/쓰기 용량 자동 확장  |  용량을 조정하기 위해 자동 확장  | 
|  읽기 스케일 아웃  |  모든 엔진에서 읽기 전용 복제본 지원, Aurora에서 읽기 전용 복제본 인스턴스의 자동 확장 지원  |  프로비저닝된 읽기 용량 단위 증대  |  읽기 전용 복제본  |  읽기 전용 복제본  |  읽기 전용 복제본, 읽기 전용 복제본 인스턴스의 자동 확장 지원  |  자동 확장  |  프로비저닝된 읽기 용량 단위 증대  |  문서화된 동시성 제한까지 자동 스케일 업  | 
|  쓰기 스케일 아웃  |  인스턴스 크기 증가, 애플리케이션에서 쓰기를 일괄 처리하거나 데이터베이스 앞에 대기열 추가. 여러 인스턴스에 걸쳐 애플리케이션 수준 샤딩을 통한 수평 확장  |  프로비저닝된 쓰기 용량 단위 증대 파티션 수준 쓰기 제한을 방지하기 위해 최적의 파티션 키 보장  |  기본 인스턴스 크기 증가  |  클러스터 모드에서 Redis를 사용하여 쓰기를 여러 샤드로 분산  |  인스턴스 크기 증가  |  크기를 조정하는 동안 쓰기 요청이 제한될 수 있음. 제한 예외가 발생하는 경우 동일하거나 더 높은 처리량(throughput)으로 데이터를 계속 전송하여 자동 크기 조정 동시 쓰기 요청을 줄이기 위한 일괄 쓰기  |  프로비저닝된 쓰기 용량 단위 증대 파티션 수준 쓰기 제한을 방지하기 위해 최적의 파티션 키 보장  |  문서화된 동시성 제한까지 자동 스케일 업  | 
|  엔진 구성  |  파라미터 그룹  |  해당 사항 없음  |  파라미터 그룹  |  파라미터 그룹  |  파라미터 그룹  |  해당 사항 없음  |  해당 사항 없음  |  해당 사항 없음  | 
|  캐싱  |  인 메모리 캐싱, 파라미터 그룹을 통해 구성 가능. ElastiCache for Redis와 같은 전용 캐시와 결합하여 일반적으로 액세스하는 항목에 대한 요청 오프로드  |  DAX(DAX) 완전관리형 캐시 지원  |  인 메모리 캐싱. 필요에 따라 ElastiCache for Redis와 같은 전용 캐시와 결합하여 일반적으로 액세스하는 항목에 대한 요청 오프로드  |  기본 함수가 캐싱됨  |  쿼리 결과 캐시를 사용하여 읽기 전용 쿼리의 결과 캐시  |  Timestream에는 고성능 인 메모리 계층을 포함한 2개의 스토리지 계층 존재  |  ElastiCache for Redis와 같은 별도의 전용 캐시를 배포하여 일반적으로 액세스하는 항목에 대한 요청 오프로드  |  해당 사항 없음  | 
|  고가용성/재해 복구  |  프로덕션 워크로드에 대한 권장 구성으로 두 번째 가용 영역에서 대기 인스턴스를 실행하여 리전 내에서 복원력 제공.  리전 간 복원력의 경우 Aurora 글로벌 데이터베이스 사용 가능  |  리전 내에서 고가용성 제공. DynanoDB 글로벌 테이블을 사용하여 리전에 걸쳐 테이블 복제 가능  |  가용성을 위해 여러 가용 영역에 걸쳐 다수의 인스턴스 생성.  스냅샷은 리전 간에 공유할 수 있으며 클러스터는 DMS를 통해 복제하여 크로스 리전 복제/재해 복구 제공  |  프로덕션 클러스터 구성의 경우 보조 가용 영역에 노드를 하나 이상 생성할 것을 권장.  ElastiCache 글로벌 데이터 스토어를 사용하여 여러 리전에서 클러스터 복제 가능  |  다른 가용 영역의 읽기 전용 복제본이 장애 조치 대상 역할을 함.  스냅샷은 리전 간에 공유할 수 있으며, Neptune 스트림으로 클러스터를 복제하여 2개의 서로 다른 리전에 있는 두 클러스터 간에 데이터 복제 가능  |  리전 내에서 고가용성 제공. 크로스 리전 복제를 수행하려면 Timestream SDK로 사용자 지정 애플리케이션을 개발해야 함  |  리전 내에서 고가용성 제공.  크로스 리전 복제에는 사용자 지정 애플리케이션 로직 또는 타사 도구 필요  |  리전 내에서 고가용성 제공.  리전 간에 복제하려면 Amazon QLDB 분개장의 콘텐츠를 S3 버킷으로 내보내고 크로스 리전 복제를 위한 버킷을 구성  | 

 

 **구현 단계** 

1.  선택한 데이터베이스에 사용할 수 있는 구성 옵션은 무엇입니까? 

   1.  Amazon RDS 및 Aurora용 파라미터 그룹을 사용하면 캐시에 할당된 메모리나 데이터베이스의 시간대를 조정하는 것처럼 일반적인 데이터베이스 엔진 수준 설정을 조정할 수 있습니다. 

   1.  Amazon RDS, Aurora, Neptune, Amazon DocumentDB 등의 프로비저닝된 데이터베이스 서비스와 Amazon EC2에 배포된 데이터베이스 서비스의 경우 인스턴스 유형과 프로비저닝된 스토리지를 변경하고 읽기 전용 복제본을 추가할 수 있습니다. 

   1.  DynamoDB를 사용하면 온디맨드 및 프로비저닝이라는 두 용량 모드를 지정할 수 있습니다. 다양한 워크로드를 고려하여 언제든지 모드를 전환하고 프로비저닝 모드에서 할당된 용량을 늘릴 수 있습니다. 

1.  워크로드에 읽기 또는 쓰기 작업이 많습니까?  

   1.  읽기 오프로드(읽기 전용 복제본, 캐싱 등)에 사용할 수 있는 솔루션은 무엇입니까?  

      1.  DynamoDB 테이블의 경우 캐싱을 위해 DAX를 사용하여 읽기를 오프로드할 수 있습니다. 

      1.  관계형 데이터베이스의 경우 ElastiCache for Redis 클러스터를 생성하고 캐시에서 먼저 읽으며 요청한 항목이 없으면 데이터베이스로 폴백하도록 애플리케이션을 구성할 수 있습니다. 

      1.  Amazon RDS, Aurora 등 관계형 데이터베이스와 Neptune, Amazon DocumentDB 등 프로비저닝된 NoSQL 데이터베이스는 모두 읽기 전용 복제본을 추가하여 워크로드의 읽기 부분을 오프로드할 수 있도록 지원합니다. 

      1.  DynamoDB와 같은 서버리스 데이터베이스는 자동으로 크기가 조정됩니다. 워크로드를 처리하기에 충분한 읽기 용량 단위(RCU)가 프로비저닝되었는지 확인합니다. 

   1.  쓰기 확장(파티션 키 샤딩, 대기열 추가 등)에 사용할 수 있는 솔루션은 무엇입니까? 

      1.  관계형 데이터베이스의 경우 인스턴스 크기를 늘려 확장된 워크로드를 수용하거나 프로비저닝된 IOPS를 늘려 기본 스토리지에 대한 처리량(throughput)을 증대할 수 있습니다. 
         +  데이터베이스에 직접 쓰는 대신 데이터베이스 앞에 대기열을 적용할 수도 있습니다. 이 패턴을 사용하면 데이터베이스에서 수집 정보를 분리하고 흐름 속도를 제어하여 데이터베이스가 과부하되지 않도록 할 수 있습니다.  
         +  단기간 트랜잭션을 많이 만들지 않고 쓰기 요청을 일괄 처리하면 쓰기 볼륨이 많은 관계형 데이터베이스의 처리량(throughput)을 향상시킬 수 있습니다. 

      1.  DynamoDB와 같은 서버리스 데이터베이스는 자동으로 쓰기 처리량(throughput)을 확장하거나 용량 모드에 따라 프로비저닝된 쓰기 용량 단위(WCU)를 조정하여 확장할 수 있습니다.  
         +  그러나 지정된 파티션 키에 대한 처리량 한계에 도달한 경우에도 *핫* 파티션과 관련된 문제가 발생할 수 있습니다. 이 문제는 보다 고르게 분산된 파티션 키를 선택하거나 파티션 키를 쓰기 샤딩하여 해결할 수 있습니다.  

1.  현재 또는 예상되는 초당 최대 트랜잭션(TPS)은 얼마입니까? 이 트래픽 볼륨과 이 볼륨 \$1X%를 통해 테스트하여 확장 특성을 이해합니다. 

   1.  PostgreSQL용 pg\$1bench와 같은 기본 도구를 사용하여 데이터베이스를 스트레스 테스트하고 병목 현상 및 확장 특성을 이해할 수 있습니다. 

   1.  프로덕션과 유사한 트래픽을 캡처하여 실제 상황뿐만 아니라 합성 워크로드를 시뮬레이션할 수 있도록 반복해야 합니다. 

1.  서버리스 또는 탄력적으로 확장 가능한 컴퓨팅을 사용하는 경우 이 확장이 데이터베이스에 미치는 영향을 테스트합니다. 필요한 경우 연결 관리 또는 풀링을 도입하여 데이터베이스에 미치는 영향을 줄이십시오.  

   1.  RDS 프록시는 Amazon RDS 및 Aurora와 함께 사용하여 데이터베이스에 대한 연결을 관리할 수 있습니다.  

   1.  DynamoDB와 같은 서버리스 데이터베이스에는 연계된 연결이 없으니, 프로비저닝된 용량 및 자동 확장 정책을 고려하여 로드 급증을 처리합니다. 

1.  로드를 예측할 수 있습니까? 로드가 급증하는 경우가 있거나 비활성 기간이 있습니까? 

   1.  비활성 기간이 있는 경우 해당 기간에 프로비저닝된 용량 또는 인스턴스 크기를 축소하는 것이 좋습니다. Aurora Serverless V2는 로드를 기반으로 자동 스케일 업 및 스케일 다운됩니다. 

   1.  비 프로덕션 인스턴스의 경우 업무 시간 외에 이러한 인스턴스를 일시 중지하거나 정지하는 것을 고려합니다. 

1.  액세스 패턴과 데이터 특성에 따라 데이터 모델을 세분화하고 분리해야 합니까? 

   1.  AWS DMS 또는 AWS SCT를 사용하여 데이터를 다른 서비스로 옮기는 것을 고려합니다. 

## 구현 계획의 작업 수준: 
<a name="level-of-effort-for-the-implementation-plan-to-establish-this-best-practice-you-must-be-aware-of-your-current-data-characteristics-and-metrics.-gathering-those-metrics-establishing-a-baseline-and-then-using-those-metrics-to-identify-the-ideal-database-configuration-options-is-a-low-to-moderate-level-of-effort.-this-is-best-validated-by-load-tests-and-experimentation."></a>

이 모범 사례를 적용하려면 현재 데이터 특성과 지표를 알고 있어야 합니다. 이러한 지표를 수집하고 기준선을 설정한 다음 해당 지표를 사용하여 이상적인 데이터베이스 구성 옵션을 식별하는 작업에는 *낮은* 수준부터 *중간 수준의* 노력이 필요합니다. 이는 로드 테스트 및 실험을 통해 가장 효과적으로 검증됩니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS를 사용한 클라우드 데이터베이스 ](https://aws.amazon.com/products/databases/?ref=wellarchitected) 
+  [AWS 데이터베이스 캐싱 ](https://aws.amazon.com/caching/database-caching/?ref=wellarchitected) 
+  [Amazon DynamoDB Accelerator ](https://aws.amazon.com/dynamodb/dax/?ref=wellarchitected) 
+  [Amazon Aurora 모범 사례 ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html?ref=wellarchitected) 
+  [Amazon Redshift 성능 ](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html?ref=wellarchitected) 
+  [Amazon Athena 10가지 성능 향상 팁 ](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/?ref=wellarchitected) 
+  [Amazon Redshift Spectrum 모범 사례 ](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/?ref=wellarchitected) 
+  [Amazon DynamoDB 모범 사례](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html?ref=wellarchitected) 

 

 **관련 동영상:** 
+  [AWS purpose-built databases(DAT209-L) ](https://www.youtube.com/watch?v=q81TVuV5u28)
+ [Amazon Aurora storage demystified: How it all works(DAT309-R) ](https://www.youtube.com/watch?v=uaQEGLKtw54) 
+  [Amazon DynamoDB deep dive: Advanced design patterns(DAT403-R1) ](https://www.youtube.com/watch?v=6yqfmXiZTlM)

 **관련 예시:** 
+  [Amazon DynamoDB 예시](https://github.com/aws-samples/aws-dynamodb-examples) 
+  [AWS 데이터베이스 마이그레이션 샘플](https://github.com/aws-samples/aws-database-migration-samples) 
+  [데이터베이스 현대화 워크숍](https://github.com/aws-samples/amazon-rds-purpose-built-workshop) 
+  [Amazon RDS for Postgress DB에서 파라미터를 사용한 작업](https://github.com/awsdocs/amazon-rds-user-guide/blob/main/doc_source/Appendix.PostgreSQL.CommonDBATasks.Parameters.md) 

# PERF04-BP03 데이터베이스 성능 지표 수집 및 기록
<a name="perf_right_database_solution_collect_metrics"></a>

 데이터 관리 시스템의 성능을 이해하려면 관련 지표를 추적해야 합니다. 이러한 지표를 통해 데이터 관리 리소스를 최적화하고, 워크로드 요구 사항을 충족하며, 워크로드의 성능을 명확하게 한눈에 파악할 수 있습니다. 데이터베이스 성능과 관련된 성능 측정값을 기록하는 도구, 라이브러리 및 시스템을 사용합니다. 

 

 데이터베이스가 호스팅되는 시스템과 관련된 지표(예: CPU, 스토리지, 메모리, IOPS)와 데이터 자체에 액세스하기 위한 지표(예: 초당 트랜잭션, 쿼리 속도, 응답 시간, 오류)가 있습니다. 모든 지원 또는 운영 직원이 이러한 지표에 쉽게 액세스할 수 있어야 하며, 지표에 추세와 이상 징후, 병목 현상을 식별할 수 있는 충분한 기록이 남겨져 있어야 합니다. 

 

 **원하는 결과:** 데이터베이스 워크로드의 성능을 모니터링하려면 일정 기간에 걸쳐 여러 성능 지표를 기록해야 합니다. 이를 통해 이상 징후를 탐지할 수 있을뿐더러 비즈니스 지표를 기준으로 성능을 측정하여 워크로드 요구 사항을 충족하는지 확인할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  지표에 대해 수동 로그 파일 검색만 사용합니다. 
+  팀에서 사용하는 내부 도구에만 지표를 게시하고 워크로드를 종합적으로 바라보고 있지 않습니다. 
+  선택한 모니터링 소프트웨어에서 기록한 기본 지표만 사용합니다. 
+  문제가 발생한 경우에만 지표를 검토합니다. 
+  시스템 수준 지표만 모니터링하며 데이터 액세스나 사용량 지표는 캡처하지 않습니다. 

 **이 모범 사례 수립의 이점:** 성능 기준선을 설정하면 워크로드의 정상적인 동작과 요구 사항을 이해하는 데 도움이 됩니다. 비정상적인 패턴을 더 빨리 식별하고 디버깅할 수 있어 데이터베이스의 성능과 신뢰성이 향상됩니다. 성능 저하 없이 최적의 비용을 보장하도록 데이터베이스 용량을 구성할 수 있습니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 높음 
+  정상 상태와 정상 성능 수준을 구분하지 못하면 문제를 식별하고 의사 결정을 내리는 데 어려움을 겪을 수 있습니다. 
+  잠재적인 비용 절감 효과가 나타나지 않을 수 있습니다. 
+  신뢰성 또는 성능 저하를 초래할 수 있는 성장 패턴이 식별되지 않습니다. 

## 구현 가이드
<a name="implementation-guidance"></a>

 데이터베이스 관련 지표를 식별, 수집 및 집계하고 상관 관계를 지정하십시오. 지표에는 데이터베이스를 지원하는 기본 시스템과 데이터베이스 지표가 모두 포함되어야 합니다. 기본 시스템 지표에는 CPU 활용률, 메모리, 사용 가능한 디스크 스토리지, 디스크 I/O, 네트워크 인바운드 및 아웃바운드 지표가 포함될 수 있습니다. 데이터베이스 지표는 초당 트랜잭션, 상위 쿼리, 평균 쿼리 속도, 응답 시간, 인덱스 사용량, 테이블 잠금, 쿼리 시간 초과 및 열린 연결 수로 구성 가능합니다. 이 데이터는 워크로드의 성능과 데이터베이스 솔루션의 사용 방법을 이해하는 데 중요합니다. 이러한 지표를 데이터 중심 전략에 포함시켜 워크로드의 리소스를 조정하고 최적화할 수 있습니다.  

 **구현 단계:** 

1.  어떤 데이터베이스 지표를 추적해야 합니까? 

   1.  [Amazon RDS 모니터링 지표](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Monitoring.html) 

   1.  [성능 개선 도우미를 사용한 모니터링](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) 

   1.  [향상된 모니터링](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.overview.html) 

   1.  [DynamoDB 지표](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/metrics-dimensions.html) 

   1.  [DynamoDB DAX 모니터링](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.Monitoring.html) 

   1.  [MemoryDB 모니터링](https://docs.aws.amazon.com/memorydb/latest/devguide/monitoring-cloudwatch.html) 

   1.  [Amazon Redshift 모니터링](https://docs.aws.amazon.com/redshift/latest/mgmt/metrics.html) 

   1.  [시계열 지표 및 차원](https://docs.aws.amazon.com/timestream/latest/developerguide/metrics-dimensions.html) 

   1.  [Aurora용 클러스터 수준 지표](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.Monitoring.Metrics.html) 

   1.  [Amazon Keyspaces 모니터링](https://docs.aws.amazon.com/keyspaces/latest/devguide/monitoring.html) 

   1.  [Amazon Neptune 모니터링](https://docs.aws.amazon.com/neptune/latest/userguide/monitoring.html) 

1.  데이터베이스 모니터링을 통해 운영 성능 이상 문제를 감지하는 기계 학습 솔루션의 이점을 얻을 수 있습니까? 

   1.  [Amazon DevOps Guru for Amazon RDS](https://docs.aws.amazon.com/devops-guru/latest/userguide/working-with-rds.overview.how-it-works.html) 에서는 성능 문제에 대한 가시성을 제공하고 권장 수정 조치를 제안합니다. 

1.  SQL 사용과 관련해서 애플리케이션 수준 세부 정보가 필요합니까? 

   1.  [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html#api-segmentdocuments-sql) 에서는 애플리케이션으로 계측하여 인사이트를 얻고, 단일 쿼리의 모든 데이터 포인트를 정리할 수 있습니다. 

1.  현재 승인되어 사용 중인 로깅 및 모니터링 솔루션이 있습니까? 

   1.  [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 는 아키텍처의 리소스 전반에서 지표를 수집할 수 있습니다. 또한 사용자 지정 지표를 수집하고 게시하여 비즈니스 또는 파생 지표를 파악할 수도 있습니다. CloudWatch 또는 타사 솔루션을 사용하여 임계값 위반 시점을 나타내는 경보를 설정합니다. 

1.  보안 및 운영 목표에 맞게 데이터 보존 정책을 식별하고 구성했습니까? 

   1.  [CloudWatch 지표용 기본 데이터 보존](https://aws.amazon.com/cloudwatch/faqs/#AWS_resource_.26_custom_metrics_monitoring) 

   1.  [CloudWatch Logs용 기본 데이터 보존](https://aws.amazon.com/cloudwatch/faqs/#Log_management) 

 **구현 계획의 작업 수준: **이 경우에는 *보통* 수준의 노력을 들여 모든 데이터베이스 리소스에서 지표를 식별, 추적, 수집 및 집계하고 상관 관계를 지정할 수 있습니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+ [AWS 데이터베이스 캐싱 ](https://aws.amazon.com/caching/database-caching/) 
+ [ Amazon Athena 10가지 성능 향상 팁 ](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/)
+ [ Amazon Aurora 모범 사례 ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html)
+  [Amazon DynamoDB Accelerator ](https://aws.amazon.com/dynamodb/dax/)
+ [Amazon DynamoDB 모범 사례 ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html) 
+ [Amazon Redshift Spectrum 모범 사례 ](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/) 
+ [Amazon Redshift 성능 ](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html) 
+ [AWS를 사용한 클라우드 데이터베이스 ](https://aws.amazon.com/products/databases/) 
+  [Amazon RDS 성능 개선 도우미](https://aws.amazon.com/rds/performance-insights/) 

 **관련 동영상:** 
+ [AWS purpose-built databases(DAT209-L) ](https://www.youtube.com/watch?v=q81TVuV5u28) 
+  [Amazon Aurora storage demystified: How it all works(DAT309-R) ](https://www.youtube.com/watch?v=uaQEGLKtw54)
+  [Amazon DynamoDB deep dive: Advanced design patterns(DAT403-R1) ](https://www.youtube.com/watch?v=6yqfmXiZTlM)

 **관련 예시:** 
+  [레벨 100: CloudWatch 대시보드를 통한 모니터링](https://wellarchitectedlabs.com/performance-efficiency/100_labs/100_monitoring_with_cloudwatch_dashboards/) 
+  [AWS 데이터 모으기 지표 수집 프레임워크](https://github.com/awslabs/aws-dataset-ingestion-metrics-collection-framework) 
+  [Amazon RDS 모니터링 워크숍](https://www.workshops.aws/?tag=Enhanced%20Monitoring) 

# PERF04-BP04 액세스 패턴을 기준으로 데이터 스토리지 선택
<a name="perf_right_database_solution_access_patterns"></a>

 워크로드의 액세스 패턴을 기준으로 하여 사용할 서비스와 기술을 결정합니다. 액세스 패턴은 성능과 확장 등 기능과 관련 없는 요구 사항은 물론 데이터베이스 및 스토리지 솔루션의 선택에 큰 영향을 미칩니다. 첫 번째로 생각해 볼 점은 트랜잭션, ACID 규정 준수 및 일관된 읽기의 필요성입니다. 모든 데이터베이스가 이를 지원하지는 않으며, 대부분의 NoSQL 데이터베이스는 최종 정합성 모델을 제공합니다. 두 번째로 중요한 점은 시간과 공간에 따른 쓰기 및 읽기 분포입니다. 전 세계에 분산된 애플리케이션의 경우 최적의 스토리지 솔루션을 식별할 수 있도록 트래픽 패턴, 지연 시간 및 액세스 요구 사항을 고려해야 합니다. 세 번째로 쿼리 패턴 유연성, 임의의 액세스 패턴 및 일회성 쿼리를 선택하는 것도 중요합니다. 텍스트 및 자연어 처리, 시계열 및 그래프에 대한 고도로 전문화된 쿼리 기능을 중심으로 한 고려 사항도 염두에 두어야 합니다. 

 **원하는 결과:** 식별되어 문서화된 데이터 액세스 패턴을 기반으로 데이터 스토리지를 선택했습니다. 여기에는 가장 일반적인 읽기, 쓰기 및 삭제 쿼리, 임시 계산 및 집계 필요성, 데이터 복잡성, 데이터 상호 종속성 및 필수 일관성 요구 사항이 포함될 수 있습니다. 

 **일반적인 안티 패턴:** 
+  운영 관리를 간소화하기 위해 데이터베이스 공급업체를 하나만 선택합니다. 
+  시간이 지나면 데이터 액세스 패턴이 일관되게 유지될 것이라고 가정합니다. 
+  애플리케이션에 복잡한 트랜잭션, 롤백 및 일관성 로직을 구현합니다. 
+  데이터베이스가 높은 트래픽 버스트를 지원하도록 구성되어 있어 데이터베이스 리소스가 대부분의 시간 동안 유휴 상태로 유지됩니다. 
+  트랜잭션 및 분석 용도로 공유 데이터베이스를 사용합니다. 

 **이 모범 사례 정립의 이점:** 액세스 패턴을 기반으로 데이터 스토리지를 선택하고 최적화하면 개발 복잡성을 줄이고 성능 기회를 최적화하는 데 도움이 됩니다. 읽기 전용 복제본, 글로벌 테이블, 데이터 파티셔닝 및 캐싱을 사용해야 하는 시기를 파악하면 워크로드 요구 사항에 따라 운영 오버헤드를 줄이고 규모를 확장할 수 있습니다. 

 **이 모범 사례를 정립되지 않을 경우 노출되는 위험의 수준:** 보통 

## 구현 가이드
<a name="implementation-guidance"></a>

 데이터 액세스 패턴을 식별하고 평가하여 올바른 스토리지 구성을 선택하십시오. 각 데이터베이스 솔루션에는 스토리지 솔루션을 구성하고 최적화하는 데 사용하는 옵션이 있습니다. 수집된 지표와 로그로 옵션을 실험하여 최적의 구성을 찾을 수 있습니다. 다음 테이블에서 데이터베이스 서비스별 스토리지 옵션을 검토하십시오. 


|  AWS 서비스  |  Amazon RDS, Amazon Aurora  |  Amazon DynamoDB  |  Amazon DocumentDB  |  Amazon ElastiCache  |  Amazon Neptune  |  Amazon Timestream  |  Amazon Keyspaces  |  Amazon QLDB  | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | 
|  스토리지 확장  |  프로비저닝된 스토리지를 자동 확장하는 데 사용 가능한 스토리지 자동 확장 옵션을 이용하면 프로비저닝된 IOPS 스토리지 유형을 활용할 때 프로비저닝된 스토리지를 독립적으로 확장할 수 있습니다.  |  자동으로 확장됩니다. 테이블은 크기에 제한이 없습니다.  |  스토리지 자동 확장 옵션을 사용할 수 있는 프로비저닝된 확장 스토리지입니다.  |  스토리지는 인스턴스 유형 또는 개수에 연결된 메모리 내에 있습니다.  |  스토리지 자동 확장 옵션을 사용하여 프로비저닝된 스토리지를 자동으로 확장할 수 있습니다.  |  인 메모리 및 마그네틱 계층에 대한 보존 기간을 일 단위로 구성합니다.  |  테이블 스토리지를 자동으로 확장 및 축소합니다.  |  자동으로 확장됩니다. 테이블은 크기에 제한이 없습니다.  | 

 

 **구현 단계:** 

1.  예상되는 데이터 및 트래픽 증가를 식별하고 문서화하십시오. 

   1.  Amazon RDS 및 Aurora에서는 문서화된 한도까지 스토리지 자동 확장을 지원합니다. 이 한도를 넘어서는 경우 데이터를 아카이브하고 분석을 위해 과거 데이터를 집계하거나 샤딩을 통해 수평으로 확장하려면 Amazon S3로의 이전을 고려하십시오. 

   1.  DynamoDB 및 Amazon S3에서는 거의 무제한에 가까운 스토리지 볼륨으로 자동 확장됩니다. 

   1.  EC2에서 실행 중인 Amazon RDS 인스턴스와 데이터베이스의 크기를 수동으로 조정할 수 있으며, EC2 인스턴스에는 나중에 새 EBS 볼륨을 추가하여 또 다른 스토리지로 활용할 수 있습니다.  

   1.  인스턴스 유형은 활동 변화에 따라 변경될 수 있습니다. 예를 들어, 테스트 과정에서 더 작은 인스턴스로 시작했다가 서비스에 대한 프로덕션 트래픽을 수신하기 시작할 때 인스턴스를 확장하는 것도 가능합니다. Aurora Serverless V2는 로드 변화에 따라 자동으로 확장됩니다.  

1.  정상 성능과 최고 성능(초당 트랜잭션(TPS) 및 초당 쿼리(QPS)), 일관성(ACID 및 최종 일관성)에 대한 요구 사항을 문서화합니다. 

1.  솔루션 배포 측면과 데이터베이스 액세스 요구 사항(글로벌, 다중 가용 영역, 읽기 전용 복제본, 다중 쓰기 노드)을 문서화합니다. 

 **구현 계획의 작업 수준: **데이터 관리 솔루션에 대한 로그나 지표가 없는 경우 데이터 액세스 패턴을 식별하고 문서화하기 전에 이를 생성해야 합니다. 데이터 액세스 패턴이 파악되면 데이터 스토리지를 선택하고 구성하는 데는 *낮은 수준의* 노력이 필요합니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+ [AWS 데이터베이스 캐싱 ](https://aws.amazon.com/caching/database-caching/)
+ [Amazon Athena 10가지 성능 향상 팁 ](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/) 
+ [Amazon Aurora 모범 사례](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html) 
+ [Amazon DynamoDB Accelerator ](https://aws.amazon.com/dynamodb/dax/) 
+ [Amazon DynamoDB 모범 사례 ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html) 
+ [Amazon Redshift Spectrum 모범 사례 ](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/) 
+ [Amazon Redshift 성능 ](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html) 
+  [AWS를 사용한 클라우드 데이터베이스 ](https://aws.amazon.com/products/databases/)
+  [Amazon RDS 스토리지 유형](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) 

 **관련 동영상:** 
+ [AWS purpose-built databases(DAT209-L)](https://www.youtube.com/watch?v=q81TVuV5u28) 
+  [Amazon Aurora storage demystified: How it all works(DAT309-R) ](https://www.youtube.com/watch?v=uaQEGLKtw54)
+ [ Amazon DynamoDB deep dive: Advanced design patterns(DAT403-R1) ](https://www.youtube.com/watch?v=6yqfmXiZTlM)

 **관련 예시:** 
+  [AWS에서 분산 로드 테스트로 실험 및 테스트](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 

# PERF04-BP05 액세스 패턴 및 지표를 기준으로 데이터 스토리지 최적화
<a name="perf_right_database_solution_optimize_metrics"></a>

 성능을 최대한 높이려면 데이터 저장 또는 쿼리 방식을 최적화하는 성능 특성과 액세스 패턴을 사용합니다. 인덱싱, 키 분산, 데이터 웨어하우스 설계, 캐싱 전략 등의 최적화가 시스템 성능이나 전반적인 효율성에 미치는 영향을 측정합니다. 

 **일반적인 안티 패턴:** 
+  지표에 대해 수동 로그 파일 검색만 사용합니다. 
+  지표를 내부 도구에만 게시합니다. 

 **이 모범 사례 정립의 이점:** 워크로드에 필요한 지표가 충족되는지 확인하려면 읽기 및 쓰기와 관련된 데이터베이스 성능 지표를 모니터링해야 합니다. 이 데이터를 사용하여 데이터 스토리지 계층에 대한 읽기 및 쓰기 모두에 대한 새로운 최적화를 추가할 수 있습니다. 

 **이 모범 사례를 정립되지 않을 경우 노출되는 위험의 수준:** 낮음 

## 구현 가이드
<a name="implementation-guidance"></a>

 지표 및 패턴을 기준으로 데이터 스토리지 최적화: 보고된 지표를 사용하여 워크로드에서 성능이 낮은 영역을 식별하고 데이터베이스 구성 요소를 최적화합니다. 각 데이터베이스 시스템에서 평가해야 하는 성능 관련 특성(예: 데이터를 캐싱/인덱싱하거나 여러 시스템으로 분산하는 방법)은 서로 다릅니다. 최적화의 영향을 측정합니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [AWS 데이터베이스 캐싱](https://aws.amazon.com/caching/database-caching/) 
+  [Amazon Athena 10가지 성능 향상 팁](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/) 
+  [Amazon Aurora 모범 사례](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.BestPractices.html) 
+  [Amazon DynamoDB Accelerator](https://aws.amazon.com/dynamodb/dax/) 
+  [Amazon DynamoDB 모범 사례](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BestPractices.html) 
+  [Amazon Redshift Spectrum 모범 사례](https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/) 
+  [Amazon Redshift 성능](https://docs.aws.amazon.com/redshift/latest/dg/c_challenges_achieving_high_performance_queries.html) 
+  [AWS를 사용한 클라우드 데이터베이스](https://aws.amazon.com/products/databases/) 
+  [DevOps Guru for RDS로 성능 이상 분석](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/devops-guru-for-rds.html) 
+  [DynamoDB용 읽기/쓰기 용량 모드](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html) 

 **관련 동영상:** 
+  [AWS purpose-built databases(DAT209-L)](https://www.youtube.com/watch?v=q81TVuV5u28) 
+  [Amazon Aurora storage demystified: How it all works(DAT309-R)](https://www.youtube.com/watch?v=uaQEGLKtw54) 
+  [Amazon DynamoDB deep dive: Advanced design patterns(DAT403-R1)](https://www.youtube.com/watch?v=6yqfmXiZTlM) 

 **관련 예시:** 
+  [Amazon DynamoDB 실습](https://amazon-dynamodb-labs.workshop.aws/hands-on-labs.html) 

# PERF 5  네트워킹 솔루션을 구성하려면 어떻게 해야 합니까?
<a name="w2aac19c11b5c13"></a>

 워크로드에 대한 최적의 네트워크 솔루션은 지연 시간, 처리량 요구 사항, 지터 및 대역폭에 따라 다릅니다. 위치 옵션은 사용자 또는 온프레미스 리소스와 같은 물리적 제약에 따라 결정됩니다. 엣지 로케이션 또는 리소스 배치를 통해 이러한 제약을 상쇄할 수 있습니다. 

**Topics**
+ [

# PERF05-BP01 네트워킹이 성능에 미치는 영향 파악
](perf_select_network_understand_impact.md)
+ [

# PERF05-BP02 사용 가능한 네트워킹 기능 평가
](perf_select_network_evaluate_features.md)
+ [

# PERF05-BP03 하이브리드 워크로드에 적절한 규모의 전용 연결 또는 VPN 선택
](perf_select_network_hybrid.md)
+ [

# PERF05-BP04 로드 밸런싱 및 암호화 오프로딩 활용
](perf_select_network_encryption_offload.md)
+ [

# PERF05-BP05 성능을 개선할 수 있는 네트워크 프로토콜 선택
](perf_select_network_protocols.md)
+ [

# PERF05-BP06 네트워크 요구 사항에 따라 워크로드의 위치 선택
](perf_select_network_location.md)
+ [

# PERF05-BP07 지표를 기준으로 네트워크 구성 최적화
](perf_select_network_optimize.md)

# PERF05-BP01 네트워킹이 성능에 미치는 영향 파악
<a name="perf_select_network_understand_impact"></a>

 네트워크 관련 결정 사항이 워크로드 성능에 영향을 주는 방식을 분석하고 파악합니다. 네트워크는 애플리케이션 구성 요소, 클라우드 서비스, 엣지 네트워크 및 온프레미스 데이터 간의 연결을 담당하므로, 워크로드 성능에 큰 영향을 미칠 수 있습니다. 사용자 경험은 워크로드 성능 외에 네트워크 지연 시간, 대역폭, 프로토콜, 위치, 네트워크 정체, 지터, 처리량(throughput) 및 라우팅 규칙에도 영향을 받습니다. 

 **원하는 결과:** 지연 시간, 패킷 크기, 라우팅 규칙, 프로토콜 및 지원 트래픽 패턴을 포함한 워크로드의 네트워킹 요구 사항 목록을 문서화합니다. 사용 가능한 네트워킹 솔루션을 검토하고 워크로드 네트워킹 특성을 충족하는 서비스를 파악합니다. 클라우드 기반 네트워크는 빠르게 재구축될 수 있으므로 성능 효율성을 개선하려면 네트워크 아키텍처를 지속적으로 변경해야 합니다. 

 **일반적인 안티 패턴:** 
+  모든 트래픽이 기존 데이터 센터를 통과합니다. 
+  실제 사용 요구 사항을 파악하지 않고 Direct Connect 세션을 초과 구축합니다. 
+  네트워킹 솔루션을 정의할 때 워크로드 특성과 암호화 오버헤드를 고려하지 않습니다. 
+  클라우드의 네트워킹 솔루션에 온프레미스 개념과 전략을 적용합니다. 

 **이 모범 사례 수립의 이점:** 네트워킹이 워크로드 성능에 미치는 영향을 이해하면 잠재적인 병목 현상을 식별하고, 사용자 경험을 개선하고, 신뢰성을 높이고, 워크로드 변화에 따라 운영 유지 관리 작업을 줄이는 데 도움이 됩니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 높음 

## 구현 가이드
<a name="implementation-guidance"></a>

 워크로드의 중요한 네트워크 성능 지표를 식별하고 해당 네트워킹 특성을 파악합니다. 벤치마킹 또는 로드 테스트를 사용하여 데이터 기반 접근 방식의 일부로 요구 사항을 정의하고 문서화합니다. 이 데이터를 사용하여 네트워킹 솔루션이 제한되는 위치를 식별하고, 워크로드를 개선하는 구성 옵션을 검사합니다. 사용 가능한 클라우드 네이티브 네트워킹 기능과 옵션 및 이러한 기능과 옵션이 요구 사항을 기준으로 워크로드 성능에 미치는 영향을 파악합니다. 각 네트워킹 기능에는 장단점이 있으며, 워크로드 특성에 맞게 구성하고 필요에 따라 확장할 수 있습니다. 

 **구현 단계:** 

1.  네트워킹 성능 요구 사항을 정의하고 문서화합니다. 

   1.  네트워크 지연 시간, 대역폭, 프로토콜, 위치, 트래픽 패턴(급증 및 빈도), 처리량(throughput), 암호화, 검사 및 라우팅 규칙과 같은 지표가 포함됩니다. 

1.  기본 네트워킹 특성을 파악합니다. 

   1.  [VPC 흐름 로그 ](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 

   1.  [AWS Transit Gateway 지표](https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-cloudwatch-metrics.html) 

   1.  [AWS PrivateLink 지표](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-cloudwatch-metrics.html) 

1.  애플리케이션 네트워킹 특성을 파악합니다. 

   1.  [탄력적 네트워크 어댑터](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-network-performance-ena.html) 

   1.  [AWS App Mesh 지표](https://docs.aws.amazon.com/app-mesh/latest/userguide/envoy-metrics.html) 

   1.  [Amazon API Gateway 지표](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-metrics-and-dimensions.html) 

1.  엣지 네트워킹 특성을 파악합니다. 

   1.  [Amazon CloudFront 지표](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/viewing-cloudfront-metrics.html) 

   1.  [Amazon Route 53 지표](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/monitoring-cloudwatch.html) 

   1.  [AWS Global Accelerator 지표](https://docs.aws.amazon.com/global-accelerator/latest/dg/cloudwatch-monitoring.html) 

1.  하이브리드 네트워킹 특성을 파악합니다. 

   1.  [Direct Connect 지표](https://docs.aws.amazon.com/directconnect/latest/UserGuide/monitoring-cloudwatch.html) 

   1.  [AWS Site-to-Site VPN 지표](https://docs.aws.amazon.com/vpn/latest/s2svpn/monitoring-cloudwatch-vpn.html) 

   1.  [AWS Client VPN 지표](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/monitoring-cloudwatch.html) 

   1.  [AWS 클라우드 WAN 지표](https://docs.aws.amazon.com/vpc/latest/cloudwan/cloudwan-cloudwatch-metrics.html) 

1.  보안 네트워킹 특성을 캡처합니다. 

   1.  [AWS Shield, WAF, Network Firewall 지표](https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html) 

1.  추적 도구로 엔드 투 엔드 성능 지표를 파악합니다. 

   1.  [AWS X-Ray](https://aws.amazon.com/xray/) 

   1.  [Amazon CloudWatch RUM](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) 

1.  네트워크 성능을 벤치마크하고 테스트합니다. 

   1.  [벤치마크](https://aws.amazon.com/premiumsupport/knowledge-center/network-throughput-benchmark-linux-ec2/) 네트워크 처리량(throughput): 인스턴스가 동일한 VPC에 있을 때 EC2 네트워크 성능에 영향을 미칠 수 있는 몇 가지 요인입니다. 동일한 VPC에 있는 EC2 Linux 인스턴스 간의 네트워크 대역폭을 측정합니다. 

   1.  로드 테스트를 [수행하여](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 네트워킹 솔루션 및 옵션을 실험합니다. 

 **구현 계획의 작업 수준: **보통 수준의 *노력을 들여* 워크로드 네트워킹 요구 사항, 옵션 및 사용 가능한 솔루션을 문서화합니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+ [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 
+ [Linux 기반 EC2 향상된 네트워킹 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html) 
+ [Windows의 EC2 향상된 네트워킹 ](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/enhanced-networking.html) 
+ [EC2 배치 그룹 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) 
+ [Linux 인스턴스에서 ENA(Elastic Network Adapter)를 사용하여 향상된 네트워킹 활성화](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html) 
+ [Network Load Balancer ](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
+ [AWS의 네트워킹 제품](https://aws.amazon.com/products/networking/) 
+  [Transit Gateway ](https://docs.aws.amazon.com/vpc/latest/tgw)
+ [Amazon Route 53에서 지연 시간 기반 라우팅으로 전환 ](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/TutorialTransitionToLBR.html) 
+ [VPC 엔드포인트 ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) 
+ [VPC 흐름 로그 ](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 

 **관련 동영상:** 
+ [AWS 및 하이브리드 AWS 네트워크 아키텍처에 대한 연결성(NET317-R1) ](https://www.youtube.com/watch?v=eqW6CPb58gs) 
+ [Optimizing Network Performance for Amazon EC2 Instances(CMP308-R1) ](https://www.youtube.com/watch?v=DWiwuYtIgu0) 
+  [애플리케이션의 글로벌 네트워크 성능 향상](https://youtu.be/vNIALfLTW9M) 
+  [EC2 인스턴스 및 성능 최적화 모범 사례](https://youtu.be/W0PKclqP3U0) 
+  [Amazon EC2 인스턴스의 네트워크 성능 최적화](https://youtu.be/DWiwuYtIgu0) 
+  [Well-Architected Framework의 네트워킹 모범 사례 및 팁](https://youtu.be/wOMNpG49BeM) 
+  [대규모 마이그레이션의 AWS 네트워킹 모범 사례](https://youtu.be/qCQvwLBjcbs) 

 **관련 예시:** 
+  [AWS Transit Gateway 및 확장 가능한 보안 솔루션](https://github.com/aws-samples/aws-transit-gateway-and-scalable-security-solutions) 
+  [AWS 네트워킹 워크숍](https://networking.workshop.aws/) 

# PERF05-BP02 사용 가능한 네트워킹 기능 평가
<a name="perf_select_network_evaluate_features"></a>

클라우드에서 성능을 높일 수 있는 네트워킹 기능을 평가합니다. 테스트, 지표 및 분석을 통해 이러한 기능의 영향을 측정할 수 있습니다. 예를 들어 지연 시간, 패킷 손실 또는 지터를 줄이는 데 사용할 수 있는 네트워크 수준 기능을 활용합니다. 

많은 서비스가 성능 개선을 위해 개발되며 다른 서비스는 일반적으로 네트워크 성능을 최적화하기 위한 기능을 제공합니다. AWS Global Accelerator 및 Amazon CloudFront 등과 같은 서비스는 성능을 개선하기 위해 개발된 반면에 대부분의 다른 서비스는 네트워크 트래픽을 최적화하기 위한 제품 기능을 갖추고 있습니다. 그러므로 워크로드 성능을 개선하는 서비스 기능(예: EC2 인스턴스 네트워크 기능, 강화된 네트워킹 인스턴스 유형, Amazon EBS 최적화 인스턴스, Amazon S3 Transfer Acceleration, CloudFront)을 고려해야 합니다. 

**원하는 결과:** 워크로드 내 구성 요소 인벤토리를 문서화했으며 구성 요소별로 어떤 네트워킹 구성이 성능 요구 사항을 충족하도록 돕는지 파악했습니다. 네트워킹 기능을 평가한 후 성능 지표를 실험 및 측정하여 사용 가능한 기능을 사용하는 방법을 파악했습니다. 

**일반적인 안티 패턴:** 
+ 모든 워크로드를 최종 사용자에게 가까운 AWS 리전이 아니라 본사에 가장 가까운 AWS 리전에 저장합니다. 
+ 워크로드 성능 벤치마크에 실패했는데, 실패한 벤치마크를 기준으로 계속해서 워크로드 성능을 평가하고 있습니다.
+ 성능 개선 옵션을 확인하기 위해 서비스 구성을 검토하지 않습니다. 

**이 모범 사례 확립의 이점:** 모든 서비스 기능 및 옵션을 평가하면 워크로드 성능을 개선하고 인프라 비용을 줄이고 워크로드를 유지 관리하는 데 필요한 작업을 줄이며 전반적인 보안 상태를 개선할 수 있습니다. 전 세계에 분산된 AWS 백본을 사용하여 고객에게 최상의 네트워킹 환경을 제공할 수 있습니다. 

**이 모범 사례가 확립되지 않을 경우 노출되는 위험 수준:** 높음 

## 구현 가이드
<a name="implementation-guidance"></a>

사용 가능한 네트워크 관련 구성 옵션과 이러한 옵션이 워크로드에 미치는 영향을 검토합니다. 성능 최적화에서는 이러한 옵션이 아키텍처와 상호 작용하는 방식과 측정된 성능과 사용자의 체감 성능에 미치는 영향을 파악하는 것이 중요합니다. 

**구현 단계:** 

1. 워크로드 구성 요소 목록을 만듭니다. 

   1.  [AWS 클라우드 WAN](https://aws.amazon.com/cloud-wan/)을 사용하여 조직 네트워크를 구축, 관리 및 모니터링합니다. 

   1. Network Manager를 사용하여 네트워크의 상태를 [파악합니다](https://docs.aws.amazon.com/vpc/latest/tgwnm/what-is-network-manager.html). 기존 구성 관리 데이터베이스(CMDB) 도구를 사용하거나 [AWS Config](https://aws.amazon.com/config/) 등과 같은 도구를 사용하여 워크로드 인벤토리 또는 구성 방식을 생성합니다. 

1. 기존 워크로드인 경우에는 성능 지표의 벤치마크를 식별하고 문서화하여 병목 현상과 개선해야 할 부분에 집중적으로 살펴봅니다. 성능 관련 네트워킹 지표는 비즈니스 요구 사항 및 워크로드 특성을 기준으로 워크로드에 따라 다릅니다. 무엇보다 대역폭, 지연 시간, 패킷 손실, 지터 및 재전송 등과 같은 지표가 워크로드 검토에 중요할 수 있습니다. 

1. 새로운 워크로드인 경우 [로드 테스트](https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws/) 를 수행하여 성능 병목 현상을 파악합니다. 

1. 파악한 성능 병목 현상에 대해 솔루션의 구성 옵션을 검토하여 성능 개선 기회를 파악합니다. 

1. 네트워크 경로 또는 루트를 모르는 경우 [Network Access Analyzer](https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/what-is-vaa.html) 를 사용하여 파악합니다. 

1. 지연 시간을 더욱 단축할 수 있는 네트워크 프로토콜을 검토합니다.
   + [PERF05-BP05 성능을 개선할 수 있는 네트워크 프로토콜 선택](perf_select_network_protocols.md) 

1. 여러 위치에서 AWS Site-to-Site VPN을 사용하여 AWS 리전에 연결하는 경우에는 [가속화된 Site-to-Site VPN 연결](https://docs.aws.amazon.com/vpn/latest/s2svpn/accelerated-vpn.html) 을 살펴보고 네트워킹 성능을 개선할 수 있는 기회가 있는지 검토합니다.

1. 워크로드 트래픽이 여러 계정에 분산된 경우 네트워크 토폴로지 및 서비스를 평가하여 지연 시간을 단축합니다. 
   + 여러 계정을 연결할 때 [VPC 피어링](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) 및 [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/) 사이 운영 및 성능 균형을 평가합니다. AWS Transit Gateway에서는 AWS Site-to-Site VPN 처리량이 단일 [IPsec 최대 한도](https://aws.amazon.com/blogs/networking-and-content-delivery/scaling-vpn-throughput-using-aws-transit-gateway/) 를 초과한 경우 다중 경로를 사용하여 지원합니다. Amazon VPC과(와) AWS Transit Gateway 간 트래픽은 프라이빗 AWS 네트워크에서 유지되어 인터넷에 노출되지 않습니다. AWS Transit Gateway은(는) 수천 개의 AWS 계정 간에 걸쳐 있고 온프레미스 네트워크에 연결되는 모든 VPC를 상호 연결하는 방식을 간소화합니다. AWS Transit Gateway은(는) Resource Access Manager를 사용하여 [여러 계정 간에 공유합니다](https://aws.amazon.com/ram/). 글로벌 네트워크 트래픽의 상태를 파악하기 위해 [Network Manager](https://aws.amazon.com/transit-gateway/network-manager/) 를 사용하여 네트워크 지표를 중앙에서 확인할 수 있습니다. 

1. 위치를 검토하고 사용자와 워크로드 간 거리를 최소화합니다.

   1. [AWS Global Accelerator](https://aws.amazon.com/global-accelerator/) 은(는) Amazon Web Services 글로벌 네트워크 인프라를 사용하여 사용자 트래픽의 성능을 최대 60%까지 개선하는 네트워킹 서비스입니다. 인터넷 연결이 혼잡한 경우 AWS Global Accelerator은(는) 애플리케이션 경로를 최적화하여 패킷 손실, 지터 및 지연 시간을 지속적으로 줄입니다. DNS 구성을 업데이트하거나 클라이언트용 애플리케이션을 변경하지 않고도 가용 영역 또는 AWS 리전 간에 엔드포인트 이동을 간소화하는 고정 IP 주소를 제공합니다. 

   1. [Amazon CloudFront](https://aws.amazon.com/cloudfront/) 은(는) 워크로드 콘텐츠 전송 성능 및 지연 시간을 전역적으로 개선할 수 있습니다. CloudFront은(는) 콘텐츠를 캐시하고 최종 사용자에 대한 지연 시간을 단축할 수 있는 접속 지점을 전 세계에 410개 이상 보유하고 있습니다. 

   1. Amazon Route 53은(는) [지연 시간 기반 라우팅](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-latency.html), [지리적 위치 라우팅](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-geo.html), [지리 근접 라우팅](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-geoproximity.html)및 [IP 기반 라우팅](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-ipbased.html) 옵션을 제공하여 전 세계 고객을 대상으로 워크로드 성능을 개선할 수 있습니다. 워크로드 트래픽 및 사용자 위치를 검토하여 어떤 라우팅 옵션이 워크로드 성능을 최적화하는지 파악합니다. 

1. 스토리지 IOP를 개선하기 위한 추가 Amazon S3 기능을 평가합니다. 

   1.  [Amazon S3 Transfer Acceleration](https://aws.amazon.com/s3/transfer-acceleration/) 은 외부 사용자가 CloudFront의 네트워킹 최적화 이점을 활용하여 Amazon S3에 데이터를 업로드하도록 하는 기능입니다. 이렇게 하면 AWS 클라우드 전용 연결을 사용할 수 없는 원격 위치에서 대량의 데이터를 전송할 수 있습니다. 

   1.  [Amazon S3 다중 리전 액세스 포인트](https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiRegionAccessPoints.html) 는 콘텐츠를 여러 리전으로 복제하고 액세스 포인트 하나를 제공하여 워크로드를 간소화합니다. 다중 리전 액세스 포인트를 사용하는 경우 가장 낮은 지연 시간 버킷을 식별하는 서비스로 데이터를 요청하거나 Amazon S3에 데이터를 쓸 수 있습니다. 

1. 컴퓨팅 리소스 네트워크 대역폭을 검토합니다.

   1. EC2 인스턴스, 컨테이너 및 Lambda 함수에서 사용하는 탄력적 네트워크 인터페이스(ENI)는 흐름 기준으로 제한됩니다. 배치 그룹을 검토하여 [EC2 네트워킹 처리량을 최적화할 수 있습니다.](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html). 흐름 기준에서 병목 현상을 방지하려면 여러 흐름을 사용하도록 애플리케이션을 설계합니다. 컴퓨팅 관련 네트워크 지표를 모니터링하고 이러한 지표에 대한 가시성을 얻으려면 [CloudWatch 지표](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-network-bandwidth.html) 및 [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-network-performance-ena.html](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-network-performance-ena.html)을 사용합니다. `ethtool` 은 ENA 드라이버에 포함되어 있으며 [사용자 지정 지표로](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) CloudWatch에 게시할 수 있는 추가 네트워크 관련 지표를 노출할 수 있습니다. 

   1. 최신 버전의 EC2 인스턴스는 강화된 네트워킹 기능을 활용할 수 있습니다. [N-시리즈 EC2 인스턴스](https://aws.amazon.com/ec2/nitro/)(예: `M5n` 및 `M5dn`)는 4세대 사용자 지정 Nitro card를 활용하여 단일 인스턴스에 최대 100Gbps의 네트워크 처리량을 전달합니다. 이러한 인스턴스는 기본 `M5` 인스턴스에 비해 4배 더 높은 네트워크 대역폭과 패킷 프로세스를 제공하며 네트워크 집약적 애플리케이션에 적합합니다. 

   1. [Amazon Elastic Network Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html) (ENA)는 클러스터 배치 그룹 내에서 인스턴스에 대해 [더 나은 처리량을 제공하여 한층 더 최적화합니다](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html#placement-groups-cluster%23placement-groups-limitations-cluster). 

   1. [Elastic Fabric Adapter](https://aws.amazon.com/hpc/efa/) (EFA)는 AWS에서 높은 수준의 대규모 노드 간 통신이 필요한 워크로드를 실행할 때 사용할 수 있는 Amazon EC2 인스턴스용 네트워크 인터페이스입니다. EFA를 사용하면 MPI(메시지 전달 인터페이스)를 사용하는 HPC(고성능 컴퓨팅) 애플리케이션과 NCCL(NVIDIA Collective Communications Library)을 사용하는 ML(기계 학습) 애플리케이션을 수천 개 CPU 또는 GPU로 확장할 수 있습니다. 

   1. [Amazon EBS 최적화](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) 인스턴스는 최적화된 구성 스택을 사용하고 Amazon EBS I/O를 늘리기 위해 전용 용량을 추가로 제공합니다. 이 최적화를 수행하면 Amazon EBS I/O와 인스턴스의 기타 트래픽 간에 경합이 최소화되므로 EBS 볼륨의 성능을 최대한 높일 수 있습니다. 

**구현 계획의 작업 수준: **

이 모범 사례를 확립하려면 네트워크 성능에 영향을 미치는 현재 워크로드 구성 요소 옵션을 알아야 합니다. 구성 요소 수집, 네트워크 개선 옵션 평가, 개선 사항 실험, 구현 및 문서화는 작업 수준이 *낮음* 에서 *중간* 입니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [Amazon EBS - 최적화 인스턴스](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) 
+  [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 
+  [Amazon EC2 인스턴스 네트워크 대역폭](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html) 
+  [Linux 기반 EC2 향상된 네트워킹](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html) 
+  [Windows의 EC2 향상된 네트워킹](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/enhanced-networking.html) 
+  [EC2 배치 그룹](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) 
+  [Linux 인스턴스에서 ENA(Elastic Network Adapter)를 사용하여 향상된 네트워킹 활성화](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html) 
+  [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
+  [AWS의 네트워킹 제품](https://aws.amazon.com/products/networking/) 
+  [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw) 
+  [Amazon Route 53에서 지연 시간 기반 라우팅으로 전환](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/TutorialTransitionToLBR.html) 
+  [VPC 엔드포인트](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) 
+  [VPC 흐름 로그](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 
+  [클라우드 CMDB 구축](https://aws.amazon.com/blogs/mt/building-a-cloud-cmdb-on-aws-for-consistent-resource-configuration-in-hybrid-environments/) 
+  [AWS Transit Gateway을(를) 사용하여 VPN 처리량 스케일링](https://aws.amazon.com/blogs/networking-and-content-delivery/scaling-vpn-throughput-using-aws-transit-gateway/) 

 **관련 동영상:** 
+  [Connectivity to AWS and hybrid AWS network architectures(AWS 및 하이브리드 AWS 네트워크 아키텍처에 대한 연결성)(NET317-R1)](https://www.youtube.com/watch?v=eqW6CPb58gs) 
+  [Optimizing Network Performance for Amazon EC2 Instances(CMP308-R1)](https://www.youtube.com/watch?v=DWiwuYtIgu0) 
+  [AWS Global Accelerator](https://www.youtube.com/watch?v=lAOhr-5Urfk) 

 **관련 예시:** 
+  [AWS Transit Gateway 및 확장 가능한 보안 솔루션](https://github.com/aws-samples/aws-transit-gateway-and-scalable-security-solutions) 
+  [AWS 네트워킹 워크숍](https://networking.workshop.aws/) 

# PERF05-BP03 하이브리드 워크로드에 적절한 규모의 전용 연결 또는 VPN 선택
<a name="perf_select_network_hybrid"></a>

 AWS에서 온프레미스 및 클라우드 리소스를 연결하는 데 공용 네트워크가 필요한 경우 성능 요구 사항을 충족할 수 있는 충분한 대역폭을 확보해야 합니다. 하이브리드 워크로드에 대한 대역폭 및 지연 시간 요구 사항을 예측하십시오. AWS Direct Connect 또는 VPN 엔드포인트의 크기 요구 사항은 이러한 수치를 바탕으로 결정됩니다. 

 **원하는 결과:** 하이브리드 네트워크 연결이 필요한 워크로드를 배포하는 경우 관리형 및 비관리형 VPN 또는 Direct Connect와 같은 다수의 구성 옵션을 연결에 사용할 수 있습니다. 사용자의 위치와 클라우드 간에 적절한 대역폭 및 암호화 요구 사항이 있는지 확인하면서 각 워크로드에 적합한 연결 유형을 선택합니다. 

 **일반적인 안티 패턴:** 
+  네트워크 암호화 요구 사항에 대해서만 VPN 솔루션을 평가합니다. 
+  백업 또는 병렬 연결 옵션은 평가하지 않습니다. 
+  라우터, 터널 및 BGP 세션에는 기본 구성을 사용합니다. 
+  모든 워크로드 요구 사항(암호화, 프로토콜, 대역폭 및 트래픽 요구 사항)을 이해하거나 식별할 수 없습니다. 

 **이 모범 사례 수립의 이점:** 적절한 크기의 하이브리드 네트워크 솔루션을 선택하고 구성하면 워크로드의 신뢰성이 향상되고 성능을 높일 기회가 극대화됩니다. 워크로드 요구 사항을 파악하고, 미리 계획하고, 하이브리드 솔루션을 평가하여 비용이 많이 드는 물리적 네트워크 변경과 운영 오버헤드를 최소화하는 동시에 출시 시간을 단축할 수 있습니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 높음 

## 구현 가이드
<a name="implementation-guidance"></a>

 대역폭 요구 사항을 기반으로 하이브리드 네트워킹 아키텍처 개발: 하이브리드 애플리케이션의 대역폭 및 지연 시간 요구 사항을 추정합니다. 대역폭 요구 사항에 따라 단일 VPN 또는 Direct Connect 연결로는 충분하지 않을 수 있으며, 여러 연결에 걸쳐 트래픽 로드 밸런싱을 활성화하도록 하이브리드 설정을 설계해야 합니다. 프라이빗 네트워크 연결로 인해 보다 예측 가능하고 일관된 성능을 제공하는 직접 연결이 필요할 수 있습니다. 지연 시간이 일관적이고 지터가 거의 없어야 하는 프로덕션 워크로드에 적합합니다. 

 AWS Direct Connect는 AWS 환경으로의 전용 연결(50Mbps\$110Gbps)을 제공합니다. 그러므로 지연 시간을 관리/제어하고 대역폭을 프로비저닝할 수 있습니다. 따라서 워크로드에서 우수한 성능을 유지하면서 다른 환경에 쉽게 연결할 수 있습니다. AWS Direct Connect 파트너 중 하나를 활용하면 여러 환경에서 엔드 투 엔트 연결 기능을 사용할 수 있으므로 성능이 일관되게 유지되는 확장 네트워크가 제공됩니다. 

 AWS Site-to-Site VPN은 VPC를 위한 관리형 VPN 서비스입니다. VPN 연결을 생성하면 AWS에서 2개의 다른 VPN 엔드포인트로 연결되는 터널을 제공합니다. AWS Transit Gateway를 사용하면 여러 VPC 간의 연결을 간소화하고 단일 VPN 연결을 통해 AWS Transit Gateway에 연결된 모든 VPC에 연결할 수 있습니다. 또한 AWS Transit Gateway를 사용하면 여러 VPN 터널에서 Equal Cost Multi-Path(ECMP) 라우팅 지원을 활성화하여 1.25Gbps IPsec VPN 처리량(throughput) 제한 이상으로 확장할 수 있습니다. 

 **구현 계획의 작업 수준: **보통 수준의 *많은* 하이브리드 네트워크의 워크로드 요구 사항을 평가하고 하이브리드 네트워킹 솔루션을 구현합니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+ [Network Load Balancer ](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
+ [AWS의 네트워킹 제품](https://aws.amazon.com/products/networking/) 
+ [Transit Gateway ](https://docs.aws.amazon.com/vpc/latest/tgw) 
+ [Amazon Route 53에서 지연 시간 기반 라우팅으로 전환](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/TutorialTransitionToLBR.html) 
+ [VPC 엔드포인트 ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) 
+ [VPC 흐름 로그 ](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 
+  [Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) 
+  [확장 가능하고 안전한 다중 VPC AWS 네트워크 인프라 구축](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/welcome.html) 
+  [Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) 
+  [Client VPN](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/what-is.html) 

 **관련 동영상:** 
+ [AWS 및 하이브리드 AWS 네트워크 아키텍처에 대한 연결성(NET317-R1) ](https://www.youtube.com/watch?v=eqW6CPb58gs) 
+ [Optimizing Network Performance for Amazon EC2 Instances(CMP308-R1) ](https://www.youtube.com/watch?v=DWiwuYtIgu0) 
+  [AWS Global Accelerator](https://www.youtube.com/watch?v=lAOhr-5Urfk) 
+  [Direct Connect* *](https://www.youtube.com/watch?v=DXFooR95BYc&t=6s) 
+  [Transit Gateway Connect](https://www.youtube.com/watch?v=_MPY_LHSKtM&t=491s) 
+  [VPN 솔루션](https://www.youtube.com/watch?v=qmKkbuS9gRs) 
+  [VPN 솔루션을 사용한 보안](https://www.youtube.com/watch?v=FrhVV9nG4UM) 

 **관련 예시:** 
+  [AWS Transit Gateway 및 확장 가능한 보안 솔루션](https://github.com/aws-samples/aws-transit-gateway-and-scalable-security-solutions) 
+  [AWS 네트워킹 워크숍](https://networking.workshop.aws/) 

# PERF05-BP04 로드 밸런싱 및 암호화 오프로딩 활용
<a name="perf_select_network_encryption_offload"></a>

 클라우드의 탄력성을 워크로드에 활용할 수 있도록 여러 리소스 또는 서비스에 트래픽을 분산합니다. 로드 밸런싱을 사용하여 암호화 종료를 오프로드하면 성능을 개선하고 트래픽을 효율적으로 관리/라우팅할 수 있습니다. 

 서비스 콘텐츠용으로 여러 인스턴스를 사용할 확장 아키텍처를 구현할 때는 Amazon VPC 내부에서 로드 밸런서를 사용할 수 있습니다. AWS에서는 ELB 서비스의 애플리케이션에 여러 모델을 제공합니다. Application Load Balancer는 HTTP 및 HTTPS 트래픽의 로드 밸런싱에 가장 적합하며, 마이크로서비스 및 컨테이너를 비롯한 현대적 애플리케이션 아키텍처의 제공을 목표로 고급 요청 라우팅을 지원합니다. 

 Network Load Balancer는 성능이 매우 우수해야 하는 TCP 트래픽 로드 밸런싱을 수행하려는 경우에 사용하면 가장 효율적입니다. 또한 지연 시간을 매우 짧게 유지하면서 초당 수백만 개의 요청을 처리할 수 있으며, 예상치 못한 휘발성 트래픽 패턴도 처리할 수 있도록 최적화되어 있습니다. 

 [https://aws.amazon.com/elasticloadbalancing/](https://aws.amazon.com/elasticloadbalancing/) 이 제공하는 통합 인증서 관리 및 SSL/TLS 복호화를 활용하면 로드 밸런서의 SSL 설정을 중앙에서 유연하게 관리하고 CPU 집약적인 작업을 워크로드에서 오프로드할 수 있습니다. 

 **일반적인 안티 패턴:** 
+  기존 로드 밸런서를 통해 모든 인터넷 트래픽을 라우팅합니다. 
+  일반 TCP 로드 밸런싱을 사용하고 각 컴퓨팅 노드에서 SSL 암호화를 처리하도록 합니다. 

 **이 모범 사례 정립의 이점:** 로드 밸런서는 단일 가용 영역 또는 여러 가용 영역에서 애플리케이션 트래픽의 다양한 로드를 처리합니다. 로드 밸런서는 애플리케이션의 내결함성을 유지하는 데 필요한 고가용성, 자동 조정 및 강력한 보안을 제공합니다. 

 **이 모범 사례를 정립되지 않을 경우 노출되는 위험의 수준:** 높음 

## 구현 가이드
<a name="implementation-guidance"></a>

 워크로드에 적합한 로드 밸런서 활용: 워크로드에 적합한 로드 밸런서를 선택합니다. HTTP 요청을 로드 밸런싱해야 하는 경우 Application Load Balancer를 사용하는 것이 좋습니다. 네트워크 및 전송 프로토콜(계층 4 - TCP, UDP) 로드 밸런싱과 성능이 우수하고 지연시간이 짧은 애플리케이션에는 Network Load Balancer를 사용하는 것이 좋습니다. Application Load Balancers는 HTTPS를 지원하고, Network Load Balancer는 TLS 암호화 오프로드를 지원합니다. 

 HTTPS 또는 TLS 암호화의 오프로드 활성화: Elastic Load Balancing에는 통합 인증서 관리, 사용자 인증 및 SSL/TLS 암호 해독이 포함됩니다. 중앙에서 TLS 설정을 관리하고 CPU 집약적 워크로드를 애플리케이션에서 오프로드할 수 있는 유연성을 제공합니다. 로드 밸런서 배포의 일부로 모든 HTTPS 트래픽을 암호화합니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [Amazon EBS - 최적화 인스턴스](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) 
+  [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 
+  [Linux 기반 EC2 향상된 네트워킹](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html) 
+  [Windows의 EC2 향상된 네트워킹](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/enhanced-networking.html) 
+  [EC2 배치 그룹](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) 
+  [Linux 인스턴스에서 ENA(Elastic Network Adapter)를 사용하여 향상된 네트워킹 활성화](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html) 
+  [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
+  [AWS가 포함된 네트워킹 제품](https://aws.amazon.com/products/networking/) 
+  [Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw) 
+  [Amazon Route 53에서 지연 시간 기반 라우팅으로 이전](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/TutorialTransitionToLBR.html) 
+  [VPC 엔드포인트](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) 
+  [VPC 흐름 로그](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 

 **관련 동영상:** 
+  [Connectivity to AWS and hybrid AWS network architectures(NET317-R1)](https://www.youtube.com/watch?v=eqW6CPb58gs) 
+  [Optimizing Network Performance for Amazon EC2 Instances(CMP308-R1)](https://www.youtube.com/watch?v=DWiwuYtIgu0) 

 **관련 예시:** 
+  [AWS Transit Gateway 및 확장 가능한 보안 솔루션](https://github.com/aws-samples/aws-transit-gateway-and-scalable-security-solutions) 
+  [AWS 네트워킹 워크숍](https://networking.workshop.aws/) 

# PERF05-BP05 성능을 개선할 수 있는 네트워크 프로토콜 선택
<a name="perf_select_network_protocols"></a>

 워크로드 성능에 미치는 영향을 기준으로 시스템과 네트워크 간의 통신에 사용할 프로토콜을 결정합니다. 

 원하는 처리량을 달성하려면 지연 시간과 대역폭 간의 관계를 고려해야 합니다. 파일 전송에서 TCP를 사용하는 경우 지연 시간이 길수록 전체 처리량이 줄어듭니다. 이 문제는 TCP 튜닝 및 최적화된 전송 프로토콜을 사용하여 해결되며 경우에 따라 UDP를 사용하기도 합니다. 

 **일반적인 안티 패턴:** 
+  성능 요구 사항과 관계없이 모든 워크로드에 TCP를 사용합니다. 

 **이 모범 사례 수립의 이점:** 워크로드 구성 요소 간 통신에 적합한 프로토콜을 선택하면 해당 워크로드에 대한 성능을 극대화할 수 있습니다. 연결 없는 UDP는 빠른 속도를 허용하지만 재전송 기능 또는 높은 안정성을 제공하지 않습니다. TCP는 모든 기능을 갖춘 프로토콜이지만 패킷 처리에 더 많은 오버헤드가 필요합니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 보통 

## 구현 가이드
<a name="implementation-guidance"></a>

 네트워크 트래픽 최적화: 워크로드의 성능을 최적화하기에 적절한 프로토콜을 선택합니다. 원하는 처리량을 달성하려면 지연 시간과 대역폭 간의 관계를 고려해야 합니다. 파일 전송에서 TCP를 사용하는 경우 지연 시간이 길수록 전체 처리량이 줄어듭니다. 지연 시간 문제는 TCP 튜닝 및 최적화된 전송 프로토콜을 사용하여 해결되며 경우에 따라 UDP를 사용하기도 합니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [Amazon EBS - 최적화 인스턴스](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) 
+  [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 
+  [Linux 기반 EC2 향상된 네트워킹](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html) 
+  [Windows의 EC2 향상된 네트워킹](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/enhanced-networking.html) 
+  [EC2 배치 그룹](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) 
+  [Linux 인스턴스에서 ENA(Elastic Network Adapter)를 사용하여 향상된 네트워킹 활성화](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html) 
+  [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
+  [AWS 기반 네트워킹 제품](https://aws.amazon.com/products/networking/) 
+  [Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw) 
+  [Amazon Route 53에서 지연 시간 기반 라우팅으로 이전](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/TutorialTransitionToLBR.html) 
+  [VPC 엔드포인트](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) 
+  [VPC 흐름 로그](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 

 **관련 동영상:** 
+  [Connectivity to AWS and hybrid AWS network architectures(NET317-R1)](https://www.youtube.com/watch?v=eqW6CPb58gs) 
+  [Optimizing Network Performance for Amazon EC2 Instances(CMP308-R1)](https://www.youtube.com/watch?v=DWiwuYtIgu0) 

 **관련 예시:** 
+  [AWS Transit Gateway 및 확장 가능한 보안 솔루션](https://github.com/aws-samples/aws-transit-gateway-and-scalable-security-solutions) 
+  [AWS 네트워킹 워크숍](https://networking.workshop.aws/) 

# PERF05-BP06 네트워크 요구 사항에 따라 워크로드의 위치 선택
<a name="perf_select_network_location"></a>

 제공되는 클라우드 위치 옵션을 사용하여 네트워크 지연 시간을 줄이고 처리량을 개선합니다. AWS 리전, 가용 영역, 배치 그룹, 엣지 로케이션(예: AWS Outposts, AWS 로컬 영역, AWS Wavelength)을 활용하여 네트워크 지연 시간을 줄이거나 처리량(throughput)을 늘립니다. 

 AWS 클라우드 인프라는 리전 및 가용 영역을 중심으로 구축됩니다. 리전은 가용 영역이 여러 개 포함된 전 세계의 실제 위치입니다. 

 가용 영역은 하나 이상의 개별 데이터 센터로 구성됩니다. 각 데이터 센터는 분리된 시설에 구축되며 이중화된 전력, 네트워킹 및 연결 기능을 갖추고 있습니다. 이러한 가용 영역을 사용하면 단일 데이터 센터에서 기대할 수 있는 것보다 더 높은 가용성, 내결함성 및 확장성을 지닌 프로덕션 애플리케이션과 데이터베이스를 운영할 수 있습니다. 

 다음과 같은 주요 요소를 토대로 하여 배포용으로 적절한 리전을 하나 이상 선택합니다. 
+  **사용자의 위치**: 워크로드 사용자 근처의 리전을 선택하면 사용자가 워크로드를 사용할 때 지연 시간이 단축됩니다. 
+  **데이터의 위치**: 데이터를 많이 사용하는 애플리케이션에서는 데이터 전송 시 지연 시간 병목 현상이 가장 많이 발생합니다. 따라서 애플리케이션 코드는 최대한 데이터와 가까운 위치에서 실행되어야 합니다. 
+  **기타 제약 조건**: 보안 및 규정 준수 등의 제약을 고려해야 합니다. 

 Amazon EC2는 네트워킹용 배치 그룹을 제공합니다. 배치 그룹은 지연 시간을 줄이거나 신뢰성을 높이기 위한 인스턴스의 논리적 그룹입니다. 지원되는 인스턴스 유형이 포함된 배치 그룹과 ENA(Elastic Network Adapter)를 사용하면 지연 시간이 짧은 25Gbps 네트워크에 워크로드를 연결할 수 있습니다. 네트워크 지연 시간이 짧거나 처리량이 높은 경우 또는 두 조건을 모두 충족하는 경우 성능이 개선되는 워크로드에는 배치 그룹을 사용하는 것이 좋습니다. 배치 그룹을 사용하면 네트워크 통신의 지터를 줄일 수 있습니다. 

 지연 시간이 중요한 서비스는 전 세계 엣지 로케이션 네트워크를 사용하여 엣지에서 전송됩니다. 이러한 엣지 로케이션에서는 보통 CDN(콘텐츠 전송 네트워크) 및 DNS(Domain Name System)와 같은 서비스를 제공합니다. 엣지에서 이러한 서비스를 사용함으로써 워크로드 지연 시간을 짧게 유지하면서 콘텐츠 또는 DNS 확인 요청에 응답할 수 있습니다. 이러한 서비스는 지리적 콘텐츠 타게팅(최종 사용자의 위치를 기준으로 각기 다른 콘텐츠 제공) 등의 지리적 서비스나 최종 사용자를 가장 가까운 리전으로 라우팅하는 지연 시간 기반 라우팅(지연 시간이 최소화됨)도 제공합니다. 

 [https://aws.amazon.com/cloudfront/](https://aws.amazon.com/cloudfront/) 는 이미지, 스크립트, 비디오 등의 정적 콘텐츠와 API, 웹 애플리케이션 등의 동적 콘텐츠를 모두 빠르게 전송하는 데 사용할 수 있는 글로벌 CDN입니다. 이 서비스는 사용자에게 고성능 네트워크 연결을 제공하며 콘텐츠를 캐시하는 전 세계 엣지 로케이션 네트워크를 활용합니다. 또한 CloudFront에서는 콘텐츠 업로딩 및 동적 애플리케이션과 같은 기타 여러 기능도 더 빠르게 사용할 수 있으므로, 인터넷을 통해 트래픽을 처리하는 모든 애플리케이션의 성능이 향상됩니다. [https://aws.amazon.com/lambda/edge/](https://aws.amazon.com/lambda/edge/) 는 워크로드의 사용자와 가까운 위치에서 코드를 실행하여 성능을 개선하고 지연 시간을 줄일 수 있는 Amazon CloudFront의 기능입니다. 

 Amazon Route 53는 가용성과 확장성이 뛰어난 클라우드 DNS 웹 서비스입니다. 이 서비스는 www.example.com과 같은 이름을 컴퓨터가 서로 연결하는 데 사용하는 IP 주소(예:192.168.2.1)로 변환하는 방식을 통해 최종 사용자를 인터넷 애플리케이션으로 라우팅하는 매우 안정적이면서도 경제적인 방식을 개발자와 기업에 제공합니다. Route 53는 IPv6와 완벽히 호환됩니다. 

 [https://aws.amazon.com/outposts/](https://aws.amazon.com/outposts/) 는 지연 시간 요구 사항으로 인해 온프레미스에 남아 있어야 하는 워크로드용으로 설계되었습니다. 온프레미스에서 이러한 워크로드는 AWS에 있는 나머지 워크로드와 원활하게 실행되어야 합니다. AWS Outposts는 AWS 설계 하드웨어로 구축된 구성 가능한 완전관리형 컴퓨팅 및 스토리지 랙으로, 온프레미스에서 컴퓨팅 및 스토리지를 실행하는 동시에 클라우드의 광범위한 AWS 서비스에 원활하게 연결할 수 있도록 지원합니다. 

 [https://aws.amazon.com/about-aws/global-infrastructure/localzones/](https://aws.amazon.com/about-aws/global-infrastructure/localzones/) 은 동영상 렌더링 및 그래픽 집약적인 가상 데스크톱 애플리케이션과 같이 10밀리초 미만의 지연 시간이 필요한 워크로드를 실행하도록 설계되었습니다. Local Zones에서는 최종 사용자와 가까운 위치에 컴퓨팅 및 스토리지 리소스를 배치함으로써 제공되는 모든 이점을 실현할 수 있습니다. 

 [https://aws.amazon.com/wavelength/](https://aws.amazon.com/wavelength/) 는 AWS 인프라, 서비스, API 및 도구를 5G 네트워크로 확장하여 5G 디바이스에 초저지연 애플리케이션을 제공하도록 설계되었습니다. Wavelength는 통신 공급자의 5G 네트워크 안에 스토리지와 컴퓨팅을 내장하여 IoT 디바이스, 게임 스트리밍, 자율 주행 차량 및 라이브 미디어 제작 등 10밀리초 미만의 지연 시간이 요구되는 5G 워크로드를 지원합니다. 

 지연 시간을 줄이고 콘텐츠 캐싱을 활성화하려면 엣지 서비스를 사용합니다. 이러한 방식의 이점을 최대한 활용하려면 DNS 및 HTTP/HTTPS용으로 캐시 제어를 올바르게 구성했는지 확인하십시오. 

 **일반적인 안티 패턴:** 
+  모든 워크로드 리소스를 하나의 지리적 위치로 통합합니다. 
+  워크로드 최종 사용자가 아니라 본인과 가장 가까운 리전을 선택했습니다. 

 **이 모범 사례 수립의 이점:** 고객에게 서비스를 제공하려는 모든 위치에서 네트워크를 사용할 수 있는지 확인해야 합니다. AWS의 프라이빗 글로벌 네트워크를 사용하면 고객과 가장 가까운 위치에 워크로드를 배포하여 고객이 경험하는 지연 시간을 최소화할 수 있습니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 보통 

## 구현 가이드
<a name="implementation-guidance"></a>

 올바른 위치를 선택하여 지연 시간 단축: 사용자와 데이터의 위치를 식별합니다. AWS 리전, 가용 영역, 배치 그룹 및 엣지 로케이션을 활용하여 지연 시간을 단축합니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [Amazon EBS - 최적화 인스턴스](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) 
+  [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 
+  [Linux 기반 EC2 향상된 네트워킹](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html) 
+  [Windows의 EC2 향상된 네트워킹](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/enhanced-networking.html) 
+  [EC2 배치 그룹](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) 
+  [Linux 인스턴스에서 ENA(Elastic Network Adapter)를 사용하여 향상된 네트워킹 활성화](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html) 
+  [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
+  [AWS의 네트워킹 제품](https://aws.amazon.com/products/networking/) 
+  [Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw) 
+  [Amazon Route 53에서 지연 시간 기반 라우팅으로 전환](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/TutorialTransitionToLBR.html) 
+  [VPC 엔드포인트](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) 
+  [VPC 흐름 로그](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 

 **관련 동영상:** 
+  [AWS 및 하이브리드 AWS 네트워크 아키텍처에 대한 연결성(NET317-R1)](https://www.youtube.com/watch?v=eqW6CPb58gs) 
+  [Optimizing Network Performance for Amazon EC2 Instances(CMP308-R1)](https://www.youtube.com/watch?v=DWiwuYtIgu0) 

 **관련 예시:** 
+  [AWS Transit Gateway 및 확장 가능한 보안 솔루션](https://github.com/aws-samples/aws-transit-gateway-and-scalable-security-solutions) 
+  [AWS 네트워킹 워크숍](https://networking.workshop.aws/) 

# PERF05-BP07 지표를 기준으로 네트워크 구성 최적화
<a name="perf_select_network_optimize"></a>

 수집 및 분석된 데이터가 제공하는 정보를 사용하여 네트워크 구성 최적화를 결정합니다. 이러한 변경의 영향을 측정한 다음 영향 측정값을 활용해 향후 결정을 내립니다. 

 워크로드에 사용되는 모든 VPC 네트워크에 대해 VPC 흐름 로그를 활성화합니다. VPC 흐름 로그는 VPC의 네트워크 인터페이스에서 전송되고 수신되는 IP 트래픽에 대한 정보를 포착하는 데 사용할 수 있는 기능입니다. VPC 흐름 로그는 특정 트래픽이 인스턴스에 도달하지 않는 이유, 과도하게 제한적인 보안 그룹 규칙을 진단하는 것과 같은 다수의 작업을 수행하는 데 도움이 됩니다. 흐름 로그를 보안 도구로 사용하여 인스턴스에 도달하는 트래픽을 모니터링하고, 네트워크 트래픽을 프로파일링하고, 비정상적인 트래픽 동작을 찾을 수 있습니다. 

 워크로드가 변경되면 네트워킹 지표를 사용하여 네트워킹 구성을 변경합니다. 클라우드 기반 네트워크는 빠르게 재구축될 수 있으므로 성능 효율성을 유지하려면 네트워크 아키텍처를 지속적으로 변경해야 합니다. 

 **일반적인 안티 패턴:** 
+  모든 성능 관련 문제가 애플리케이션 관련 문제라고 가정합니다. 
+  워크로드를 배포한 위치와 가까운 위치에서만 네트워크 성능을 테스트합니다. 

 **이 모범 사례 수립의 이점:**워크로드에 필요한 지표가 충족되는지 확인하려면 네트워크 성능 지표를 모니터링해야 합니다. VPC의 네트워크 인터페이스에서 전송되고 수신되는 IP 트래픽에 대한 정보를 캡처하고 이 데이터를 사용하여 새로운 최적화를 추가하거나 새로운 지리적 리전에 워크로드를 배포할 수 있습니다. 

 **이 모범 사례가 수립되지 않을 경우 노출되는 위험의 수준:** 낮음 

## 구현 가이드
<a name="implementation-guidance"></a>

 VPC 흐름 로그 활성화: VPC 흐름 로그를 사용하면 VPC의 네트워크 인터페이스에서 전송되고 수신되는 IP 트래픽에 대한 정보를 캡처할 수 있습니다. VPC Flow Logs는 특정 트래픽이 인스턴스에 도달하지 않는 원인을 해결하여 과도하게 제한적인 보안 그룹 규칙을 진단하는 것과 같은 다수의 태스크를 수행하는 데 도움을 줍니다. 흐름 로그를 보안 도구로 사용하여 인스턴스에 도달하는 트래픽을 모니터링하고, 네트워크 트래픽을 프로파일링하고, 비정상적인 트래픽 동작을 찾을 수 있습니다. 

 적절한 네트워크 지표 옵션 활성화: 워크로드에 적합한 네트워크 지표를 선택해야 합니다. VPC NAT 게이트웨이, Transit Gateway 및 VPN 터널에 대한 지표를 활성화할 수 있습니다. 

## 리소스
<a name="resources"></a>

 **관련 문서:** 
+  [Amazon EBS - 최적화 인스턴스](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) 
+  [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 
+  [Linux 기반 EC2 향상된 네트워킹](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html) 
+  [Windows의 EC2 향상된 네트워킹](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/enhanced-networking.html) 
+  [EC2 배치 그룹](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html) 
+  [Linux 인스턴스에서 ENA(Elastic Network Adapter)를 사용하여 향상된 네트워킹 활성화](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html) 
+  [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
+  [AWS의 네트워킹 제품](https://aws.amazon.com/products/networking/) 
+  [Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw) 
+  [Amazon Route 53에서 지연 시간 기반 라우팅으로 전환](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/TutorialTransitionToLBR.html) 
+  [VPC 엔드포인트](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) 
+  [VPC 흐름 로그](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) 
+  [Amazon CloudWatch 지표를 사용하여 전역 및 핵심 네트워크 모니터링](https://docs.aws.amazon.com/vpc/latest/tgwnm/monitoring-cloudwatch-metrics.html) 
+  [지속적인 네트워크 트래픽 및 리소스 모니터링](https://docs.aws.amazon.com/whitepapers/latest/security-best-practices-for-manufacturing-ot/continuously-monitor-network-traffic-and-resources.html) 

 **관련 동영상:** 
+  [AWS 및 하이브리드 AWS 네트워크 아키텍처에 대한 연결성(NET317-R1)](https://www.youtube.com/watch?v=eqW6CPb58gs) 
+  [Optimizing Network Performance for Amazon EC2 Instances(CMP308-R1)](https://www.youtube.com/watch?v=DWiwuYtIgu0) 
+  [네트워크 트래픽 모니터링 및 문제 해결](https://www.youtube.com/watch?v=Ed09ReWRQXc) 
+  [Amazon VPC Traffic Mirroring을 통한 트래픽 모니터링 및 가시성 간소화](https://www.youtube.com/watch?v=zPovlZxuZ-c) 

 **관련 예시:** 
+  [AWS Transit Gateway 및 확장 가능한 보안 솔루션](https://github.com/aws-samples/aws-transit-gateway-and-scalable-security-solutions) 
+  [AWS 네트워킹 워크숍](https://networking.workshop.aws/) 
+  [AWS 네트워크 모니터링](https://github.com/aws-samples/monitor-vpc-network-patterns) 