본문 바로가기

Infrastructure/Certificate

[AWS] Developer Kit Services

개발자 도구(Developer Kit)

  • 최초 작성 일자: 2023-03-21
  • 수정 내역:
    • 2023-03-21: 최초 작성

Amazon CodeCatalyst

  • AWS에서 더 신속한 개발과 전송을 위한 통합 소프트웨어 개발 서비스
  • AWS에서의 계획, 개발, 제공 수명 주기를 가속화

사용 이유

  • 소스 코드에서 서비스 구성까지, 사용자가 필요로 하는 거의 모든 것이 포함된 청사진을 사용하여 몇 분 내에 프로젝트를 시작할 수 있다.
  • 사용자의 프로젝트에 맞춰 완전히 구성되고 널리 사용되는 IDE로 작업할 수 있는 개인 클라우드 기반 개발 환경을 빠르게 생성한다.
  • 지속적 통합 및 전달(CI/CD) 파이프라인을 쉽게 정의하고 이를 자동으로 확장 가능한 관리형 컴퓨팅 환경에서 실행한다.
  • 통합형 활동 피드, 실시간 알림, 공유된 개발 리소스를 활용하여 효율적으로 협업한다.

작동 방식

  • 통합 소프트웨어 개발 서비스인 Amazon CodeCatalyst를 사용하여 AWS에서 더 빠르게 구축하고 제공할 수 있다.
  • CodeCatalyst는 AWS의 완전관리형 서비스이므로 사용자가 개발에 집중할 수 있는 환경을 제공한다.

Amazon CodeGuru

  • 가장 비경제적인 코드 줄 찾기
  • 보안 취약성 탐지 및 코드 검토 자동화
  • Amazon CodeGUru는 코드 품질을 높이고 애플리케이션에서 가장 비경제적인 코드 줄을 찾아낼 수 있도록 지원하는 지능형 권장 사항을 제공하는 개발자 도구다.
  • CodeGuru를 기존 소프트웨어 개발 워크플로에 통합하면 애플리케이션 개발 중에 코드 검토를 자동화하고, 프로덕션에서 애플리케이션 성능을 지속적으로 모니터링하며, 코드 품질 및 애플리케이션 성능 개선을 위한 권장 사항과 시각적 단서를 제공하고, 전체 비용을 절감할 수 있다.

작동 방식

  • CodeGuru 리뷰어 및 프로파일러를 개발 파이프라인에 통합하여 코드 품질을 개선하고 애플리케이션 성능을 최적화할 수 있다.

Amazon CodeGuru Reviewer

  • 수십 년간 축적된 지식과 경험을 바탕으로 훈련된 CodeGuru Reviewer는 기계 학습 및 자동화된 추론, AWS 및 보안 모범 사례, 그리고 수천 개의 오픈 소스 및 Amazon 리포지토리에서 수백만 건의 코드 검토를 통해 힘들게 얻은 교훈을 기반으로 코드 검토를 자동화한다.
사용 이유
  • 프로덕션으로 이동 전에 코드 문제 포착: 개발자는 코드를 검토할 때 개발 프로세스를 달리 변경하지 않고도 코드를 리포지토리에 커밋하고 CodeGuru Reviewer를 코드 검토자 중 하나로 추가한다. CodeGuru Reviewer는 리포지토리에서 기존 코드 베이스를 분석하고, 높은 정확도로 찾기 어려운 버그와 중요한 문제를 식별하며, 이를 해결하는 방법에 대한 지능형 제안 사항을 제공하고, 연속적인 코드 검토를 위한 기준을 생성한다.
  • 보안 취약성 해결: CodeGuru Reviewer 보안 탐지기는 자동화된 추론, 그리고 수년에 걸친 AWS의 보안 경험을 바탕으로 코드 보안을 개선한다. CodeGuru Reviewer 보안 탐지기는 GitHub Action을 통해 애플리케이션 개발 CI/CD 프로세스에 직접 보안 검토를 통합할 수 있게 하며, 코드가 AWS KMS, Amazon EC2, API, 일반적인 Java, Python dkaghghk, TLS/SSL 라이브러리에 대한 모범 사례를 따르도록 보장한다.
  • 지속적인 모니터링을 통해 코드 품질을 사전에 개선: CodeGuru Reviewer는 시작된 모든 풀 요청에 대해 증분 코드 변경을 자동으로 분석하고 풀 요청에서 직접 권장 사항을 게시한다. 또한, 정기적인 코드 유지 관리를 위한 전체 리포지토리 또는 코드베이스 검사와 코드 실사 이니셔티브를 지원하여 코드 품질을 일관되게 유지한다.

Amazon CodeGuru Profiler

  • CodeGuru 프로파일러는 프로덕션에서 실행 중인 애플리케이션의 성능을 최적화하고 가장 비경제적인 코드 줄을 식별한다.
  • 항상 애플리케이션 성능 최적화를 검색하고, 이러한 코드를 수정하여 CPU 사용률을 줄이고 컴퓨팅 비용을 절감하고 애플리케이션 성능을 개선할 방법을 권장한다.
사용 이유
  • 성능 문제 해결: CodeGuru 프로파일러는 애플리케이션의 런타임 데이터를 분석하여 CPU 및 메모리 사용률을 개선하고 성능 문제를 해결하여 지연 시간 및 처리량을 개선한다. CodeGuru 프로파일러는 CPU 사용률에 대한 최소한의 오버헤드로 프로덕션에서 지속적으로 실행된다.
  • 애플리케이션 성능 이상 및 일반적인 성능 문제 발견: CodeGuru 프로파일러는 애플리케이션 스택에서 더 많은 CPU를 소비하기 시작하거나 대기 시간을 늘리는 중요한 메서드의 성능 이상을 자동으로 탐지하고 5분 간격으로 업데이트되는 탐지 보고서를 제공한다.
  • 지금 바로 가장 비경제적ㅇ니 코드 줄 찾기: 코드와 애플리케이션의 효율성이 높을수록 실행 비용이 감소한다. CodeGuru 프로파일러는 성능 문제를 해결하는 방법에 대한 시각화 및 권장 사항을 제공하여 프로덕션에서 실행되는 모든 애플리케이션의 운영 비용을 최대 50%까지 절감한다.

Amazon Corretto

  • 프로덕션용 OpenJDK 배포
  • 무료, 멀티플랫폼, 프로덕션용 OpenJDK 배포
  • Amazon Corretto는 무료로 사용할 수 있는 Open Java Development Kit(OpenJDK)의 프로덕션용 멀티플랫폼 배포판이다.
  • Amazon은 내부적으로 수천 개의 프로덕션 서비스에서 Corretto를 실행하며, Corretto는 Java SE 표준과 호환되는 것으로 인증되었다.

사용 이유

  • Amazon 지원: Amazon Corretto에는 Amazon으로부터의 무료 장기 지원이 제공되기 때문에 필요할 때에만 버전을 업그레이드할 수 있다.
  • 프로덕션용: Amazon Corretto는 Java SE 표준을 충족하는 것으로 인증을 받았으며, 여러 Java SE 배포를 즉시 대체하는 데 사용될 수 있다.
  • 멀티플랫폼 지원: Amazon Corretto를 사용하여 클라우드, 온프레미스 및 로컬 머신에서 동일한 환경을 실행할 수 있다.
  • 무료: Amazon Corretto는 무료로 다운로드하여 사용할 수 있으며, 추가적인 유료 기능이나 제약 사항은 없다.

AWS Cloud Control API

  • 통합 API로 클라우드 인프라 관리
  • 일관된 API 세트로 클라우드 인프라 관리

사용 이유

  • AWS Cloud Control API는 개발자에게 표준화된 CRUDL API 세트를 사용하여 직관적이고 설명적인 방식으로 서비스를 관리할 수 있는 기능을 제공한다.
  • AWS Cloud Control API는 AWS 및 AWS CloudFormation Public Registry에 나열된 타사 클라우드 리소스와 함께 작동하는 표준화된 API를 개발자에게 제공한다.
  • AWS Cloud COntrol API는 일반적으로 출시일에 새로운 AWS 기능 및 서비스를 프로그래밍 방식으로 공개할 수 있는 기능을 파트너에게 제공한다.

작동 방식

  • AWS Cloud Control API는 개발자와 파트너가 AWS 및 타사 서비스의 수명 주기를 쉽게 관리할 수 있도록 하는 공통 API세트다.
  • Cloud Control API는 개발자가 클라우드 인프라를 생성, 읽기, 업데이트, 삭제 및 나열(CRUDL)할 수 있는 5가지 작업을 제공한다.

사용 사례

  • AWS 및 타사 리소스 CRUDL: AWS Cloud Control API를 사용하면 개발자가 표준화된 API를 사용하여 수백 개의 AWS 리소스와 타사 리소스를 일관되게 쉽게 관리할 수 있다. 예를 들어 Cloud Control API를 통해 공통 CreateResource API를 사용하여 지원되는 클라우드 리소스를 생성할 수 있다.
  • 새로운 AWS 리소스를 고객에게 자동으로 노출: AWS Cloud Control API는 최신 AWS 리소스로 최신 상태를 유지하므로 Amazon 파트너는 자체 솔루션을 Cloud Control API와 한 번만 통합한 다음 추가 통합 작업을 가정하지 않고도 새로운 AWS 서비스 및 기능에 자동으로 액세스할 수 있다.
  • 타사 인프라 도구로 리소스 프로비저닝: Cloud Control API는 개발자에게 HashiCorp Terraform 및 Pulumi와 같은 파트너 인프라 도구로 AWS 리소스를 프로비저닝할 수 있는 기능을 제공한다.

AWS CDK

  • 코드를 사용하여 클라우드 인프라 모델링
  • 익숙한 프로그래밍 언어를 사용하여 클라우드 애플리케이션 리소스 정의

사용 이유

  • 익숙한 프로그래밍 언어의 표현력을 사용하여 애플리케이션 리소스를 정의하고 개발을 가속화할 수 있다.
  • 검증된 기본값으로 클라우드 리소스를 사전 구성하는 구성을 사용하여 AWS 온보딩을 간소화할 수 있다.
  • 조직의 보안, 규정 준수, 거버넌스 요구 사항을 충족하는 재사용 가능한 구성 요소를 설계 및 공유할 수 있다.
  • 통합 개발 환경(IDE)에서 벗어나지 않고 애플리케이션을 구축하고 런타임 코드를 작성하고 리소스를 정의할 수 있다.

작동 방식

  • AWS Cloud Development Kit(CDK)는 공통 프로그래밍 언어를 사용하여 애플리케이션을 모델링함으로써 클라우드 개발을 가속화한다.

사용 사례

  • 인프라 및 비즈니스 로직 개선: AWS CDK를 기본 프레임워크로 사용하여 애플리케이션을 보다 효율적으로 개발하고 클라우드 인프라를 코드로 정의한다.
  • 가장 일반적인 인프라 패턴을 더 빠르게 프로비저닝: 지속적 통합 및 전달(CI/CD) 파이프라인과 통합하면서 복잡한 백엔드 인프라를 보다 효율적으로 마이그레이션한다.
  • Construct Hub로 AWS 서비스 프로비저닝 자동화: 개발자 커뮤니티에서 생성한 AWS CDK 구성을 검색하고 사용하여 프로그래밍 방식으로 새 마이크로서비스를 생성한다.
  • 클라우드용으로 구축된 도구를 사용한 애플리케이션 작성: TypeScript, Python, Java, .NET 및 Go를 사용하여 완전히 새로운 인프라에서 완전배포형 인프라로의 전환을 가속화한다.

AWS Cloud9

  • 클라우드 IDE에서 코드 작성, 실행 및 디버깅
  • 코드의 작성, 실행 및 디버깅을 위한 클라우드 IDE
  • AWS Cloud9은 브라우저만으로 코드를 작성, 실행 및 디버깅할 수 있는 클라우드 기반 IDE로 코드 편집기, 디버거 및 터미널이 포함되어 있다.
  • Cloud9 IDE는 클라우드 기반이므로, 인터넷이 연결된 머신을 사용하여 사무실, 집 또는 어디서든 프로젝트 작업을 할 수 있다.
  • Cloud9은 서버리스 애플리케이션을 개발할 수 있는 원활한 환경을 제공하므로 손쉽게 서버리스 애플리케이션의 리소스를 정의하고, 디버깅하고, 로컬 실행과 원격 실행 간에 전환할 수 있다.
  • Cloud9에서는 개발 환경을 팀과 신속하게 공유할 수 있으므로 프로그램을 연결하고 서로의 입력 값을 실시간으로 추적할 수 있다.

사용 이유

  • 브라우저만 사용하여 코딩: AWS Cloud9은 관리형 Amazon EC2 인스턴스 또는 SSH를 지원하는 기존 Linux 서버에서 개발 환경을 실행할 수 있는 유연성을 제공한다. 즉, 로컬 IDE를 설치하거나 유지 관리하지 않아도 브라우저만 있으면 애플리케이션을 작성, 실행 및 디버깅할 수 있다.
  • 실시간으로 함께 코딩: 클릭 몇 번으로 개발 환경을 팀과 공유하고 프로그램을 함께 연결할 수 있다. 협업을 진행하는 동안 팀원은 서로 입력하는 것을 실시간으로 보고 IDE 내에서 바로 채팅할 수 있다.
  • 손쉽게 서버리스 애플리케이션 구축: AWS Cloud9은 서버리스 개발에 필요한 모든 SDK, 라이브러리 및 플러그인으로 개발 환경을 사전에 구성한다. 또한, AWS Lambda 함수를 로컬에서 테스트하고 디버깅할 수 있는 환경을 제공한다.
  • 터미널에서 AWS에 직접 액세스: AWS Cloud9에는 사전에 인증된 AWS COI와 더불어 개발 환경을 호스팅하고 있는 관리형 Amazon EC2 인스턴스에 대한 sudo 권한이 포함된 터미널이 함께 제공된다.
  • 새로운 프로젝트 신속하게 시작: Cloud9의 개발 환경은 Node.js, JavaScript를 비롯한 40여 개의 프로그래밍 언어용 도구와 함께 사전에 패키징되어 제공된다. 따라서 개발 머신을 위해 파일, SDK 및 플러그인을 설치하거나 구성할 필요 없이 몇 분 만에 인기 있는 애플리케이션 스택의 코드 작성을 시작할 수 있다.

AWS CloudShell

  • 브라우저 기반 셸 환경
  • 브라우저의 터미널에서 AWS 리소스 탐색 및 관리

사용 이유

  • 미리 구성된 AWS Management Console 자격 증명으로 빠르게 로그인할 수 있다.
  • 완전 관리형 Amazon Linux 2 환경 내에서 사전 설치된 도구와 자동 업데이트로 시간을 절약할 수 있다.
  • AWS 리전당 최대 1GB의 영구 스토리지로 추가 비용 없이 스크립트와 명령을 실행할 수 있다.
  • 스크립트, 파일, 구성 기본 설정 및 기타 도구를 사용하여 홈 디렉토리를 사용자 지정할 수 있다.

작동 방식

  • 브라우저 기반 셸인 AWS CloudShell을 사용하면 AWS CLI로 스크립트를 빠르게 실행하고, 서비스 API를 실험하고, 다른 도구를 사용하여 생산성을 높일 수 있다.

사용 사례

  • 일일 작업 최적화: 기존 스크립트를 실행하고 AWS CLI에서 통합 문서 및 명령 완성을 활성화한다.
  • 워크플로 간소화: VIM과 같이 사전 설치된 텍스트 기반 편집기로 파일을 편집하고 브라우저에서 파일을 업로드 및 다운로드한다.
  • 인프라 관리 간소화: AWS Management Console 자격 증명을 통한 간소화된 인증으로 생산성을 높이고 보안을 개선하며 사고 대응 시간을 단축한다.

AWS CodeArtifact

  • 소프트웨어 개발을 위한 안전하고 확장 가능하며 비용 효율적인 아티팩트 관리
  • 소프트웨어 개발을 위한 안전하고 확장 가능하며 저렴한 패키지 관리

사용 이유

  • 팀 및 빌드 시스템에 대해 적절한 수준의 액세스 권한을 부여하여 계정 간에 아티팩트를 저장 및 공유할 수 있다.
  • 완전관리형 서비스를 통해 아티팩트 서버 또는 인프라의 설정 및 유지 보수 오버헤드를 줄일 수 있다.
  • 저장된 소프트웨어 패키지, 요청 수, 리전 외부로 전송된 데이터에 대해 사용량에 따른 요금만 지불하면 된다.

작동 방식

  • CodeArtifact를 사용하면 Maven, Gradle, npm, Yarn과 같은 주요 패키지 관리자 및 빌드 도구를 사용하여 아티팩트를 저장할 수 있다.
  • CodeArtifact는 퍼블릭 패키지 리포지토리의 소프트웨어 패키지를 온디맨드로 가져올 수 있으므로 최신 버전의 애플리케이션 종속성에 액세스할 수 있다.

사용 사례

  • 온디맨드 소프트웨어 패키지 가져오기: npm Registry, Maven Central등의 퍼블릭 리포지토리에서 패키지를 가져오도록 CodeArtifact를 구성한다.
  • 패키지 게시 및 공유: 중앙 조직 리포지토리에 게시하여 비공개 패키지를 조직 간에 안전하게 공유한다.
  • 패키지 승인 및 사용량 감사: CodeArtifact API 및 Amazon EventBridge를 사용하여 자동화된 승인 워크플로를 구축하고 AWS CloudTrail을 사용하여 패키지에 대한 가시성을 확보한다.
  • 자동화된 빌드에서 패키지 사용 및 게시: AWS CodeBuild의 CodeArtifact에서 종속성을 가져오고 IAM으로 보호되는 프라이빗 패키지의 새 버전을 게시한다.

AWS CodeBuild

  • 코드 빌드 및 테스트
  • 자동 크기 조정을 통한 코드 작성 및 테스트

사용 이유

  • 자체 빌드 서버를 설정, 관리, 패칭할 필요가 없다.
  • 용량을 자동으로 확장할 수 있으므로 빌드가 실행 대기열에 대기하지 않는다.
  • 구축하는 데 사용한 시간만큼만 요금을 지불하면 된다.
  • 사전 패키징된 구축 환경 또는 자체 구축 환경을 사용하고 사용자의 키로 아티팩트를 암호화할 수 있다.

작동 방식

  • AWS CodeBuild는 소스 코드를 컴파일하고 테스트를 실행한 다음 바로 배포 가능한 소프트웨어 패키지를 생성할 수 있는 완전관리형의 지속적 통합 서비스다.

사용 사례

  • 지속적 통합 및 전달(CI/CD) 파이프라인 자동화: 여러 배포 환경을 통해 코드 변경을 촉진하는 완전자동형 소프트웨어 릴리즈 프로세스를 만든다.
  • 빌드 서버 관리의 복잡성 제거: CodeBuild에서 기존 Jenkins 빌드 작업을 실행하면 Jenkins 빌드 노드를 구성하고 관리할 필요가 없다.
  • GitHub에서 호스팅되는 소스 코드 구축: 기존 GitHub 리포지토리를 사용하여 소프트웨어 구축을 자동 시작하고 결과를 GitHub에 다시 게시한다.

AWS CodeCommit

  • 프라이빗 Git 리포지토리에 코드 저장
  • 뛰어난 확장성의 프라이빗 Git 리포지토리를 안전하게 호스팅하여 코드 협업을 지원

사용 이유

  • 자체 소스 제어 서버를 호스팅, 유지 관리, 백업, 확장할 필요가 없다.
  • 전송 중 자동 암호화된 파일을 사용하여 리포지토리에 대해 사용자별 액세스를 지정할 수 있다.
  • 확장 가능하고 이중화이며 내구성이 뛰어난 아키텍처를 통해 리포지토리의 고가용성과 접근성을 유지할 수 있다.
  • AWS 기반의 구축, 스테이징 및 프로덕션 환경에 가깝게 리포지토리를 유지할 수 있다.

작동 방식

  • AWS CodeCommit은 프라이빗 Git 리포지토리를 호스팅하는 안전하고 확장성이 뛰어난 완전관리형 소스 제어 서비스다.

사용 사례

  • 협업 방식의 코드 작업: 코드 검토 및 피드백이 기본적으로 포함되는 워크플로를 구현하고, 특정 분기를 변경할 수 있는 사용자를 제어한다.
  • 기존 도구 사용: 원하는 개발 환경 플러그인, 지속적 통합 및 전달(CI/CD) 시스템 및 그래픽 클라이언트를 계속 사용한다.
  • 알림 및 사용자 지정 스크립트 수신: 리포지토리에 영향을 미치는 이벤트에 대한 Amazon SNS 알림을 받고 HTTP 웹훅을 생성하기 위한 알림을 보낸다.
  • 기본적으로 최대 1,000개의 리포지토리 생성: 요청에 따라 최대 25,000개의 추가 리포지토리를 생성하고 모든 종류의 파일을 저장 및 버전 관리한다.

AWS CodeDeploy

  • 코드 배포 자동화
  • 코드 배포를 자동화하여 애플리케이션 가동 시간 유지

사용 이유

  • 애플리케이션을 자동화하고 개발, 테스트, 프로덕션 환경에 일관되게 배포할 수 있다.
  • 플릿 상태를 모니터링하고 필요에 따라 업데이트를 자동으로 롤백할 수 있다.
  • AWS Management Console 또는 AWS CLI를 통해 애플리케이션 배포를 시작하고 배포 상태를 추적할 수 있다.
  • 기존 설정 코드를 재사용하고 기존 소프트웨어 릴리즈 프로세스나 지속적인 전송 도구 체인과 통합할 수 있다.

작동 방식

  • AWS CodeDeploy는 Amazon EC2, Amazon ECS, AWS Lambda 및 온프레미스 서버와 같은 다양한 컴퓨팅 서비스에 소프트웨어를 자동으로 배포하는 완전관리형 배포서비스다.
  • CodeDeploy를 사용하면 소프트웨어 배포를 자동화하여 오류가 발생하기 쉬운 수동 작업을 제거할 수 있다.

사용 사례

  • 배포를 자동화하여 수동 작업 제거: 파일 및 명령 기반 설치 모델을 사용하여 여러 그룹 또는 인스턴스에서 애플리케이션 배포를 반복한다.
  • 많은 호스트에 배포: 고급 모니터링 및 트래픽 이동을 사용하여 수천 개의 호스트에 대한 배포를 관리한다.
  • 고급 배포 기술 사용: 인프레이스, 카나리, 블루/그린 배포를 비롯한 여러 배포 유형을 지원한다.
  • 상태 및 롤백 모니터링: 롤백 시작 및 진행 중인 애플리케잇녀 배포 중지를 수행하는 경보를 구성한다.

AWS CodePipeline

  • 지속적 전달을 통한 소프트웨어 배포
  • 빠르고 안정적인 업데이트를 위한 지속적 전달 파이프라인 자동화

사용 이유

  • 소프트웨어 릴리즈 프로세스를 모델링하고, 서버를 설정하거나 프로비저닝할 필요성을 줄일 수 있다.
  • AWS Management Console 또는 AWS CLI를 사용하여 소프트웨어 릴리즈 프로세스 단계를 정의할 수 있다.
  • 피드백을 반복하고 각 코드 변경을 테스트하여 버그를 포착하는 새로운 기능을 신속하게 릴리즈할 수 있다.
  • 릴리즈 프로세스의 모든 단계에서 자체 플러그 또는 사전 구축된 플러그인을 사용하여 필요에 맞추어 조정할 수 있다.

작동 방식

  • AWS CodePipeline은 빠르고 안정적인 애플리케이션 및 인프라 업데이트를 위해 릴리즈 파이프라인을 자동화하는 데 도움이 되는 완전관리형 지속적 전달 서비스다.

사용 사례

  • 파이프라인 구조 정의: 기존 파이프라인을 업데이트하고 선언적 JSON 문서로 새 파이프라인을 생성하기 위한 템플릿을 제공한다.
  • 이벤트 알림 수신: 상태 메시지와 이벤트 소스에 대한 링크를 제공하는 Amazon SNS로 파이프라인에 영향을 미치는 이벤트를 모니터링한다.
  • 액세스 제어 및 권한 부여: AWS IAM를 사용하여 릴리즈 워크플로를 변경하고 제어할 수 있는 사람을 관리한다.
  • 사용자 지정 시스템 통합: CodePipeline 오픈 소스 에이전트를 사용자의 서버와 통합하여 사용자 지정 작업을 등록하고 파이프라인에 서버를 연결한다.

AWS CodeStar

  • AWS 애플리케이션 개발 및 배포
  • AWS에서 애플리케이션을 신속하게 개발, 빌드 및 배포
  • AWS CodeStar는 통합된 사용자 인터페이스를 제공하므로 한 곳에서 소프트웨어 개발 활동을 손쉽게 관리할 수 있다.

사용 이유

  • 몇 분 만에 AWS에서 개발 시작:
    • AWS CodeStar를 사용하면 애플리케이션 코드의 코딩, 빌드, 테스트 및 배포를 위한 전체 개발 및 지속적 전달 도구 체인을 간편하게 구성할 수 있다.
    • 프로젝트를 시작하려면 다양한 Amazon EC2, AWS Lambda 및 AWS Elastic Beanstalk용 AWS CodeStar 템플릿 중에서 선택하면 된다.
    • AWS CodeCommit 또는 GitHub을 선택해 프로젝트의 소스제어로 사용할 수 있는 옵션이 제공된다.
    • AWS Cloud9, Microsoft Visual Studio 또는 Eclipse를 비롯하여 몇 가지 옵션 중 하나를 사용하여 소스 코드를 편집할 수 있는 옵션이 제공된다.
  • 한 곳에서 소프트웨어 전달을 관리:
    • AWS CodeStar는 통합된 사용자 인터페이스를 통해 일상 개발 업무를 조정할 수 있는 간편한 방법을 제공하므로, 여러 서비스 콘솔 간에 전환할 필요가 줄어든다.
    • AWS CodeStar의 프로젝트를 사용하면 애플리케이션 활동을 모니터링하고, 코드 커밋, 빌드, 테스트 및 배포를 비롯하여 소프트웨어 개발 프로세스의 모든 단계에 걸쳐 진행 상황을 한 곳에서 추적할 수 있다.
  • 팀 전체에서 안전하게 협업:
    • AWS CodeStar를 사용하면 팀 전체에서 안전한 방식으로 프로젝트를 함께 작업할 수 있다.
    • 서비스별로 자체 정책을 수동으로 구성할 필요 없이 프로젝트 소유자, 기여자 및 최종 사용자에 대한 액세스 권한을 손쉽게 관리할 수 있다.
    • AWS CodeStar는 AWS IAM 모범 사례를 준수하는 역할 기반 정책을 기본적으로 제공하므로 팀에 대한 프로젝트 액세스를 설정하는 프로세스가 간단해진다.
  • 다양한 프로젝트 템플릿에서 선택:
    • AWS CodeStar 프로젝트 템플릿을 사용하면 웹 사이트, 웹 애플리케이션, 웹 서비스 및 Alexa Skills와 같은 다양한 애플리케이션을 손쉽게 개발할 수 있다.
    • AWS CodeStar 프로젝트 템플릿에는 Java, JavaScript, PHP, Ruby, C# 및 Python을 비롯하여 지원되는 프로그래밍 언어를 사용하여 시작할 수 있도록 코드가 포함되어 있다.

AWS Command Line Interface(CLI)

  • AWS 서비스를 관리하는 통합 도구
  • AWS CLI는 AWS 서비스를 관리하는 통합 도구이므로, 하나의 도구만 다운로드하여 구성함녀 여러 개의 AWS 서비스를 명령줄에서 제어하고 스크립트를 통해 자동화할 수 있다.

AWS Device Farm

  • 실제 디바이스로 AWS 클라우드에서 Android, iOS 및 웹 앱 테스트
  • 데스크톱 브라우저 및 AWS 클라우드에서 호스팅되는 실제 모바일 디바이스에서 호스팅하여 웹 및 모바일 애플리케이션 품질 향상
  • AWS Device Farm은 테스트 인프라를 프로비저닝하고 관리하지 않아도 다양한 데스크톱 브라우저 및 실제 모방리 디바이스에서 테스트를 진행하여 웹 및 모바일 앱 품질을 향상시키는 애플리케이션 테스트 서비스다.
  • 테스트를 통해 여러 데스크톱 브라우저나 실제 디바이스에서 동시에 테스트를 실행함으로써 테스트 도구 실행 속도를 높이고 비디오 및 로그를 생성하여 앱과 관련된 문제를 빠르게 식별할 수 있다.

사용 이유

AWS Device Farm의 실제 디바이스 테스트
  • 고객이 사용하는 것과 같은 디바이스 사용: 다양한 물리적 디바이스와 상호 작용하고 테스트를 수행한다. 에뮬레이터와는 달리, 물리적 디바이스는 메모리, CPU 사용, 위치, 제조업체와 통신 사업자가 펌웨어 및 소프트웨어에 적용한 수정 사항과 같은 요소를 고려함으로써, 사용자가 앱과 상호 작용하는 방식을 좀 더 정확하게 이해하게 해준다.
  • 문제를 더 빠르게 재현하고 해결: 수동으로 문제를 재현하고, 병렬로 자동 테스트를 실행한다. AWS에서는 동영상, 로그 및 성능 데이터를 수집하므로, 이를 분석하여 문제를 신속하게 해결할 수 있다.
  • 실제 환경 시뮬레이션: 실제 사용자 상태를 시뮬레이션하도록 위치, 언어, 네트워크 연결, 애플리케이션 데이터를 구성하고 필수 앱을 설치함으로써 테스트 환경을 미세 조정한다.
  • 적합한 테스트 선택: 스크립팅이 필요 없는 AWS의 내장 테스트 도구를 실행하거나 Appium, Calabash 및 Espresso와 같은 오픈 소스 테스트 프레임워크를 선택하여 테스트를 사용자 정의할 수 있다.
  • 개발 워크플로우와 통합: AWS의 서비스 플러그인과 API를 사용하여 테스트를 자동으로 시작하고 Android Studio와 Jenkins 같은 지속적 통합 환경 및 IDE에서 결과를 확인할 수 있다.
  • 클라우드에서 프라이빗 디바이스 랩 직접 설정: AWS의 프라이빗 디바이스 랩 솔루션을 사용하면 iOS 및 Android 디바이스를 전용으로 선택할 수 있다. Device Farm은 이러한 디바이스에 정확한 구성을 프로비저닝하므로 세션 간에 설정을 유지할 수 있다.
AWS Device Farm의 데스크톱 브라우저 테스트
  • 여러 브라우저 인스턴스에서 동시에 테스트 실행: Device Farm의 완전관리형 브라우저 그리드는 필요에 따라 확장되어 여러 테스트를 동시에 실행함으로써 테스트 도구의 실행 속도를 향상시킬 수 있다.
  • 문제를 빠르게 식별 및 디버그: Device Farm이 생성한 비디오, 콘솔 로그, 작업 로그 및 웹 드라이버 로그를 사용하여 웹 앱을 식별하고 분석하며 발생한 문제를 빠르게 해결한다.
  • 여러 데스크톱 브라우저 및 브라우저 버전에서 테스트: Chrome, Firefox 및 Internet Explorer를 포함한 여러 데스크톱 브라우저에서 테스트를 실행하여 서로 다른 브라우저 환경에서 예상한대로 웹 앱이 작동하는지 확인할 수 있다.

작동 방식

실제 모바일 디바이스에서 테스트
  • 자동화된 테스트: AWS 클라우드의 수많은 물리적 디바이스 모음에서 앱을 병렬로 테스트할 수 있다. 내장된 프레임워크 중 하나를 사용하여 테스트 스크립트를 작성하거나 관리하지 않고 애플리케이션을 테스트하거나, 지원되는 자동화 테스트 프레임워크 중 하나를 사용할 수 있다.
  • 원격 액세스: 웹 브라우저에서 직접 실시간으로 디바이스를 동작하고, 스와이프하고, 상호 작용할 수 있다.
데스크톱 브라우저에서 테스트
  • Selenium 테스트를 AWS 클라우드에서 호스팅되는 여러 버전의 Chrome, Internet Explorer 및 Firefox에서 동시에 실행한다.

AWS Fault Injection Simulator(FIS)

  • 완전관리형 장애 주입 서비스
  • 통제된 실험을 통해 복원력과 성능 개선

사용 이유

  • 기존 소프트웨어 테스트에서 누락된 성능 장애 지점 또는 기타 알려지지 않은 취약점을 찾을 수 있다.
  • 특정 조건을 정의하여 실험을 중단하거나 실험 전 상태로 롤백할 수 있다.
  • 사전 구축된 템플릿을 사용하여 고품질 실험을 몇 분 만에 설정하고 실행할 수 있다.
  • 다양한 리소스의 성능 저하와 같은 실제 오류 조건을 만들어 뛰어난 인사이트를 확보할 수 있다.

작동 방식

  • AWS FIS는 오류 주입 실험을 수행하는 데 사용되는 완전관리형 서비스로, 이 서비스를 사용하면 애플리케이션의 성능, 관측성 및 복원력을 개선할 수 있다.
  • FIS는 다양한 AWS 서비스에서 통제된 오류 주입 실험을 설정하고 수행하는 프로세스를 단순화하여 팀이 애플리케이션 동작에 대한 신뢰를 확보할 수 있다.

사용 사례

  • 경기 당일 시뮬레이션 실행: 이전 장애, 알려진 프로세스 또는 팀 약점, 계절별 수요 급증을 시뮬레이션하고 시스템 성능을 모니터링한다.
  • 전달 파이프라인과 통합: 소프트웨어 전달 프로세스의 일환으로서 태스크 수준 컨테이너 장애 유발과 같은 장애 조치가 미치는 영향을 반복적으로 테스트한다.
  • 인스턴스에서 CPU 스트레스 실행: 애플리케이션이 CPU 스트레스를 처리하는 방법과 CPU 사용률이 지정된 임계값을 초과하는지 테스트한다.

AWS X-Ray

  • 애플리케이션 분석 및 디버깅
  • 프로덕션 및 분산 애플리케이션 분석 및 디버깅

사용 이유

  • 보안 및 규정 준수 목표를 충족하면서 애플리케이션을 통해 사용자 요청을 추적할 수 있다.
  • 장애 지점 및 지연 시간이 긴 위치를 파악하여 애플리케이션 성능을 개선할 수 있다.
  • 데이터 사일로를 제거하고, 사용자 환경을 개선하고 가동 중단 시간ㅇ르 줄이는 데 필요한 정보를 얻을 수 있다.
  • 서버리스 애플리케이션을 실시간으로 디버깅하고 클라우드 비용 및 성능 지표 모두를 모니터링할 수 있다.

작동 방식

  • AWS X-Ray는 "노 코드" 및 "로우 코드" 동작을 통해 애플리케이션을 통과하는 요청을 전체적으로 보여주고 페이로드, 함수, 추적, 서비스, API 등에 걸쳐 시각적 데이터를 필터링한다.

사용 사례

  • 애플리케이션 분셕 및 디버깅: 개발 중이든 생산 중이든 상관없이 단순하거나 복잡한 애플리케이션에서 추적 데이터를 수신한다.
  • 상세 서비스 맵 생성: AWS 리소스의 데이터를 컴파일하여 클라우드 아키텍처의 병목 현상을 파악하고 애플리케이션 성능을 개선한다.
  • 성과 분석 확인: 근본 원인 분석을 위해 서로 다른 조건의 추적 세트를 비교한다.
  • 안전한 데이터 감사: 보안 및 규정 준수 목표를 이루도록 X-Ray를 구성한다.

참고한 자료

'Infrastructure > Certificate' 카테고리의 다른 글

[AWS] Frontend Web & Mobile Services  (0) 2023.03.26
[AWS] End User Computing Services  (0) 2023.03.26
[AWS] Database Services  (0) 2023.03.26
[AWS] Container Services  (0) 2023.03.26
[AWS] Computing Services  (0) 2023.03.26