[AWS] CodeGuruProfiler를 터치해 보세요.

5924 단어 AWS
본 기사는 Advent Calendar 2020의 2020/12/24분입니다.
※ Advent Calendar 2020은 HTC 팀원 5명
매일 투고가 바뀌기 때문에 시간이 있을 때 한번 보세요.
※ HTC 소개는 참조본 행사 1일차 투고.
나는 문과를 졸업한 SIER 신인이다.
이번에는 지난번 투고한 문장의 후속이다.
저번에 코드구루 리뷰어를 열어봤어요.
이번에는 Code Guru Profiler를 열어보겠습니다!
※ 다음은 지난번과 같은 절차입니다(웃음)

아마존 코드구루가 뭐예요?



Amazon CodeGuru는 기계 학습의 개발자 도구를 이용하여 스마트 조언을 제공하여 코드의 질을 향상시키고 응용 프로그램의 가장 비싼 코드 줄을 확정하는 것이다.(공식 문서 참조)
간단하게 말하면 개발자 인코딩/관리자가 원본의 질을 향상시켰다
그때 당신의 서비스를 도울 것입니다.
또한 CodeGuru는 Profiler 및 Reviewer 서비스(Security Detector를 새로운 기능으로 추가)로 구분됩니다.

  • Amazon CodeGuru Profiler
  • 개발자는 응용 프로그램에서 가장 비싼 코드 줄을 찾을 수 있을 뿐만 아니라 특정한 시각화와 코드를 어떻게 개선하여 원가를 절약할 수 있는지에 대한 조언도 제공할 수 있다.

  • Amazon CodeGuru Reviewer
  • 기계 학습을 이용하여 응용 프로그램 개발 과정에서 발생하는 심각한 문제와 발견하기 어려운 오류를 식별하여 코드의 질을 향상시킨다.
  • 이런 서비스.
    솔직히 텍스트에서는 이해가 안 되니까 "Now Go Build(지금 바로 제작)"!!
    ※ "Now Go Build"는 워너가 키노트에서 매년 하는 명작 w

    준비물

  • AWS 계정
  • 배포(예정)된 Java 또는 Python 모듈
  • 원격 저장소(로컬 개발 환경과 연결)
  • Bitbuket/GitHub/CodeCommit
  • 아마존 CodeGuru Profiler 실천!


    Step1: 분석 그룹 만들기


    CodeGuruProfiler 콘솔 또는 CreateProfiking Group API에서 만들 수 있습니다!
    ※ 방법은 ①JVMエージェントを使用する(推奨らしい)②コードにPlofilerを取り込む 두 가지입니다.
    나는 ②에서 실시했다.
    → 자세한 내용은 Step 3

    Step2: IAM 권한 부여


    Plofiler Agent에서 사용하는 IAM User/Role에서 CodeGuru에 프로필 데이터를 전송할 수 있는 권한을 부여합니다.
    분석 그룹을 생성할 때 콘솔의 다음 섹션에서 설정할 수 있습니다.
    ※ 웹 서버에 부여된 IAM Role을 지정했습니다.

    할 수 있을 것 같다
    이 설정에서 전진할 때 프로필 데이터를 보낼 수 없는 현상이 발생했습니다...
    문제는 이 설정 부분에서 확인된 부분입니다. GUI가 선택한 Role이 제대로 부여되지 않았습니다!왜?w
    따라서 IAMROLE에 직접 정책을 추가합니다!
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "codeguru-profiler:ConfigureAgent",
                    "codeguru-profiler:PostAgentProfile"
                ],
                "Resource": "arn:aws:codeguru-profiler:<region>:<accountID>:profilingGroup/<profilingGroupName>"
            }
        ]
    }
    
    이런 느낌.이렇게 하면 마음이 놓인다.

    Step3: 애플리케이션을 통한 프로비저닝 시작


    Java 응용 프로그램을 업데이트하여 데이터를 수집하여 CodeGuruProfiler에 전송하려면
  • 프로파일러 에이전트 JAR에 종속성을 추가합니다.
  • pom.xml
    <project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    ...
        <repositories>
            <repository>
                <id>codeguru-profiler</id>
                <name>codeguru-profiler</name>
                <url>https://d1osg35nybn3tt.cloudfront.net</url>
            </repository>
        </repositories>
        ... 
        <dependencies>
            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>codeguru-profiler-java-agent</artifactId>
                <version>1.1.0</version>
            </dependency>
        </dependencies>
    ...
    </project> 
    
  • 응용 프로그램의 main 함수를 포함하는 자바 파일에 다음 내용을 추가합니다
  • ~.java
    import software.amazon.codeguruprofilerjavaagent.Profiler;
    //省略
    //main関数に以下を追加
    new Profiler.Builder()
      .profilingGroupName("2020bc-kokoda")
      .awsCredentialsProvider(myAwsCredentialsProvider) // optional
      .withHeapSummary(true) // optional - to start without heap profiling set to false or remove line
      .build().start();
    

    Step4: Profiler Agent 시작!


    저의 경우 Codepipeline에 CI/CD 그룹이 있기 때문에 원격 저장소 (Bitbucket) 에서만push합니다.

    Step5: Console에서 CodeGuru Profiler 확인!


    ※ 실행 중인 응용 프로그램의 스택 추적 샘플링 요약
    시작 후 샘플링은 최대 15분이 소요됩니다.

    이런 느낌.내가 보고 싶은 견해는 각양각색이다. 개인에게 맡겨라!
    (얼마나 재미있게 놀았는지!)
    지금까지 Code Guru Profiler였습니다!

    총결산


    Code Guru Profiler를 터치해 보세요. 생각한 점 아래.
    · 어쨌든 자바 이외의 언어를 추가하고 싶다(드디어 파이썬만 할 줄 알았지만)...
    · 이 샘플링은 지속가능한 수집, 유연성 가시화, 대응 가능!
    이런 느낌.
    어떻게 이 서비스를 업무 프로세스에 융합시켜 개발자와 관리자의 부담을 가볍게 줄일 수 있습니까
    앞으로 생각해보고 싶어요!
    이상입니다!

    좋은 웹페이지 즐겨찾기