View a markdown version of this page

지속적인 현대화 작업 - AWS 변환

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

지속적인 현대화 작업

소스 관리

atx ct source 명령을 사용하여 리포지토리를 연결합니다. 지원되는 공급자: GitHub, GitLab, Bitbucket, local.

GitHub 조직

토큰: repo 범위가 있는 개인 액세스 토큰(클래식). 분석 전용 읽기 전용, 문제 해결을 위한 전체 리포지토리.

atx ct source add --name name --provider github --org org --token pat

GitLab 그룹 및 사용자

토큰: api 범위가 있는 개인 액세스 토큰입니다.

atx ct source add --name name --provider gitlab --org group-or-user --token pat # Self-hosted: atx ct source add --name name --provider gitlab --org group-or-user --token pat --url https://gitlab.example.com

Bitbucket 워크스페이스 및 프로젝트

Bitbucket Cloud - 범위: read:repository:bitbucket, write:repository:bitbucket, read:pullrequest:bitbucket, write:pullrequest:bitbucket. 또한 --email 및가 필요합니다--username.

atx ct source add --name name --provider bitbucket --org workspace --token api-token --email email --username username

Bitbucket 데이터 센터:

atx ct source add --name name --provider bitbucket --org project-key --token http-access-token --url https://bitbucket.example.com

로컬 리포지토리

atx ct source add --name name --provider local --path parent-directory
중요

--path는 git 리포지토리가 포함된 상위 디렉터리를 단일 리포지토리가 아닌 하위 디렉터리로 가리켜야 합니다.

소스 관리

atx ct source list atx ct source remove --name name

리포지토리 검색 및 관리

atx ct discovery scan --source name atx ct discovery status --source name atx ct discovery scan --source name --path new-directory

검색 후:

atx ct repository list atx ct repository list --source name atx ct repository list --labels "team:frontend,priority:high" atx ct repository update --source name --repo "source::repo" --labels "team:frontend,priority:high" atx ct repository update --source name --labels "migration:wave-1"

분석 실행

--type 플래그는 실행할 분석의 종류를 지정합니다.

  • rapid-techdebt-analysis - 오래된 종속성과 쉬운 성공.

  • tech-debt-comprehensive - 종속성, 보안, 패턴, 성능, 유지 관리 가능성, 아키텍처, 코드 품질 및 인프라 조사 결과를 다루는 더 심층적인 AI 기반 분석.

  • security - 보안 취약성 및 노출.

  • agentic-readiness - AI 에이전트를 위한 리포지토리 준비(프레임워크, APIs, 설명서).

  • modernization-readiness - 인프라, 애플리케이션, 데이터, 보안 및 운영 차원 전반의 현대화 기회.

atx ct analysis run --type type --source name [--repo source::repo] [--wait] atx ct analysis get --id id --json atx ct analysis list --json atx ct analysis list --status pending|running|complete|cancelled|failed --json atx ct analysis list --type type --json atx ct analysis cancel --id id atx ct analysis delete --id id [--cascade-findings]

사용자 지정 분석

atx ct analysis run --type custom --transformation-name name --source source --repo source::repo --wait

-g 플래그가 있는 구성: 키-값, JSON 또는 파일 경로.

TDs 나열: atx custom def list

조사 결과 관리

atx ct findings list --json atx ct findings list --repo source::repo --source name --severity high|medium|low --type analysis-type --status open|dismissed|obsolete --analysis-id id --fix-transform transform-name --json

상태 찾기

  • open - 활성

  • dismissed - 수동으로 무시됨(이유 필요)

  • obsolete - 재분석으로 더 이상 조사 결과가 생성되지 않을 때 시스템 설정

atx ct findings update --id id --status dismissed --reason "reason" atx ct findings update --id id --status open atx ct findings batch-update --ids id1,id2 --status dismissed --reason "reason" atx ct findings get --id id atx ct findings delete --id id

폐기 결과

재분석은 해결된 결과를 더 이상 사용되지 않는 것으로 표시합니다. 다시 열 수 없습니다. 감사용으로 보관됩니다.

문제 해결 생성

결과 기반, TD 재정의, 직접 TD의 세 가지 모드입니다.

atx ct remediation create --ids id1,id2 --name "name" atx ct remediation create --ids id1,id2 --transformation-name TD atx ct remediation create --transformation-name TD --repo source::repo

공급자별 출력: GitHub PR, GitLab MR, Bitbucket PR, Local branch.

참고

토큰에는 PR/MR 생성을 위한 쓰기 액세스 권한이 있어야 합니다.

--local 플래그가 있는 로컬 실행.

atx ct remediation create --transformation-name TD --repo source::repo -g "additionalPlanContext=Upgrade to Node.js 22" atx ct remediation list atx ct remediation status --id id atx ct remediation retry --id id atx ct remediation cancel --id id atx ct remediation delete --id id

원격 실행

기본적으로 분석 및 문제 해결은 로컬 시스템에서 실행됩니다. 대규모 포트폴리오의 경우 작업을 원격 인프라로 오프로드할 수 있습니다. 프로비저닝할 필요 없이(분석만 해당) AWS 변환 관리형 인프라 또는 영구 Amazon EC2 인스턴스 또는 AWS 배치(Fargate) 작업에서 프로비저닝하고 관리하는 인프라에서 AWS 계정를 실행할 수 있습니다. 이 atx ct remote 명령은 고객 관리형 인프라를 프로비저닝, 실행, 모니터링 및 해제합니다. 실행 위치에 관계없이에 모든 리소스를 생성하고 AWS 계정 소스 코드는 사용자가 제어할 수 있습니다.

참고

인프라를 프로비저닝, 업데이트 및 해제하면 스택 및 IAM 역할이 생성 및 수정 AWS CloudFormation 되고 관리자 권한이 필요합니다. 전달--ack하여 이를 확인하고 대화형 프롬프트를 건너뜁니다. 이미 프로비저닝된 인프라에서 분석 및 문제 해결을 실행하려면 최소 권한 실행기 정책을 사용합니다. 관련 관리형 정책은 태그 지정 및 액세스 제어 및의 컴퓨팅 옵션을 참조지속적인 현대화 AWS 혁신의 작동 방식하세요.

AWS 변환 관리형 인프라에서 실행(프로비저닝 없음)

프로비저닝 없이 원격으로 분석을 실행하려면를 사용합니다--mode aws-managed. 제출은 AWS 변환 관리형 인프라에서 분석을 실행하는 AWS 변환으로 이동합니다. 프로비저닝할 스택, 구성할 네트워킹, AWS Secrets Manager에 저장할 자격 증명이 없습니다. 제출은 실행입니다. 를 사용하여 워크로드가 실행되는 AWS 리전을 선택합니다--region.

# Run an analysis on AWS Transform-managed infrastructure atx ct remote analysis --type type --mode aws-managed --sources name [--repos repo1,repo2] [--region region] # Poll the submission (there is no remote status command in this mode) atx ct analysis get --id id --json

이 모드는 분석만 실행합니다. 문제 해결, custom 분석 유형 또는 로컬 소스를 지원하지 않습니다. 스택이 없으므로 , --stack-name--tags--existing-instance, 및 --batch-name 옵션은 적용되지 않습니다. 단일 제출에는 최대 100개의 리포지토리가 포함됩니다. 더 큰 범위를 다루려면를 사용하여 여러 제출로 분할합니다--repos. Amazon EC2 및 배치 실행과 달리 atx ct analysis get 대신를 사용하여 진행 상황을 모니터링합니다atx ct remote status.

네트워킹

원격 컴퓨팅은 프라이빗 서브넷에서 실행되어야 합니다. 프로비저닝하기 전에 기존 네트워킹을 검색하거나 새 VPC를 생성합니다.

# List VPCs, private subnets, and security groups in the current account and Region atx ct remote network discover atx ct remote network discover --vpc vpc-id --json # Create a new VPC with private subnets, a NAT gateway, and a security group atx ct remote network create --cidr 10.1.0.0/16 --ack

인프라 프로비저닝

Amazon EC2 또는 배치 스택을 배포합니다. 템플릿 또는 변경 세트를 미리 --execute 보려면 생략하고 --execute를 추가하여 적용합니다.

프로비저닝은 선택한 모드에 대한 컴퓨팅 스택과 스케줄러 스택을 생성합니다.

  • 배치 - AWS 배치 작업 대기열 및 컴퓨팅 환경, 지속적 현대화 컨테이너 이미지가 있는 작업 정의, 작업 실행을 위한 IAM 역할, 작업 제출을 위한 Lambda 함수입니다. 배치에는 보안 그룹이 필요합니다.

  • Amazon EC2 - IAM 인스턴스 프로파일과 보안 그룹이 있는 영구 Amazon EC2 인스턴스입니다. --securityGroup를 생략하면 스택은 인바운드 규칙이 없는 보안 그룹을 생성합니다. 액세스는 SSM을 통해 이루어집니다.

  • 스케줄러 - 반복 분석에 사용되는 atx-scheduler 스택(Amazon EventBridge 스케줄러 일정 그룹 및 호출 역할)입니다. 를 전달--skip-scheduler하여 옵트아웃합니다.

# Preview, then deploy an EC2 stack atx ct remote provision --mode ec2 --vpc vpc-id --subnets subnet-a,subnet-b atx ct remote provision --mode ec2 --vpc vpc-id --subnets subnet-a,subnet-b --execute --ack # Deploy a Batch stack atx ct remote provision --mode batch --vpc vpc-id --subnets subnet-a,subnet-b --securityGroup sg-id --execute --ack # Update an existing stack to the latest template, or tear it down atx ct remote update --mode ec2|batch --execute --ack atx ct remote teardown --mode ec2|batch --execute --ack

컨테이너 이미지

원격 분석 및 문제 해결을 실행하면 컨테이너 이미지 내에서 실행됩니다. 기본적으로 원격 환경을 프로비저닝할 때 퍼블릭 AWS 변환 이미지를 사용합니다public.ecr.aws/d9h8z6l7/aws-transform:latest. 배치는 이를 작업 정의 이미지로 설정합니다. Amazon EC2는 이를 러너 이미지로 사용합니다.

추가 언어 또는 도구를 번들링하는 프라이빗 Amazon ECR 이미지와 같은 다른 이미지를 실행하려면 프로비저닝--image-uri할 때 다음을 통과합니다.

# Batch: provision with a custom image atx ct remote provision --mode batch --vpc vpc-id --subnets subnet-a,subnet-b --securityGroup sg-id --image-uri account-id.dkr.ecr.region.amazonaws.com/repo:tag --execute --ack # EC2: provision with a custom image atx ct remote provision --mode ec2 --vpc vpc-id --subnets subnet-a,subnet-b --image-uri account-id.dkr.ecr.region.amazonaws.com/repo:tag --execute --ack

소스 자격 증명 저장

원격 컨테이너는 AWS Secrets Manager에 저장된 토큰을 사용하여 리포지토리를 복제합니다. 원격 분석 또는 문제 해결을 실행하기 전에 각 SCM 소스에 대한 토큰을 등록합니다.

atx ct remote credentials --source name --token token atx ct remote credentials --source name --remove

원격으로 실행

원격 분석은 각 리포지토리에 대해 하나의 컨테이너를 실행하고, 원격 수정은 각 결과에 대해 하나의 컨테이너를 실행합니다. --sources, --repos--labels를 사용하여 팬아웃을 제어하고 --stack-name 또는 --tags를 사용하여 사용할 프로비저닝된 스택을 선택합니다.

# Run analysis across a source on Batch atx ct remote analysis --type type --mode batch --sources name [--repos repo1,repo2] [--labels "team:frontend"] # Run remediation for specific findings on EC2 atx ct remote remediation --mode ec2 --ids id1,id2 atx ct remote remediation --mode ec2 --sources name --min-severity high

실행 모니터링 및 관리

# Check whether infrastructure is deployed atx ct remote detect --mode ec2|batch # Track a submission (Batch by batch ID, EC2 by group ID) atx ct remote status --batch batch-id --stack-name name atx ct remote status --group ec2-group-id --wait # Resume a partially-failed Batch run (re-submits only incomplete repos). # On resume, --batch-name takes the existing batch ID reported by "remote status --batch". atx ct remote analysis --type type --mode batch --sources name --resume-incomplete --batch-name batch-id # Cancel a running submission atx ct remote cancel --mode batch --batch batch-id --stack-name name atx ct remote cancel --mode ec2 --group ec2-group-id

반복 분석 예약

atx ct schedule를 사용하여 반복 주기에 따라 분석을 자동으로 실행합니다. 분석을 예약할 수 있지만 수정 사항은 예약할 수 없습니다. 작업 옵션은를 미러링합니다atx ct remote analysis. 일정은 다음 두 가지 방법 중 하나로 원격으로 실행됩니다.

  • AWS 변환 관리형(--mode aws-managed) - AWS 변환 관리형 인프라에 대한 분석을 실행하는 서버 측 일정입니다. Amazon EventBridge 일정은 없으며 프로비저닝할 것도 없습니다. 각 실행에서 AWS 변환이 수임하는 실행 역할(--execution-role)이 필요합니다( 참조AWS 변환 관리형 일정에 대한 실행 역할).

  • 고객 관리형(--mode ec2|batch) - 계정의 Amazon EventBridge 스케줄러 일정은 먼저 프로비저닝하는 영구 Amazon EC2 인스턴스 또는 AWS 배치 스택으로 각 실행을 디스패치합니다( 참조원격 실행).

--recurrence 값은 daily, weekly:DAY (예: weekly:MONDAY) 또는를 수락합니다. monthly:N 여기서 N은 1~28일입니다. AWS 변환 관리형 인프라에 대한 일정은 UTC에서 실행됩니다.

# AWS Transform-managed schedule (no infrastructure; requires an execution role) atx ct schedule create --name name --mode aws-managed --execution-role role-arn --recurrence daily --type type --sources name [--repos repo1,repo2] # Customer-managed schedule (EventBridge Scheduler dispatching to your EC2 or Batch stack) atx ct schedule create --name name --mode ec2|batch --recurrence weekly:MONDAY --type type --sources name [--repos repo1,repo2] # Manage schedules of either type by their schedule ID (from schedule list) atx ct schedule list atx ct schedule get schedule-id atx ct schedule disable schedule-id atx ct schedule enable schedule-id atx ct schedule delete schedule-id

일정이 실행된 분석을 보려면 먼저 일정의 실행된 실행을 반환atx ct analysis list --schedule-id schedule-id하는를 사용합니다.

고객 관리형 일정에 사용되는 스케줄러 역할 및 일정 그룹을 제거하려면를 실행합니다atx ct schedule teardown --execute.

AWS 변환 관리형 일정에 대한 실행 역할

로 생성된 일정에는 일정이 실행될 때마다 AWS 변환이 수임하는 --execution-role ARN이 --mode aws-managed 필요합니다. 다음과 같이 역할을 구성합니다.

  • 일정을 생성하는 자격 증명에는 실행 역할에 대한 iam:PassRole 권한이 있어야 합니다.

  • 역할의 신뢰 정책은 transform-custom.amazonaws.com 서비스 보안 주체가 이를 수임하도록 허용해야 합니다.

  • 예약된 실행이 소스 복제본 자격 증명을 검색할 수 있도록 최소한 역할에 AWS 관리형 정책이 AWSTransformCustomFullAccess 연결되어 있어야 하며 접atx/*두사 아래에 보안 암호에 대한 secretsmanager:GetSecretValuesecretsmanager:DescribeSecret 권한이 있어야 합니다.

다음 인라인 정책은 예약된 실행이 소스 복제본 자격 증명을 검색하는 데 필요한 액세스 권한을 AWS Secrets Manager에 부여합니다. AWSTransformCustomFullAccess 관리형 정책과 함께 실행 역할에 연결하여 regionaccount-id를 AWS 리전으로 바꾸고 일정이 실행되는 계정을 만듭니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AtxSourceCredentials", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "arn:aws:secretsmanager:region:account-id:secret:atx/*" } ] }

태그 지정 및 액세스 제어

--tags 옵션을 사용하여 소스, 분석 및 문제 해결에 태그(쉼표로 구분된 key=value 페어)를 적용할 수 있습니다. 태그는 원격 인프라, 저장된 자격 증명 및 네트워킹 리소스에서도 지원됩니다. 태그를 사용하면 리소스를 구성할 수 있습니다. IAM 태그 조건과 결합된 태그는 속성 기반 액세스 제어(ABAC)를 구현하므로 팀은 태그를 전달하는 리소스에만 액세스할 수 있습니다.

atx ct source add --name name --provider github --org org --token pat --tags team=platform,env=prod atx ct analysis run --type type --source name --tags team=platform atx ct remediation create --ids id1,id2 --tags team=platform

기본적으로 리소스에는에서 정의한 태그가 지정됩니다~/.aws/atx/settings.json. 에서 모든 리소스에 적용하려는 태그를 추가applyTags하면 기본 태그가 됩니다.

{ "applyTags": [ { "team": "alpha" } ] }
참고

로 전달된 태그--tags는 구성된 기본 태그를 통해 병합되며, 두 위치 모두에서 모든 키 세트에 대해 --tags 성공합니다.

AWS 웹 애플리케이션 변환

AWS 변환 웹 애플리케이션을 사용하여 분석을 생성 및 실행하고, 결과를 검토하고, 문제 해결을 생성하고, 코드 소스에서 생성된 풀 요청을 추적할 수 있습니다.

웹 애플리케이션을 사용하기 전에 조직에서 사용자 자격 증명을 활성화하여 AWS 변환에 액세스해야 합니다. AWS 변환 설정에 대한 자세한 내용은 AWS 변환 설정을 참조하세요.

로그인

AWS 변환 웹 애플리케이션에 액세스하려면 다음 단계를 완료합니다.

  1. AWS IAM Identity Center 자격 증명을 https://aws.amazon.com/transform/ 열고 로그인합니다.

  2. 지속적인 현대화가 나타나지 않으면 대신 IAM 자격 증명으로 로그인합니다.

    1. AWS 관리 콘솔에서 AWS 변환을 열고 설정을 선택합니다.

    2. IAM 자격 증명을 사용하여 액세스 AWS 변환을 켭니다.

    3. 웹 애플리케이션 URL(IAM 사용)을 복사하여 콘솔이 열려 있는 동일한 브라우저 창에 붙여 넣습니다.

  3. 왼쪽 탐색 메뉴를 열고 지속적 현대화를 선택합니다.

인프라 모드

분석을 생성할 때 다음 인프라 모드 중 하나를 선택합니다.

  • AWS 관리형 - AWS Transform에서 관리하는 인프라에서 실행됩니다. 인프라를 프로비저닝할 필요가 없습니다.

  • 고객 소유 - 자체의 배포된 스택에서를 실행합니다 AWS 계정. 컴퓨팅, 네트워킹 또는 보안 구성을 제어해야 하는 경우이 모드를 사용합니다.

참고

보안 분석을 실행하려면 고객 소유 인프라를 사용합니다. 보안 분석은 계정에 배포된 Security Agent에서 실행됩니다.

고객 소유 인프라를 사용하려면 설정 탭을 엽니다. AWS CloudFormation 빠른 생성 링크를 사용하여 다음 스택을 순서대로 배포합니다.

  1. AtxDispatcherStack - 메시지 디스패처(항상 필요).

  2. 컴퓨팅 스택 - AtxInfrastructureStack (AWS 배치) 또는 atx-runner (Amazon EC2).

  3. atx-scheduler - 예약된 반복 분석에 필요합니다.

  4. AtxSecurityAgentStack-<region> - 보안 분석에만 필요합니다.

CLI 기반 프로비저닝 및 네트워킹 구성은 섹션을 참조하세요원격 실행.

워크플로 시작하기

  1. 소스 연결 - 소스 탭을 열고 GitHub, GitLab또는에서 리포지토리를 추가합니다Bitbucket.

  2. 분석 실행 또는 예약 - 분석 탭을 열고, 리포지토리를 선택하고, 분석 유형을 선택하고, 인프라 모드를 선택하고, 실행을 선택합니다. 반복 주기(일별, 주별 또는 월별)로 실행하려면 대신 일정을 선택합니다.

  3. 조사 결과 검토 - 조사 결과 탭을 열어 심각도별로 결과를 봅니다.

  4. 문제 해결 생성 - 조사 결과를 선택하고 문제 해결 생성을 선택합니다.

  5. 풀 요청 검토 - 수정 탭을 열어 리포지토리당 생성된 PR 링크를 봅니다.

웹 애플리케이션에서 직접 AWS 변환과 채팅하여 분석, 조사 결과 또는 문제 해결에 대해 질문합니다.