Amazon CodeWhisperer로 지속 가능성 최적화 | 아마존 웹 서비스

Amazon CodeWhisperer로 지속 가능성 최적화 | 아마존 웹 서비스

이 게시물에서는 방법을 살펴봅니다. 아마존 코드위스퍼러 자원 효율성 향상을 통해 지속 가능성을 위한 코드 최적화에 도움을 줄 수 있습니다. 계산적으로 자원 효율적인 코딩은 코드 라인을 처리하는 데 필요한 에너지 양을 줄이고 결과적으로 기업이 전체적으로 더 적은 에너지를 소비하도록 돕는 기술 중 하나입니다. 클라우드 컴퓨팅 시대에 개발자는 이제 오픈 소스 라이브러리와 고급 처리 능력을 활용하여 운영 효율성, 성능 및 복원력이 필요한 대규모 마이크로서비스를 구축하고 있습니다. 그러나 최신 애플리케이션은 종종 다음으로 구성됩니다. 상당한 컴퓨팅 리소스를 요구하는 광범위한 코드. 직접적인 환경 영향은 분명하지 않을 수 있지만 하위 최적화 코드는 에너지 소비 증가, 하드웨어 사용 연장, 오래된 알고리즘과 같은 요소를 통해 최신 애플리케이션의 탄소 배출량을 증폭시킵니다. 이 게시물에서는 Amazon CodeWhisperer가 이러한 문제를 해결하고 코드의 환경 영향을 줄이는 데 어떻게 도움이 되는지 알아봅니다.

Amazon CodeWhisperer는 기존 코드와 자연어 설명을 기반으로 제안을 제공하여 전체 개발 노력을 줄이고 브레인스토밍, 복잡한 문제 해결 및 차별화된 코드 작성에 필요한 시간을 확보함으로써 소프트웨어 개발 속도를 높이는 생성적 AI 코딩 동반자입니다. Amazon CodeWhisperer는 개발자가 워크플로를 간소화하고, 코드 품질을 향상하고, 더 강력한 보안 상태를 구축하고, 강력한 테스트 제품군을 생성하고, 컴퓨팅 리소스 친화적인 코드를 작성하도록 지원하여 환경 지속 가능성을 최적화하는 데 도움이 될 수 있습니다. 이는 다음의 일부로 제공됩니다. Visual Studio Code용 도구 키트, AWS 클라우드9, 주피터랩, 아마존 세이지 메이커 스튜디오, AWS 람다, AWS 접착제, JetBrains IntelliJ IDEA 등이 있습니다. Amazon CodeWhisperer는 현재 Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, Shell 스크립팅, SQL 및 Scala를 지원합니다.

최적화되지 않은 코드가 클라우드 컴퓨팅 및 애플리케이션 탄소 발자국에 미치는 영향

AWS의 인프라는 조사된 미국 기업 데이터 센터의 중앙값보다 3.6배 더 에너지 효율적이며, 유럽의 평균 기업 데이터 센터보다 최대 5배 더 에너지 효율적입니다.. 따라서 AWS는 워크로드 탄소 배출량을 최대 96%까지 낮추는 데 도움이 될 수 있습니다. 이제 Amazon CodeWhisperer를 사용하여 리소스 사용량과 에너지 소비를 줄이면서 고품질 코드를 작성하고 AWS 에너지 효율적인 인프라의 이점을 활용하면서 확장성 목표를 충족할 수 있습니다.

리소스 사용량 증가

최적화되지 않은 코드로 인해 클라우드 컴퓨팅 리소스가 비효율적으로 사용될 수 있습니다. 결과적으로 더 많은 VM(가상 머신) 또는 컨테이너가 필요할 수 있으며, 이로 인해 리소스 할당, 에너지 사용 및 워크로드와 관련된 탄소 배출량이 증가할 수 있습니다. 다음 사항이 증가할 수 있습니다.

  • CPU 사용률 – 최적화되지 않은 코드에는 실행하는 데 과도한 CPU 주기가 필요한 비효율적인 알고리즘이나 코딩 방식이 포함되어 있는 경우가 많습니다.
  • 메모리 소비 – 최적화되지 않은 코드의 비효율적인 메모리 관리는 불필요한 메모리 할당, 할당 해제 또는 데이터 중복을 초래할 수 있습니다.
  • 디스크 I/O 작업 – 비효율적인 코드는 과도한 입출력(I/O) 작업을 수행할 수 있습니다. 예를 들어, 필요한 것보다 더 자주 디스크에서 데이터를 읽거나 쓰는 경우 디스크 I/O 활용도와 대기 시간이 늘어날 수 있습니다.
  • 네트워크 사용 – 비효율적인 데이터 전송 기술이나 중복된 통신으로 인해 최적화되지 않은 코드로 인해 과도한 네트워크 트래픽이 발생할 수 있습니다. 이로 인해 대기 시간이 길어지고 네트워크 대역폭 활용도가 높아질 수 있습니다. 네트워크 활용도가 높아지면 클라우드 컴퓨팅과 같이 사용량에 따라 네트워크 리소스에 세금이 부과되는 상황에서 비용이 증가하고 리소스 요구 사항이 높아질 수 있습니다.

더 높은 에너지 소비

비효율적인 코드를 사용하는 인프라 지원 애플리케이션은 더 많은 처리 능력을 사용합니다. 비효율적이고 비대해진 코드로 인해 컴퓨팅 리소스를 과도하게 사용하면 에너지 소비와 열 발생이 높아져 결과적으로 냉각에 더 많은 에너지가 필요할 수 있습니다. 서버와 함께 냉각 시스템, 배전 인프라 및 기타 보조 요소도 에너지를 소비합니다.

확장성 문제

애플리케이션 개발 시 최적화되지 않은 코드로 인해 확장성 문제가 발생할 수 있습니다. 이러한 코드는 작업이 커짐에 따라 효과적으로 확장되지 않아 더 많은 리소스가 필요하고 더 많은 에너지를 사용하게 됩니다. 이로 인해 이러한 코드 조각이 소비하는 에너지가 증가합니다. 앞서 언급했듯이 비효율적이거나 낭비적인 코드는 규모에 따라 복합적인 영향을 미칩니다.

AWS와 같은 클라우드 제공업체가 전 세계에 수십 개의 데이터 센터를 보유하고 있다는 점을 고려하면 고객이 특정 데이터 센터에서 실행하는 코드를 최적화하여 복합적으로 에너지를 절약할 수 있습니다.

Amazon CodeWhisperer는 기계 학습(ML) 및 대규모 언어 모델을 사용하여 원본 코드와 자연어 설명을 기반으로 실시간으로 코드 권장 사항을 제공하고 보다 효율적일 수 있는 코드 권장 사항을 제공합니다. 알고리즘 개선, 효과적인 메모리 관리, 무의미한 I/O 작업 감소 등의 전략을 사용하여 코드를 최적화하면 프로그램의 인프라 사용 효율성을 높일 수 있습니다.

코드 생성, 완성 및 제안

Amazon CodeWhisperer가 유용할 수 있는 몇 가지 상황을 살펴보겠습니다.

반복적이거나 복잡한 코드 개발을 자동화함으로써 코드 생성 도구는 플랫폼별 최적화에 중점을 두는 동시에 인적 오류 가능성을 최소화합니다. 확립된 패턴이나 템플릿을 사용함으로써 이러한 프로그램은 지속 가능성 모범 사례를 보다 일관되게 준수하는 코드를 생성할 수 있습니다. 개발자는 특정 코딩 표준을 준수하는 코드를 생성하여 프로젝트 전반에 걸쳐 보다 일관되고 신뢰할 수 있는 코드를 제공할 수 있습니다. 결과 코드는 사람이 코딩하는 변형을 제거하고 읽기 쉬워 개발 속도가 향상되므로 더욱 효율적일 수 있습니다. 불필요한 코드 삭제, 변수 저장 개선, 압축 방법 사용 등 응용 프로그램 크기와 길이를 줄이는 방법을 자동으로 구현할 수 있습니다. 이러한 최적화는 메모리 소비 최적화에 도움이 되며 패키지 크기를 줄여 전반적인 시스템 효율성을 향상시킵니다.

제너레이티브 AI 자원 할당을 최적화하여 프로그래밍을 더욱 지속 가능하게 만들 수 있는 잠재력이 있습니다. 애플리케이션의 탄소 배출량을 전체적으로 살펴보는 것이 중요합니다. 다음과 같은 도구 아마존 코드 구루 프로파일 러 성능 데이터를 수집하여 구성 요소 간의 대기 시간을 최적화할 수 있습니다. 프로파일링 서비스는 코드 실행을 검사하고 잠재적인 개선 사항을 식별합니다. 그런 다음 개발자는 이러한 결과를 기반으로 자동 생성 코드를 수동으로 개선하여 에너지 효율성을 더욱 향상시킬 수 있습니다. 생성적 AI, 프로파일링, 사람의 감독이 결합되어 코드 효율성을 지속적으로 개선하고 환경에 미치는 영향을 줄일 수 있는 피드백 루프가 생성됩니다.

다음 스크린샷은 대기 시간 모드의 CodeGuru 프로파일러에서 생성된 결과를 보여줍니다. 여기에는 네트워크 및 디스크 I/O가 포함됩니다. 이 경우 애플리케이션은 여전히 ​​대부분의 시간을 ImageProcessor.extractTasks (맨 아래 두 번째 행) 내부의 거의 모든 시간이 실행 ​​가능합니다. 이는 아무것도 기다리지 않았음을 의미합니다. CPU 모드에서 대기 시간 모드로 변경하면 이러한 스레드 상태를 볼 수 있습니다. 이는 애플리케이션의 벽시계 시간에 영향을 미치는 요소를 파악하는 데 도움이 될 수 있습니다. 자세한 내용은 다음을 참조하세요. Amazon CodeGuru 프로파일러를 사용하여 조직의 탄소 배출량 줄이기.

영상

테스트 케이스 생성

아마존 코드위스퍼러 테스트해야 할 수 있는 경계 값, 극단적인 경우 및 기타 잠재적인 문제를 고려하여 테스트 사례를 제안하고 코드의 기능을 확인하는 데 도움이 될 수 있습니다. 또한 Amazon CodeWhisperer는 단위 테스트를 위한 반복 코드 생성을 단순화할 수 있습니다. 예를 들어, INSERT 문을 사용하여 샘플 데이터를 생성해야 하는 경우 Amazon CodeWhisperer는 패턴을 기반으로 필요한 삽입을 생성할 수 있습니다. 리소스 집약적인 테스트 사례를 식별 및 최적화하거나 중복된 테스트 사례를 제거하여 소프트웨어 테스트에 대한 전체 리소스 요구 사항을 줄일 수도 있습니다. 개선된 테스트 스위트는 에너지 효율성을 높이고, 자원 소비를 줄이고, 폐기물을 최소화하고, 작업 부하 탄소 발자국을 줄여 애플리케이션을 더욱 환경 친화적으로 만들 수 있는 잠재력을 가지고 있습니다.

Amazon CodeWhisperer에 대한 더 많은 실습 경험을 보려면 다음을 참조하십시오. Amazon CodeWhisperer로 소프트웨어 개발 최적화. 이 게시물은 Amazon CodeWhisperer의 코드 권장 사항을 보여줍니다. 아마존 세이지 메이커 스튜디오. 또한 데이터세트 로드 및 분석에 대한 주석을 기반으로 제안된 코드를 보여줍니다.

결론

이 게시물에서는 Amazon CodeWhisperer가 개발자가 최적화되고 지속 가능한 코드를 작성하는 데 어떻게 도움이 되는지 배웠습니다. Amazon CodeWhisperer는 고급 ML 모델을 사용하여 코드를 분석하고 효율성 향상을 위한 맞춤형 권장 사항을 제공하므로 비용을 절감하고 탄소 배출량을 줄이는 데 도움이 됩니다.

Amazon CodeWhisperer는 사소한 조정 및 대체 접근 방식을 제안함으로써 개발자가 기능을 희생하지 않고도 리소스 사용량과 배출량을 크게 줄일 수 있도록 지원합니다. 기존 코드 베이스를 최적화하거나 새 프로젝트의 리소스 효율성을 보장하려는 경우 Amazon CodeWhisperer는 귀중한 도움이 될 수 있습니다. 코드 최적화를 위한 Amazon CodeWhisperer 및 AWS Sustainability 리소스에 대해 자세히 알아보려면 다음 단계를 고려하십시오.


저자 소개

Amazon CodeWhisperer로 지속 가능성 최적화 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.이샤 두아 San Francisco Bay Area에 기반을 둔 선임 솔루션 아키텍트입니다. 그녀는 AWS 엔터프라이즈 고객이 목표와 과제를 이해하여 성장하도록 돕고 복원력과 확장성을 보장하면서 클라우드 네이티브 방식으로 애플리케이션을 설계할 수 있는 방법을 안내합니다. 그녀는 기계 학습 기술과 환경 지속 가능성에 대해 열정적입니다.

Amazon CodeWhisperer로 지속 가능성 최적화 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.아자이 고빈다람 AWS의 선임 솔루션 아키텍트입니다. 그는 AI/ML을 사용하여 복잡한 비즈니스 문제를 해결하는 전략적 고객과 협력합니다. 그의 경험은 보통 규모에서 대규모 AI/ML 애플리케이션 배포에 대한 기술 방향 및 설계 지원을 제공하는 데 있습니다. 그의 지식은 애플리케이션 아키텍처에서 빅 데이터, 분석 및 기계 학습에 이르기까지 다양합니다. 쉬는 동안 음악을 들으며 야외 활동을 하고 사랑하는 사람들과 시간을 보내는 것을 즐긴다.

Amazon CodeWhisperer로 지속 가능성 최적화 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.에릭 이리고옌 그는 반도체 및 전자 업계 고객을 대상으로 하는 Amazon Web Services의 솔루션 설계자입니다. 그는 고객과 긴밀히 협력하여 비즈니스 과제를 이해하고 AWS를 활용하여 전략적 목표를 달성할 수 있는 방법을 파악합니다. 그의 작업은 주로 인공 지능 및 기계 학습(AI/ML)과 관련된 프로젝트에 중점을 두었습니다. AWS에 합류하기 전에 그는 Deloitte의 고급 분석 사업부에서 수석 컨설턴트로 근무하며 미국 전역에서 분석 및 AI/ML에 중점을 둔 여러 업무에서 작업 흐름을 이끌었습니다. Erick은 샌프란시스코 대학에서 경영학 학사 학위를, 노스캐롤라이나 주립 대학에서 분석 석사 학위를 취득했습니다.

타임 스탬프 :

더보기 AWS 기계 학습