

# SUS 3 소프트웨어 및 아키텍처 패턴을 활용하여 지속 가능성 목표를 지원하려면 어떻게 해야 하나요?
<a name="sus-03"></a>

로드 평준화를 수행하고 배포된 리소스의 높은 활용률을 일관되게 유지하여 소비되는 리소스를 최소화하기 위한 패턴을 구현합니다. 구성 요소는 시간 경과에 따른 사용자 행동의 변화로 인해 사용 부족으로 인해 유휴 상태가 될 수 있습니다. 패턴과 아키텍처를 수정하여 활용률이 낮은 구성 요소를 통합함으로써 전체 활용률을 높입니다. 더 이상 필요하지 않은 구성 요소를 폐기합니다. 워크로드 구성 요소의 성능을 이해하고 리소스를 가장 많이 사용하는 구성 요소를 최적화합니다. 고객이 서비스에 액세스하고 패턴을 구현하는 데 사용하는 디바이스를 숙지하여 디바이스 업그레이드 필요성을 최소화합니다.

**Topics**
+ [

# SUS03-BP01 비동기식 및 예약된 작업을 위한 소프트웨어 및 아키텍처 최적화
](sus_sus_software_a2.md)
+ [

# SUS03-BP02 사용 빈도가 낮거나 전혀 없는 워크로드 구성 요소 제거 또는 리팩터링
](sus_sus_software_a3.md)
+ [

# SUS03-BP03 가장 많은 시간 또는 리소스를 소모하는 코드 영역 최적화
](sus_sus_software_a4.md)
+ [

# SUS03-BP04 디바이스 및 장비에 대한 영향 최적화
](sus_sus_software_a5.md)
+ [

# SUS03-BP05 데이터 액세스 및 스토리지 패턴을 가장 잘 지원하는 소프트웨어 패턴 및 아키텍처 사용
](sus_sus_software_a6.md)

# SUS03-BP01 비동기식 및 예약된 작업을 위한 소프트웨어 및 아키텍처 최적화
<a name="sus_sus_software_a2"></a>

배포된 리소스의 일관되고 높은 사용률을 유지할 수 있도록 대기열 기반과 같은 효율적인 소프트웨어 및 아키텍처 패턴을 사용합니다.

 **일반적인 안티 패턴:** 
+  클라우드 워크로드의 리소스를 과다하게 프로비저닝하여 예상치 못한 수요 급증이 발생합니다.
+  아키텍처가 메시징 구성 요소에 의한 비동기식 메시지의 발신자와 수신자를 분리하지 않습니다.

 **이 모범 사례 확립의 이점:** 
+  효율적인 소프트웨어 및 아키텍처 패턴이 워크로드의 미사용 리소스를 최소화하고 전체적인 효율성을 개선합니다.
+  비동기식 메시지 수신과 관계없이 처리 규모를 조정할 수 있습니다.
+  메시징 구성 요소를 통해 가용성 요구 사항이 완화되어 더 적은 리소스로 이를 충족할 수 있습니다.

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

## 구현 지침
<a name="implementation-guidance"></a>

 구성 요소의 사용률을 균등하게 하고 워크로드의 과다한 프로비저닝을 최소화하는 [이벤트 기반 아키텍처](https://aws.amazon.com/event-driven-architecture/)와 같은 효율적인 아키텍처 패턴을 사용합니다. 효율적인 아키텍처 패턴을 사용하면 시간 경과에 따른 수요 변화로 인해 사용하지 않는 유휴 리소스를 최소화할 수 있습니다.

 워크로드 구성 요소의 요구 사항을 이해하고 리소스의 전체 사용률을 높이는 아키텍처 패턴을 도입합니다. 더 이상 필요하지 않은 구성 요소를 폐기합니다.

### 구현 단계
<a name="implementation-steps"></a>
+  워크로드에 대한 수요를 분석하여 이에 대한 대응 방법을 결정합니다.
+  동기식 응답이 필요하지 않은 요청이나 작업의 경우 대기열 기반 아키텍처 및 Auto Scaling 작업자를 사용하여 사용률을 극대화합니다. 대기열 기반 아키텍처를 고려해야 하는 몇 가지 예는 다음과 같습니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/wellarchitected/latest/framework/sus_sus_software_a2.html)
+  언제든 처리할 수 있는 요청이나 작업의 경우 더 높은 효율을 위해 예약 메커니즘을 사용하여 작업을 일괄 처리합니다. AWS의 예약 메커니즘의 예는 다음과 같습니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/wellarchitected/latest/framework/sus_sus_software_a2.html)
+  아키텍처에서 폴링과 웹후크 메커니즘을 사용하는 경우 이를 이벤트로 바꿉니다. [이벤트 기반 아키텍처](https://docs.aws.amazon.com/lambda/latest/operatorguide/event-driven-architectures.html)를 사용하여 매우 효율적인 워크로드를 구축합니다.
+  [AWS의 서버리스](https://aws.amazon.com/serverless/)를 활용하여 과도하게 프로비저닝된 인프라를 제거합니다.
+  입력 대기 중인 유휴 리소스를 방지하기 위해 아키텍처의 개별 구성 요소의 적절한 크기를 지정합니다.
  +  [AWS Cost Explorer의 적정 크기 조정 권장 사항](https://docs.aws.amazon.com/cost-management/latest/userguide/ce-rightsizing.html) 또는 [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/)를 사용하여 적정 크기 조정 기회를 식별할 수 있습니다.
  +  자세한 내용은 [올바른 크기 조정: 워크로드에 맞게 인스턴스 프로비저닝](https://docs.aws.amazon.com/whitepapers/latest/cost-optimization-right-sizing/cost-optimization-right-sizing.html)을 참조하세요.

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

 **관련 문서:** 
+  [What is Amazon Simple Queue Service?](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html)
+  [What is Amazon MQ?](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/welcome.html)
+  [Scaling based on Amazon SQS](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-using-sqs-queue.html) 
+  [이란??AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)
+  [란 무엇인가요??AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)
+  [Amazon SQS에서 AWS Lambda 사용](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html) 
+  [What is Amazon EventBridge?](https://docs.aws.amazon.com/eventbridge/latest/userguide/what-is-amazon-eventbridge.html)
+ [ Managing Asynchronous Workflows with a REST API ](https://aws.amazon.com/blogs/architecture/managing-asynchronous-workflows-with-a-rest-api/)

 **관련 비디오:** 
+ [AWS re:Invent 2023 - Navigating the journey to serverless event-driven architecture ](https://www.youtube.com/watch?v=hvGuqHp051c)
+ [AWS re:Invent 2023 - Using serverless for event-driven architecture & domain-driven design ](https://www.youtube.com/watch?v=3foMZJSPMI4)
+ [AWS re:Invent 2023 - Advanced event-driven patterns with Amazon EventBridge ](https://www.youtube.com/watch?v=6X4lSPkn4ps)
+ [AWS re:Invent 2023 - Sustainable architecture: Past, present, and future ](https://www.youtube.com/watch?v=2xpUQ-Q4QcM)
+ [ Asynchronous Message Patterns \$1 AWS Events ](https://www.youtube.com/watch?v=-yJqBuwouZ4)

 **관련 예제:** 
+ [AWS Graviton 프로세서 및 Amazon EC2 스팟 인스턴스를 사용하는 이벤트 기반 아키텍처 ](https://catalog.workshops.aws/well-architected-sustainability/en-US/2-software-and-architecture/event-driven-architecture-with-graviton-spot)

# SUS03-BP02 사용 빈도가 낮거나 전혀 없는 워크로드 구성 요소 제거 또는 리팩터링
<a name="sus_sus_software_a3"></a>

사용되지 않아 더 이상 필요하지 않은 구성 요소를 제거하고 활용률이 낮은 구성 요소를 리팩터링하여 워크로드에서 낭비되는 리소스를 최소화합니다.

 **일반적인 안티 패턴:** 
+  워크로드의 개별 구성 요소 사용률 수준을 정기적으로 확인하지 않습니다.
+  AWS 적정 크기 조정 도구(예: [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/))에서 권장 사항을 확인하고 분석하지 않습니다.

 **이 모범 사례 확립의 이점:** 미사용 구성 요소를 제거하면 낭비를 최소화하고 클라우드 워크로드의 전반적인 효율성을 개선할 수 있습니다.

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

## 구현 지침
<a name="implementation-guidance"></a>

클라우드 워크로드에서 사용되지 않거나 사용률이 낮은 구성 요소는 불필요한 컴퓨팅, 스토리지 또는 네트워크 리소스를 사용합니다. 이러한 구성 요소를 제거하거나 리팩터링하여 낭비를 직접 줄이고 클라우드 워크로드의 전반적인 효율성을 개선합니다. 이는 수요 변화 또는 새로운 클라우드 서비스 출시로 시작될 수 있는 반복적인 개선 프로세스입니다. 예를 들어, [AWS Lambda](https://docs.aws.amazon.com/lambda/) 함수 실행 시간의 급격한 저하는 메모리 크기를 줄여야 하는 필요성을 나타낼 수 있습니다. 또한, AWS에서 새로운 서비스와 기능을 출시함에 따라 워크로드에 맞는 최적의 서비스와 아키텍처가 변경될 수 있습니다.

 워크로드 활동을 지속적으로 모니터링하고 개별 구성 요소의 활용률 수준을 개선할 수 있는 기회를 찾아보세요. 유휴 상태인 구성 요소를 제거하고 적절한 크기 조정 작업을 수행하면 클라우드 리소스를 최소화하여 비즈니스 요구 사항을 충족할 수 있습니다.

### 구현 단계
<a name="implementation-steps"></a>
+  **AWS 리소스 인벤토리 생성:** AWS 리소스 인벤토리를 생성합니다. AWS에서 [AWS Resource Explorer](https://docs.aws.amazon.com/resource-explorer/latest/userguide/welcome.html)를 활성화하여 AWS 리소스를 탐색하고 구성할 수 있습니다. 자세한 내용은 [AWS re:Invent 2022 - How to manage resources and applications at scale on AWS](https://www.youtube.com/watch?v=bbgUnKq6PAU)를 참조하세요.
+  **사용률 모니터링:** 워크로드의 중요한 구성 요소(예: [Amazon CloudWatch 지표](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)의 CPU 사용률, 메모리 사용률 또는 네트워크 처리량)에 대한 사용률 지표를 모니터링하고 캡처합니다.
+  **사용되지 않는 구성 요소 식별:** 아키텍처에서 사용되지 않거나 활용도가 낮은 구성 요소를 식별합니다.
  +  안정적인 워크로드를 위해 정기적으로 AWS 적정 크기 조정 도구(예: [AWS Compute Optimizer](https://aws.amazon.com/compute-optimizer/))를 확인하여 유휴 상태이거나, 사용되지 않거나, 활용도가 낮은 구성 요소를 식별합니다.
  +  일시적인 워크로드의 경우 활용률 지표를 평가하여 유휴 상태이거나, 사용되지 않거나, 활용도가 낮은 구성 요소를 식별합니다.
+  **미사용 구성 요소 제거:** 더 이상 필요하지 않은 구성 요소 및 관련 자산(예: Amazon ECR 이미지)을 사용 중지합니다.
  + [ Automated Cleanup of Unused Images in Amazon ECR ](https://aws.amazon.com/blogs/compute/automated-cleanup-of-unused-images-in-amazon-ecr/)
  + [ Delete unused Amazon Elastic Block Store (Amazon EBS) volumes by using AWS Config and AWS Systems Manager](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/delete-unused-amazon-elastic-block-store-amazon-ebs-volumes-by-using-aws-config-and-aws-systems-manager.html)
+  **사용률이 낮은 구성 요소 리팩터링:** 사용률이 낮은 구성 요소를 리팩터링하거나 다른 리소스와 통합하여 사용 효율성을 개선합니다. 예를 들어, 사용률이 낮은 개별 인스턴스에서 데이터베이스를 실행하는 대신 단일 [Amazon RDS](https://aws.amazon.com/rds/) 데이터베이스 인스턴스에 여러 개의 소규모 데이터베이스를 프로비저닝할 수 있습니다.
+  **개선 사항 평가:** [작업 단위를 완료하기 위해 워크로드에서 프로비저닝한 리소스](https://docs.aws.amazon.com/wellarchitected/latest/sustainability-pillar/evaluate-specific-improvements.html)를 파악합니다. 이 정보를 사용하여 구성 요소를 제거하거나 리팩터링하여 달성한 개선 사항을 평가합니다.
  + [ Measure and track cloud efficiency with sustainability proxy metrics, Part I: What are proxy metrics? ](https://aws.amazon.com/blogs/aws-cloud-financial-management/measure-and-track-cloud-efficiency-with-sustainability-proxy-metrics-part-i-what-are-proxy-metrics/) 
  + [ Measure and track cloud efficiency with sustainability proxy metrics, Part II: Establish a metrics pipeline ](https://aws.amazon.com/blogs/aws-cloud-financial-management/measure-and-track-cloud-efficiency-with-sustainability-proxy-metrics-part-ii-establish-a-metrics-pipeline/)

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

 **관련 문서:** 
+ [AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/technology/trusted-advisor/)
+  [Amazon CloudWatch란 무엇인가요?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)
+ [ 올바른 크기 조정: 워크로드에 맞게 인스턴스 프로비저닝 ](https://docs.aws.amazon.com/whitepapers/latest/cost-optimization-right-sizing/cost-optimization-right-sizing.html)
+ [ Optimizing your cost with Rightsizing Recommendations ](https://docs.aws.amazon.com/cost-management/latest/userguide/ce-rightsizing.html)

 **관련 비디오:** 
+ [AWS re:Invent 2023 - Capacity, availability, cost efficiency: Pick three ](https://www.youtube.com/watch?v=E0dYLPXrX_w)

# SUS03-BP03 가장 많은 시간 또는 리소스를 소모하는 코드 영역 최적화
<a name="sus_sus_software_a4"></a>

아키텍처의 여러 구성 요소 내에서 실행되는 코드를 최적화하여 리소스 사용을 최소화하고 성능을 극대화할 수 있습니다.

 **일반적인 안티 패턴:** 
+  리소스 사용에 대한 코드 최적화를 무시합니다.
+  일반적으로 리소스를 늘리는 방법으로 성능 문제에 대응합니다.
+  코드 검토 및 개발 프로세스에서 성능 변경을 추적하지 않습니다.

 **이 모범 사례 확립의 이점:** 효율적인 코드를 사용하면 리소스 사용을 최소화하고 성능을 개선할 수 있습니다.

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

## 구현 지침
<a name="implementation-guidance"></a>

 리소스 사용 및 성능을 최적화하려면 클라우드 아키텍처 기반 애플리케이션의 코드를 포함한 모든 기능 영역을 검사해야 합니다. 빌드 환경 및 프로덕션에서 워크로드의 성능을 지속적으로 모니터링하고 리소스 사용량이 특히 높은 코드 스니펫을 개선할 기회를 식별합니다. 코드 내에서 리소스를 비효율적으로 사용하는 버그 또는 안티 패턴을 식별하기 위해 정기적인 검토 프로세스를 채택합니다. 사용 사례에 대해 동일한 결과를 생성하는 간단하고 효율적인 알고리즘을 활용합니다.

## 구현 단계
<a name="implementation-steps"></a>
+ **효율적인 프로그래밍 언어 사용:** 워크로드에 효율적인 운영 체제와 프로그래밍 언어를 사용합니다. 에너지 효율적인 프로그래밍 언어(Rust 포함)에 대한 자세한 내용은 [Sustainability with Rust](https://aws.amazon.com/blogs/opensource/sustainability-with-rust/)를 참조하세요.
+  **AI 코딩 도우미 사용:** 코드를 효율적으로 작성하기 위해 [Amazon Q Developer](https://aws.amazon.com/q/developer/)와 같은 AI 코딩 도우미를 사용하는 방법을 고려하세요.
+ **코드 검토 자동화:** 워크로드를 개발하는 동안 자동화된 코드 검토 프로세스를 채택하여 품질을 개선하고 버그와 안티 패턴을 식별합니다.
  + [ Automate code reviews with Amazon CodeGuru Reviewer ](https://aws.amazon.com/blogs/devops/automate-code-reviews-with-amazon-codeguru-reviewer/)
  + [ Detecting concurrency bugs with Amazon CodeGuru ](https://aws.amazon.com/blogs/devops/detecting-concurrency-bugs-with-amazon-codeguru/)
  + [ Raising code quality for Python applications using Amazon CodeGuru ](https://aws.amazon.com/blogs/devops/raising-code-quality-for-python-applications-using-amazon-codeguru/)
+ **코드 프로파일러 사용:** 코드 프로파일러를 사용하여 가장 많은 시간 또는 리소스를 사용하는 코드 영역을 최적화 대상으로 식별합니다.
  + [ Reducing your organization's carbon footprint with Amazon CodeGuru Profiler ](https://aws.amazon.com/blogs/devops/reducing-your-organizations-carbon-footprint-with-codeguru-profiler/)
  + [ Understanding memory usage in your Java application with Amazon CodeGuru Profiler ](https://aws.amazon.com/blogs/devops/understanding-memory-usage-in-your-java-application-with-amazon-codeguru-profiler/)
  + [ Improving customer experience and reducing cost with Amazon CodeGuru Profiler ](https://aws.amazon.com/blogs/devops/improving-customer-experience-and-reducing-cost-with-codeguru-profiler/)
+  **모니터링 및 최적화:** 지속적인 모니터링 리소스를 사용하여 리소스 요구 사항이 높거나 구성이 최적화되지 않은 구성 요소를 식별합니다.
  +  컴퓨팅 집약적인 알고리즘을 동일한 결과를 내는 보다 단순하고 효율적인 버전으로 대체합니다.
  +  정렬 및 서식 지정과 같은 불필요한 코드를 제거합니다.
+  **코드 리팩터링 또는 변환 사용:** 애플리케이션 유지 관리 및 업그레이드에 [Amazon Q 코드 변환](https://aws.amazon.com/q/aws/code-transformation/)을 사용할 수 있을지 살펴봅니다.
  + [ Upgrade language versions with Amazon Q Code Transformation ](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/code-transformation.html)
  + [AWS re:Invent 2023 - Automate app upgrades & maintenance using Amazon Q Code Transformation ](https://www.youtube.com/watch?v=LY76tak6Z1E)

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

 **관련 문서:** 
+  [What is Amazon CodeGuru Profiler?](https://docs.aws.amazon.com/codeguru/latest/profiler-ug/what-is-codeguru-profiler.html)
+  [FPGA instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fpga-getting-started.html) 
+  [AWS에서의 구축을 위한 도구의 AWS SDK](https://aws.amazon.com/tools/) 

 **관련 비디오:** 
+ [ Improve Code Efficiency Using Amazon CodeGuru Profiler ](https://www.youtube.com/watch?v=1pU4VddsBRw)
+ [ Automate Code Reviews and Application Performance Recommendations with Amazon CodeGuru ](https://www.youtube.com/watch?v=OD8H63C0E0I)

# SUS03-BP04 디바이스 및 장비에 대한 영향 최적화
<a name="sus_sus_software_a5"></a>

아키텍처에 사용되는 디바이스와 장비를 이해하고 전략을 바탕으로 사용량을 줄입니다. 이를 통해 클라우드 워크로드의 전반적인 환경 영향을 최소화할 수 있습니다.

 **일반적인 안티 패턴:** 
+  고객이 사용하는 디바이스가 환경에 미치는 영향을 무시합니다.
+  고객이 사용하는 리소스를 수동으로 관리하고 업데이트합니다.

 **이 모범 사례 확립의 이점:** 고객 디바이스에 최적화된 소프트웨어 패턴 및 기능을 구현하면 클라우드 워크로드가 환경에 미치는 전반적인 영향을 줄일 수 있습니다.

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

## 구현 지침
<a name="implementation-guidance"></a>

 고객 디바이스에 최적화된 소프트웨어 패턴 및 기능을 구현하면 다음과 같은 여러 가지 방법으로 환경에 미치는 영향을 줄일 수 있습니다.
+  이전 버전과 호환되는 새 기능을 구현하면 하드웨어 교체 횟수를 줄일 수 있습니다.
+  디바이스에서 효율적으로 실행되도록 애플리케이션을 최적화하면 에너지 소비를 줄이고 배터리 수명을 연장할 수 있습니다(배터리로 작동하는 경우).
+  디바이스의 애플리케이션을 최적화하면 네트워크를 통한 데이터 전송도 줄일 수 있습니다.

 아키텍처에 사용되는 디바이스와 장비, 예상 수명 주기 및 이러한 구성 요소 교체의 영향을 이해합니다. 디바이스 에너지 소비와 고객이 디바이스를 교체해야 하는 필요성, 수동 업그레이드를 최소화하는 소프트웨어 패턴과 기능을 구현합니다.

### 구현 단계
<a name="implementation-steps"></a>
+ **인벤토리 구성:** 아키텍처에 사용되는 디바이스의 인벤토리를 구성합니다. 디바이스는 모바일, 태블릿, IOT 디바이스, 스마트 라이트 또는 공장의 스마트 디바이스일 수 있습니다.
+ **에너지 효율적인 디바이스 사용:** 아키텍처에 에너지 효율적인 디바이스를 사용하는 것을 고려합니다. 사용하지 않을 때는 디바이스의 전원 관리 구성을 사용하여 저전력 모드로 전환합니다.
+ **효율적인 애플리케이션 실행:** 디바이스에서 실행되는 애플리케이션을 최적화합니다.
  +  백그라운드에서 작업을 실행하는 것과 같은 전략을 사용하여 에너지 소비를 줄입니다.
  +  페이로드를 구축할 때 네트워크 대역폭과 지연 시간을 고려하고 애플리케이션이 지연 시간이 긴 저대역폭 링크에서 잘 작동하도록 지원하는 기능을 구현합니다.
  +  페이로드 및 파일을 디바이스에 필요한 최적화된 형식으로 변환합니다. 예를 들어 [Amazon Elastic Transcoder](https://docs.aws.amazon.com/elastic-transcoder/) 또는 [AWS Elemental MediaConvert](https://aws.amazon.com/mediaconvert/)를 사용하여 대용량 고품질 미디어 파일을 사용자가 모바일 디바이스, 태블릿, 웹 브라우저 및 커넥티드 TV에서 재생할 수 있는 형식으로 변환할 수 있습니다.
  +  서버 측에서 계산 집약적인 활동(예: 이미지 렌더링)을 수행하거나 애플리케이션 스트리밍을 사용하여 구형 디바이스에서 사용자 경험을 개선합니다.
  +  페이로드를 관리하고 로컬 스토리지 요구 사항을 제한하기 위해 특히 대화형 세션의 경우 출력을 분할하고 페이지 번호를 매깁니다.
+ **공급업체 참여:** 지속 가능한 소재를 사용하고 공급망의 투명성과 환경 인증을 제공하는 디바이스 공급업체와 협력합니다.
+ **무선 업데이트(OTA) 업데이트 사용:** 자동화된 무선 업데이트(OTA) 메커니즘을 사용하여 하나 이상의 디바이스에 업데이트를 배포합니다.
  +  [CI/CD 파이프라인](https://aws.amazon.com/blogs/mobile/build-a-cicd-pipeline-for-your-android-app-with-aws-services/)을 사용하여 모바일 애플리케이션을 업데이트할 수 있습니다.
  +  [AWS IoT Device Management](https://aws.amazon.com/iot-device-management/)를 사용하여 커넥티드 디바이스를 대규모로 원격으로 관리할 수 있습니다.
+ **관리형 Device Farm 사용:** 새로운 기능 및 업데이트를 테스트하려면 대표적인 하드웨어 집합과 함께 관리형 Device Farm을 사용하고 개발을 반복하여 지원되는 디바이스를 최대화하세요. 자세한 내용은 [SUS06-BP05 테스트에 관리형 Device Farm 사용](sus_sus_dev_a5.md) 섹션을 참조하세요.
+ **지속적인 모니터링 및 개선:** 디바이스의 에너지 사용량을 추적하여 개선이 필요한 부분을 식별합니다. 새로운 기술이나 모범 사례를 사용하여 이러한 디바이스가 환경에 미치는 영향을 개선합니다.

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

 **관련 문서:** 
+  [이란 무엇입니까?AWS Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html)
+  [WorkSpaces 애플리케이션 설명서](https://docs.aws.amazon.com/appstream2/) 
+  [NICE DCV](https://docs.aws.amazon.com/dcv/) 
+ [ OTA tutorial for updating firmware on devices running FreeRTOS ](https://docs.aws.amazon.com/freertos/latest/userguide/dev-guide-ota-workflow.html)
+ [ Optimizing Your IoT Devices for Environmental Sustainability ](https://aws.amazon.com/blogs/architecture/optimizing-your-iot-devices-for-environmental-sustainability/)

 **관련 비디오:** 
+ [AWS re:Invent 2023 - Improve your mobile and web app quality using AWS Device Farm](https://www.youtube.com/watch?v=__93Tm0YCRg)

# SUS03-BP05 데이터 액세스 및 스토리지 패턴을 가장 잘 지원하는 소프트웨어 패턴 및 아키텍처 사용
<a name="sus_sus_software_a6"></a>

데이터가 워크로드 내에서 사용되고, 사용자가 소비하며, 전송 및 저장되는 방식을 이해합니다. 데이터 액세스 및 스토리지를 가장 잘 지원하는 소프트웨어 패턴 및 아키텍처를 사용하여 워크로드를 지원하는 데 필요한 컴퓨팅, 네트워킹 및 스토리지 리소스를 최소화합니다.

 **일반적인 안티 패턴:** 
+  모든 워크로드의 데이터 스토리지 및 액세스 패턴이 비슷하다고 가정합니다.
+  모든 워크로드가 해당 계층 내에서 적합하다고 가정하고 하나의 스토리지 계층만 사용합니다.
+  시간이 지나면 데이터 액세스 패턴이 일관되게 유지될 것이라고 가정합니다.
+  아키텍처는 높을 가능성이 있는 데이터 액세스 버스트를 지원하므로, 리소스가 대부분 유휴 상태로 유지됩니다.

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

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

## 구현 지침
<a name="implementation-guidance"></a>

 장기 워크로드 지속 가능성을 개선하려면 워크로드의 데이터 액세스 및 스토리지 특성을 지원하는 아키텍처 패턴을 사용합니다. 이러한 패턴은 데이터를 효율적으로 검색하고 처리하는 데 도움이 됩니다. 예를 들어, 고유한 분석 사용 사례에 최적화된 목적별 서비스를 통해 [AWS 기반 현대적 데이터 아키텍처](https://aws.amazon.com/big-data/datalakes-and-analytics/modern-data-architecture/)를 사용합니다. 이러한 아키텍처 패턴은 효율적인 데이터 처리를 가능하게 하고 리소스 사용을 줄여 줍니다.

### 구현 단계
<a name="implementation-steps"></a>
+  **데이터 특성 이해:** 데이터 특성 및 액세스 패턴을 분석하여 클라우드 리소스에 적합한 구성을 식별합니다. 고려해야 할 주요 특성은 다음과 같습니다.
  +  **데이터 유형:** 정형, 반정형 및 비정형 
  +  **데이터 증가:** 제한, 무제한 
  +  **데이터 내구성:** 영구, 임시, 일시적 
  +  **액세스 패턴**: 읽기 또는 쓰기, 업데이트 빈도, 급증 또는 일관된 상태 
+  **최적의 아키텍처 패턴 사용:** 데이터 액세스 및 스토리지 패턴을 가장 잘 지원하는 아키텍처 패턴을 사용합니다.
  + [ Patterns for enabling data persistence ](https://docs.aws.amazon.com/prescriptive-guidance/latest/modernization-data-persistence/enabling-patterns.html)
  + [ Let’s Architect\$1 Modern data architectures ](https://aws.amazon.com/blogs/architecture/lets-architect-modern-data-architectures/)
  + [ Databases on AWS: The Right Tool for the Right Job ](https://www.youtube.com/watch?v=-pb-DkD6cWg)
+  **목적별 서비스 사용:** 목적에 적합한 기술을 사용합니다.
  +  기본적으로 압축된 데이터와 함께 작동하는 기술을 사용합니다.
    + [ Athena 압축 지원 파일 형식 ](https://docs.aws.amazon.com/athena/latest/ug/compression-formats.html)
    + [ Format Options for ETL Inputs and Outputs in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html)
    + [ Amazon Redshift를 사용하여 Amazon S3에서 압축된 데이터 파일 로드 ](https://docs.aws.amazon.com/redshift/latest/dg/t_loading-gzip-compressed-data-files-from-S3.html)
  +  아키텍처에서 데이터 처리에 목적별 [분석 서비스](https://aws.amazon.com/big-data/datalakes-and-analytics/?nc2=h_ql_prod_an_a)를 사용합니다. AWS 목적별 분석 서비스에 대한 자세한 내용은 [AWS re:Invent 2022 - Building modern data architectures on AWS](https://www.youtube.com/watch?v=Uk2CqEt5f0o)를 참조하세요.
  +  가장 많이 나타나는 쿼리 패턴을 가장 효과적으로 지원하는 데이터베이스 엔진을 사용합니다. 효율적인 쿼리를 위해 데이터베이스 인덱스를 관리합니다. 자세한 내용은 [AWS 데이터베이스](https://aws.amazon.com/products/databases/) 및 [AWS re:Invent 2022 - Modernize apps with purpose-built databases](https://www.youtube.com/watch?v=V-DiplATdi0)를 참조하세요.
+  **데이터 전송 최소화:** 아키텍처에 사용되는 네트워크 용량을 줄이는 네트워크 프로토콜을 선택합니다.

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

 **관련 문서:** 
+  [Amazon Redshift를 사용한 열 기반 데이터 형식에서 COPY 명령](https://docs.aws.amazon.com/redshift/latest/dg/copy-usage_notes-copy-from-columnar.html) 
+  [Converting Your Input Record Format in Firehose](https://docs.aws.amazon.com/firehose/latest/dev/record-format-conversion.html) 
+  [열 형식으로 변환하여 Amazon Athena에서 쿼리 성능 향상](https://docs.aws.amazon.com/athena/latest/ug/convert-to-columnar.html) 
+  [Amazon Aurora의 성능 개선 도우미로 DB 로드 모니터링](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html) 
+  [Amazon RDS의 성능 개선 도우미로 DB 로드 모니터링](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) 
+ [ Amazon S3 Intelligent-Tiering 스토리지 클래스 ](https://aws.amazon.com/s3/storage-classes/intelligent-tiering/)
+ [ Build a CQRS event store with Amazon DynamoDB ](https://aws.amazon.com/blogs/database/build-a-cqrs-event-store-with-amazon-dynamodb/)

 **관련 비디오:** 
+ [AWS re:Invent 2022 - Building data mesh architectures on AWS](https://www.youtube.com/watch?v=nGRvlobeM_U)
+ [AWS re:Invent 2023 - Deep dive into Amazon Aurora and its innovations ](https://www.youtube.com/watch?v=je6GCOZ22lI)
+ [AWS re:Invent 2023 - Improve Amazon EBS efficiency and be more cost-efficient ](https://www.youtube.com/watch?v=7-CB02rqiuw)
+ [AWS re:Invent 2023 - Optimizing storage price and performance with Amazon S3 ](https://www.youtube.com/watch?v=RxgYNrXPOLw)
+ [AWS re:Invent 2023 - Building and optimizing a data lake on Amazon S3 ](https://www.youtube.com/watch?v=mpQa_Zm1xW8)
+ [AWS re:Invent 2023 - Advanced event-driven patterns with Amazon EventBridge ](https://www.youtube.com/watch?v=6X4lSPkn4ps)

 **관련 예제:** 
+ [AWS Purpose Built Databases 워크숍 ](https://catalog.us-east-1.prod.workshops.aws/workshops/93f64257-52be-4c12-a95b-c0a1ff3b7e2b/en-US)
+ [AWS Modern Data Architecture Immersion Day ](https://catalog.us-east-1.prod.workshops.aws/workshops/32f3e732-d67d-4c63-b967-c8c5eabd9ebf/en-US)
+ [ Build a Data Mesh on AWS](https://catalog.us-east-1.prod.workshops.aws/workshops/23e6326b-58ee-4ab0-9bc7-3c8d730eb851/en-US)